サーバー:Ubuntu 12.04 LTS
私はopenSSHを使用しており、グループbob
に属するsftponly
という名前のSFTPユーザーを作成しました。私はbobを彼のホームディレクトリである/usr/share/nginx/www/bob/
にchrootしました。
bobはサーバーにSFTPで接続でき、ビューはホームディレクトリですが、ディレクトリ内のファイルを編集することはできません。 chown -R bob /usr/share/nginx/www/bob/*
を実行して、bobをファイルの所有者にしましたが、まだ編集できません。
なぜこれでしょうか?
Sftponlyグループメンバーを適切にchrootするには、次のオプションを/etc/ssh/sshd_config
で設定する必要があります。
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /srv/chroot/%u
ForceCommand internal-sftp
Chrootされたユーザーのホームディレクトリ、およびシステムのルートまでのディレクトリは、root:root
に属している必要があります。
ユーザーに次の値を指定します。
$ id user001
uid=1003(user001) gid=1003(user001) groups=1006(sftponly)
$ grep user001 /etc/passwd
user001:x:1003:1003::/input:/sbin/nologin
次のようなディレクトリ構造が必要です。
$ tree /srv/chroot
/srv/chroot
├── user001
│ └── input
User001のHOMEディレクトリはchroot呼び出しの後に評価されるため、書き込み権限が有効なinput
ディレクトリに移動します。
$ ls -lrtd /srv/chroot/user001/input
drwxrwx--- 2 user001 sftponly 4.0K Apr 07 17:55 /srv/chroot/user001/input