• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FEDORA 4 ssh+chrootによるMySQL操作)

FEDORA 4 ssh+chrootでのMySQL操作について

このQ&Aのポイント
  • chrootユーザーがMySQL monitorにアクセスできない問題について
  • chrootユーザーがサーバーにLOGINすると、-bash-3.00$ となり、mysqlコマンドを実行するとエラーが発生する
  • 一般ユーザーはMySQLにアクセスできるが、chrootユーザーではアクセスできない

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

-------8<-------8<-------8<-------8<------- rootで作業 ※ユーザtestのホームディレクトリ/home/testはご自分の環境に  置き換えて見てください。 # cp /usr/bin/mysql /home/test/usr/bin/mysql # cp /lib/libcrypt.so.1 /home/test/lib/libcrypt.so.1 # cp /lib/libnsl.so.1 /home/test/lib/libnsl.so.1 # cp /lib/libssl.so.5 /home/test/lib/libssl.so.5 # cp /lib/libcrypto.so.5 /home/test/lib/libcrypto.so.5 # cp /lib/libm.so.6 /home/test/lib/libm.so.6 # cp /lib/libgcc_s.so.1 /home/test/lib/libgcc_s.so.1 # cp /lib/libc.so.6 /home/test/lib/libc.so.6 # cp /lib/libdl.so.2 /home/test/lib/libdl.so.2 # cp /lib/libcom_err.so.2 /home/test/lib/libcom_err.so.2 # cp /lib/libresolv.so.2 /home/test/lib/libresolv.so.2 # cp /usr/lib/libncurses.so.5 /home/test/usr/lib/libncurses.so.5 # cp /usr/lib/libz.so.1 /home/test/usr/lib/libz.so.1 # cp /usr/lib/libstdc++.so.6 /home/test/usr/lib/libstdc++.so.6 # cp /usr/lib/libgssapi_krb5.so.2 /home/test/usr/lib/libgssapi_krb5.so.2 # cp /usr/lib/libkrb5.so.3 /home/test/usr/lib/libkrb5.so.3 # cp /usr/lib/libk5crypto.so.3 /home/test/usr/lib/libk5crypto.so.3 # cp /usr/lib/libkrb5support.so.0 /home/test/usr/lib/libkrb5support.so.0 # cp /usr/lib/mysql/libmysqlclient.so.14 /home/test/usr/lib/libmysqlclient.so.14 -------8<-------8<-------8<-------8<------- chrootユーザでの実行例 -bash-3.00$ cd -bash-3.00$ pwd / -bash-3.00$ mysql -u admin -h 127.0.0.1 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 46 to server version: 4.1.20 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> -------8<-------8<-------8<-------8<------- 上記ファイルをchroot環境にコピーすれば、mysqlコマンドが使用出来るはずです。 あと、TCP接続でデータベースに接続出来るかは、MySQL側の設定次第だと思います。

noname#212513
質問者

お礼

返信遅くなりすいません。 上記の方法で、データベース/テーブル/ユーザー作成出来ました。 大変お世話になりました。

その他の回答 (2)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

>「--chroot=path >起動時に chroot 環境に mysqld デーモンを配置する。」 それは、デーモン(mysqld)が指定されたpathにchrootして起動するというものですね。 No.1で無理と書いておいて申し訳ないのですが、mysqlコマンドとmysqlコマンドが動作するのに必要なライブラリをchrootの環境にコピーして動作する状態にして、DBへの接続をTCP/IP接続(-hでのホスト指定)で行えば接続出来そうな気がしてきました。

  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

chrootを行うとどういう事になるかは知っていますか? 多分、(chrootユーザー)はchrootによってそのユーザのホームディレクトリが/(ルート)になっているように見えていると思われます(以降、そういう前提で書きます)。 そのため一般ユーザがホームディレクトリ以外にアクセス出来るの対して、chrootされたユーザはホームディレクトリにchrootされているためホームディレクトリ以外の領域は見えませんのでアクセス出来ません。 そのため、ホームディレクトリ配下に最低限必要なファイルやコマンドをコピーされてあるはずです。 なのでMYSQLにアクセスさせたい場合には、chrootユーザのホームディレクトリ配下に実際と同じようなMYSQLの環境を作成してあげないとMYSQLは使用出来ません。 一般ユーザがアクセスしているDBにchrootユーザもアクセスさせたいというなら、それはchrootユーザに取っては見えない領域にあるので無理だと思ってください。

noname#212513
質問者

補足

Leanさん、有難う御座います。 MySQLのマニュアルにあったのですが、 「--chroot=path 起動時に chroot 環境に mysqld デーモンを配置する。」 ソースからインストールする時?に、このオプションを付けても、 アクセス出来ないですよね?

関連するQ&A

専門家に質問してみよう