既存のApache所有ディレクトリのsftpにユーザーftpuserを設定したい/ var/www/webiste
それを新しいユーザーとして追加し、/ var/www/webisteをホームディレクトリにし、
useradd -md /var/www/website -s /bin/bash ftpuser
in sshd_config:
Subsystem sftp internal-sftp
Match User ftpuser
ChrootDirectory /var/www/website
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
現在、ディレクトリはrootによって所有されており、www-dataユーザーに対するacl権限があります。
# ls -ltr
drwxrwx---+ 5 root root 4096 Nov 8 2012 website
# getfacl website/
# file: website/
# owner: root
# group: root
user::rwx
user:www-data:rwx
group::rwx
group:www-data:rwx
しかし、SFTPで接続しようとすると、次のデバッグエラーが発生します。
ftpuser@ftp_server's password:
debug3: packet_send2: adding 32 (len 80 padlen 16 extra_pad 64)
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
Authenticated to ftp_server ([ftp_server]:22).
debug2: fd 4 setting O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: channel 0: free: client-session, nchannels 1
debug3: channel 0: status: The following connections are open:
#0 client-session (t3 r-1 i0/0 o0/0 fd 4/5 cc -1)
debug1: fd 0 clearing O_NONBLOCK
debug3: fd 1 is not O_NONBLOCK
Connection to 104.237.139.76 closed by remote Host.
Transferred: sent 2408, received 2020 bytes, in 0.0 seconds
Bytes per second: sent 627244.1, received 526176.5
debug1: Exit status -1
Couldn't read packet: Connection reset by peer
その問題をトラブルシューティングするためのアイデアはありますか?
編集:
from / var/log/authz:
fatal: bad ownership or modes for chroot directory component "/var/www/"
_sshd_config
_でChrootDirectory
オプションを使用するには、書かれたテキストの基本的な理解が必要です。
これは、sshd_config(5)
のマニュアルページからのスナップショットです。
ChrootDirectory
認証後に
chroot(2)
へのディレクトリのパス名を指定します。 パス名のすべてのコンポーネントは、他のユーザーまたはグループが書き込みできないルート所有ディレクトリでなければなりません。 chrootの後、sshd(8)
は作業ディレクトリをユーザーのホームディレクトリに変更します。
これはエラーログです。
_fatal: bad ownership or modes for chroot directory component "/var/www/"
_
そして、1つを追加すると、_/var/www/webiste
_がルートによって所有されるだけでなく、_/var/www
_および_/var
_ディレクトリも所有する必要があることを理解できます。