アプリ版:「スタンプのみでお礼する」機能のリリースについて

CentOS5のOpenSSHに、SFTPで接続できるようになったのですが書き込みができず困っています。
現在、CentOS5でサーバーを立てています、基本的に「CentOSで自宅サーバー構築」
http://centossrv.com/)のサイトを参考にして(と言うか、そのまま設定して)います。

今回、SFTPで繋ぎたいと言うユーザーのために、(http://centossrv.com/openssh.shtml)の
ページの通りに設定をして(ただし鍵方式ではなくパスワード方式です)SFTPで繋ぐことができました。

しかし、SFTPで接続はできるのですが書き込みができないのです。そこで、確認してみると
(ちなみにFTPでも繋がるが書き込みはできません)
[root@localhost ~]# cd /home
[root@localhost home]# ls -all
合計 28
drwxr-xr-x 4 root root 4096 9月 5 17:27 .
drwxr-xr-x 23 root root 4096 9月 14 16:34 ..
drwxr-xr-x 9 root root 4096 9月 14 16:40 test
(ユーザー(ディレクトリ)名などは書き換えてあります)
のように、ユーザーのディレクトリのオーナーがrootになっていました。

そこで、オーナーをユーザーに戻してあげると、SFTPで繋げなくなってしまいます。
また、オーナーはrootのまま、権限を777に設定してもSFTPで繋げないのです。
ただし、FTPでなら繋ぐことができて書き込みもできるようになりました。

一応、検索して調べてみたりしたのですが、どうしてもできません。
そこで、解決方法をわかる方に教えていただければ大変助かります。

どうか、よろしくお願いします

A 回答 (4件)

No.3です



>一応、Chrootと言う物はできてるつもりだったのですが、できるとどういう状態になるのかわかりません。

Chroot できると、/etc/ssh/sshd_config ファイル内の ChrootDirectory で指定したディレクトリが、SFTP でログインしたときのルート(/)になります。
今の設定の場合、SFTPでログインしたとき、システム上の /home/test が ルート(/)として見えるようになっているはずです。
(そのために、chroot-useradd で、/bin, /etc, 以下の必要なファイルを /home/test にコピーしています)

・・・なので、
>また、オーナーはrootのまま、権限を777に設定してもSFTPで繋げないのです。
>ただし、FTPでなら繋ぐことができて書き込みもできるようになりました。

・・・の状態では、FTP (SFTP ではなく、FTP)でつないだときにルートに移動すると、そこから /home/test というディレクトリが見える状態ではないでしょうか。
(システムのルート(/)が、FTP で接続したときのルートになり)

Chroot されているかどうかは以下のようにすれば確認できます。

確認用ファイルを /home/test 以下に作成(touch /home/test/flag_test.txt)

SFTP でログインして、下記2点を確認
(1) / の直下に flag_test.txt が見えていること(SFTPでログインしたときに、/home/test/ というディレクトリ構造が見えないこと)。
(2) ルートに移動後、それ以上上のディレクトリに行けないこと(「cd /」 の後、 「cd ..」 ができないこと)

SFTP でログインしたときに Chroot 状況下で /home/test というディレクトリ構造を(仮に)見せたい場合は、/home/test/home/test というディレクトリを作成し、ユーザーへの読込み/書込み権限を与えれば良いことになります。

>public_htmlの外に書き込めるようにするのは
>できないのでしょうか?

/home/test の外のディレクトリ(例えば /var/www/html)に SFTP から書き込みを許したいというのであれば、
/home/test 下に別ディレクトリ(例えば www_html )を作成し、/var/www/html をマウントすれば、SFTP からは、作成した www_html ディレクトリを通してシステム上の /var/www/html に書きこむことができるはずです。
(/var/www/html に、ユーザーの書き込み権限を与える必要はります)

(システムから実行)
mkdir /home/test/www_html
mout --bind /var/www/html /home/test/www_htm
    • good
    • 0

>また、オーナーはrootのまま、権限を777に設定してもSFTPで繋げないのです。


>ただし、FTPでなら繋ぐことができて書き込みもできるようになりました。

これは、FTPで繋げたとしても、Chroot できていない状態ではないでしょうか?

ユーザー test が Chroot 後に使用する、ファイルアップロード用ディレクトリを作成し、
そのディレクトリの所有者および書き込み権限を、ユーザー test に与えてみてください。
(その前に、全ての設定を元に戻してからこれを試してください)

つまり、下のような設定をしてください。

# mkdir /home/test/upload
# chown test:test /home/test/upload
# chmod 0755 /home/test/upload

これで、test さんは、"upload" ディレクトリにファイルを置くことができるのではないかと思います。

この回答への補足

一応、Chrootと言う物はできてるつもりだったのですが、できるとどういう状態になるのかわかりません。
ちなみにSFTPで接続するが書き込めない時はSSHでも接続するが書き込めない状態で、lsを打つと下記の通りです
----------------------------------------------------------------------------
-bash-3.2$ ls -all
total 36
drwxr-xr-x 9 root root 4096 Sep 14 07:40 .
drwxr-xr-x 9 root root 4096 Sep 14 07:40 ..
drwxr-xr-x 4 test test 4096 Sep 5 08:27 .mozilla
drwxr-xr-x 2 root root 4096 Sep 13 08:42 bin
drwxr-xr-x 2 root root 4096 Sep 13 08:42 dev
drwxr-xr-x 2 root root 4096 Sep 13 08:42 etc
drwxr-xr-x 2 root root 4096 Sep 13 08:42 lib
drwxrwxrwx 23 test test 4096 Sep 7 06:59 public_html
drwxr-xr-x 6 root root 4096 Sep 13 08:42 usr
-bash-3.2$
----------------------------------------------------------------------------
それで、試してみると、public_htmlの中になら書き込めることがわかりました!
一応通常のHPならこれで大丈夫だと思いますが、public_htmlの外に書き込めるようにするのは
できないのでしょうか?

補足日時:2011/09/17 10:26
    • good
    • 0

sshd_configがどんな設定になっているのか…とか、


書き込みができないと言われているのはどの場所になのか…とか、
SFTPを実行しているクライアントはなにか…とか、いろいろ不明ですが……

とりあえず、ログインできない問題に関しては…
sshd_configのloglevelとか変更して、ログになにか出力されませんかね?
あとは…公開鍵認証ではないようですので、
普通にsshでログインできないのか?
とか、pamはどうなっているのか?
とかでしょうか……。

私のところのでは…普通に動いていますけどね。
# CentOS5.6+openSSH-5.7p1(5.6p1だったかな?)とWinSCP。

この回答への補足

設定については、参考にしているサイトの設定そのままです、鍵方式ではなくパスワードを選んだくらいです。

補足日時:2011/09/17 09:47
    • good
    • 0

> そこで、オーナーをユーザーに戻してあげると



/home/testだけを戻してるんじゃないですか?
それ以下、全てのディレクトリーやファイルを戻していますか?
chownの-Rオプションをお試しを。

この回答への補足

回答ありがとうございます

ただ、試してみましたが、接続できなくなるのは変わりませんでした。

補足日時:2011/09/16 13:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!