質問: opensshでsftpの接続ができず困っています 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でなら繋ぐことができて書き込みもできるようになりました。 一応、検索して調べてみたりしたのですが、どうしてもできません。 そこで、解決方法をわかる方に教えていただければ大変助かります。 どうか、よろしくお願いします
回答: >また、オーナーは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" ディレクトリにファイルを置くことができるのではないかと思います。