- ベストアンサー
FEDORA 4 ssh+chrootでのMySQL操作について
- chrootユーザーがMySQL monitorにアクセスできない問題について
- chrootユーザーがサーバーにLOGINすると、-bash-3.00$ となり、mysqlコマンドを実行するとエラーが発生する
- 一般ユーザーはMySQLにアクセスできるが、chrootユーザーではアクセスできない
- みんなの回答 (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側の設定次第だと思います。
その他の回答 (2)
- Lean
- ベストアンサー率72% (435/603)
>「--chroot=path >起動時に chroot 環境に mysqld デーモンを配置する。」 それは、デーモン(mysqld)が指定されたpathにchrootして起動するというものですね。 No.1で無理と書いておいて申し訳ないのですが、mysqlコマンドとmysqlコマンドが動作するのに必要なライブラリをchrootの環境にコピーして動作する状態にして、DBへの接続をTCP/IP接続(-hでのホスト指定)で行えば接続出来そうな気がしてきました。
- Lean
- ベストアンサー率72% (435/603)
chrootを行うとどういう事になるかは知っていますか? 多分、(chrootユーザー)はchrootによってそのユーザのホームディレクトリが/(ルート)になっているように見えていると思われます(以降、そういう前提で書きます)。 そのため一般ユーザがホームディレクトリ以外にアクセス出来るの対して、chrootされたユーザはホームディレクトリにchrootされているためホームディレクトリ以外の領域は見えませんのでアクセス出来ません。 そのため、ホームディレクトリ配下に最低限必要なファイルやコマンドをコピーされてあるはずです。 なのでMYSQLにアクセスさせたい場合には、chrootユーザのホームディレクトリ配下に実際と同じようなMYSQLの環境を作成してあげないとMYSQLは使用出来ません。 一般ユーザがアクセスしているDBにchrootユーザもアクセスさせたいというなら、それはchrootユーザに取っては見えない領域にあるので無理だと思ってください。
補足
Leanさん、有難う御座います。 MySQLのマニュアルにあったのですが、 「--chroot=path 起動時に chroot 環境に mysqld デーモンを配置する。」 ソースからインストールする時?に、このオプションを付けても、 アクセス出来ないですよね?
お礼
返信遅くなりすいません。 上記の方法で、データベース/テーブル/ユーザー作成出来ました。 大変お世話になりました。