sftp, chroot + chdir đến nhà người dùng?
Có một cấu hình giống như thế này
AllowUsers sftpu
Match Group sftpg
ChrootDirectory /home/sftp
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
các passwdentry (nhóm 7700 được đặt tên sftpg)
sftpu:x:7700:7700::/home/sftp/allu:/bin/false
và alludir
drwxrwxr-x 4 guacam sftpg 4096 Sep 16 2019 /home/sftp/allu/
Điều đó gần như hoạt động. Các chroot hoạt động, nhưng không giống như những gì người đàn ông nói
Sau chroot, sshd (8) thay đổi thư mục làm việc thành thư mục chính của người dùng
dir làm việc của người dùng sau khi đăng nhập /home/sftpthì không /home/sftp/allu, và tôi đoán là vì /home/sftp/alluthuộc về guacamchứ không phải sftpu(trong khi sftpgnhóm có rwxquyền truy cập alluvà có thể viết. Đó là vì nhiều người dùng nên chia sẻ cùng alludir đó).
Trừ khi cấu hình ở trên bị sai sót, có lệnh trong hệ thống con sshd cho một trong hai
- buộc chdir (sau khi chroot) đến nhà của người dùng
- thư giãn một chút các quy tắc truy cập
- ...
trong khi vẫn giữ nguyên cây thư mục và các quyền truy cập?
Trả lời
sshd không thể thay đổi thư mục làm việc thành thư mục chính của người dùng vì nó không tồn tại. Do đó, nó đặt thư mục làm việc thành /.
Bạn đã chỉ định cho người dùng này thư mục chính /home/sftp/allu. Nhưng sau đó bạn chuyển người dùng đến /home/sftp. Điều đó có nghĩa là liên quan đến chroot, thư mục đó ở /allu! Không /home/sftp/allu.
Bạn cần biết rằng chroot khiến thư mục gốc mà người dùng đã đăng nhập có thể truy cập sẽ bị thay đổi thành một điểm nào đó thấp hơn trong hệ thống tệp và tất cả các đường dẫn đều liên quan đến điều đó. Vì vậy, nếu người dùng phải truy cập /home/sftp/allubên trong thư mục chroot /home/sftp, thì bên ngoài trong hệ thống tệp thực, thư mục sẽ là /home/sftp/home/sftp/allu.