ฉันแก้ไขปัญหาด้วยวิธีนี้:
สร้างกลุ่มใหม่
$ sudo addgroup exchangefiles
สร้างไดเรกทอรี chroot
$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/
สร้างไดเรกทอรีที่เขียนได้กลุ่ม
$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/
ให้ทั้งคู่กับกลุ่มใหม่
$ sudo chgrp -R exchangefiles /var/www/GroupFolder/
หลังจากนั้นฉันไปที่/etc/ssh/sshd_config
และเพิ่มในตอนท้ายของไฟล์:
Match Group exchangefiles
# Force the connection to use SFTP and chroot to the required directory.
ForceCommand internal-sftp
ChrootDirectory /var/www/GroupFolder/
# Disable tunneling, authentication agent, TCP and X11 forwarding.
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
ตอนนี้ฉันจะเพิ่มผู้ใช้ใหม่ด้วยชื่อ obama ในกลุ่มของฉัน:
$ sudo adduser --ingroup exchangefiles obama
ตอนนี้ทุกอย่างเสร็จสิ้นดังนั้นเราต้องเริ่มบริการ ssh ใหม่:
$ sudo service ssh restart
แจ้งให้ทราบล่วงหน้า: ผู้ใช้ไม่สามารถทำสิ่งใดออกfile
ไดเรกทอรี
ฉันหมายความว่าไฟล์ทั้งหมดของเขาจะต้องอยู่ในโฟลเดอร์ไฟล์