sftp, chroot + chdir đến nhà người dùng?

Sep 25 2020

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

2 MichaelHampton Sep 25 2020 at 23:25

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.