좋아, Ubuntu 20.04에 SFTP 서버를 설정했습니다. sftp를 통해 상자에 액세스하는 여러 사용자가 있을 것이며, 각 사용자가 자신의 디렉토리에만 액세스할 수 있기를 바랍니다. 나는 그들이 다른 사용자의 디렉토리나 파일을 보고, 수정하고, 다운로드하는 등의 작업을 수행하는 것을 원하지 않습니다. 기본적으로 chroot 감옥 시나리오입니다.
나는 다음과 같은 폴더 구조로 끝났습니다.
/var/
|-- sftp/
|-- user1/
|-- uploads/
|-- file1
|-- file2
|-- user2/
|-- upoads/
|-- filea
|-- fil2b
내 /etc/ssh/sshd_config
내용은 다음과 같습니다.
Match Group mygroup
ForceCommand internal-sftp
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Match User user1
ChrootDirectory /var/sftp/user1
Match User user2
ChrootDirectory /var/sftp/user2
기본적으로 작동하지만 이해하지 못하는 몇 가지 측면이 있습니다.
분명히 SFTP 서버를 구성할 /etc/ssh/sshd_config
때 ChrootDirectory
이를 root
. 예를 들어 user1
연결 하면 /var/sftp/user1
폴더에서 실패합니다. 그들은 /var/sftp/user1/uploads
물건을 업로드하고 다운로드할 수 있는 곳으로 가야 합니다 . 디렉토리 user1
를 소유 하도록 설정했습니다 /var/sftp/user1/uploads
. 사용자 입장에서는 다소 불편한 부분입니다. 루트 디렉토리에서 직접 작동하게 하는 방법이 있습니까?
확실하지 않은 또 다른 점은 /var/sftp/user1
및 /var/sftp/user1/uploads
폴더에 권한 755를 할당해야 한다는 것입니다. 다른 권한(777도 포함)을 사용하면 작동하지 않는 것 같습니다. 왜 그런 겁니까? 755의 특별한 점은 무엇입니까?