私は自分のSFTPサーバーをセットアップしただけで、最初のユーザーアカウントから使用すると問題なく動作します。 「magnarp」と呼ばれるユーザーを追加したいと思いました。最初は、sshd_configで次のようにしました。
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ユーザーmagnarpはホームディレクトリに移動しました。次に、シンボリックリンクを追加しようとしました。
home$ Sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"
シンボリックリンクはSSH経由では問題なく機能しましたが、SFTPでは機能しませんでした。
だから私が今やりたいのはChrootグループsftponlyを/ home/DUMPにして、次のようにしました:
Match group sftponly
ChrootDirectory /home/DUMP
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
DUMPフォルダーには、次の権限があります。
drwxrwxrwx 5 root root 4096 aug 18 02:25 DUMP
そしてこれはエラーコードです:
Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp
sshd
は、chrootディレクトリに関してある程度のパラノイアがあります。これを無効にできるとは思いません(StrictModes no
を使用しても)。 chrootディレクトリとすべての親ディレクトリは 正しく設定されている である必要があります。
chmod 755
)があってはなりません。あなたの場合、ログインエラーはchmod 755 /home/DUMP
で修正できます。sftpuserがログインでき、誰もがファイルを置くことができる誰でも書き込み可能なディレクトリを作成するという明白な意図は、そのディレクトリを/home/DUMP/
のサブディレクトリにすることで解決できます。
A)simlinksを作成してchrootを回避できるとしたら、chrootを作成する意味は何ですか? (すべてのユーザーがsimlinkをアップロードして、ファイルシステム全体にアクセスできます)
B)chmod 777をもう1つ追加すると、theo( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg )に悩まされます。 opensshがchrootディレクトリのアクセス許可について非常にうるさいのはなぜか http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html を参照してください。