폴더 및 하위 폴더에 대한 SFTP 읽기/쓰기 액세스를 제공하고 다른 모든 항목은 제한합니다.

폴더 및 하위 폴더에 대한 SFTP 읽기/쓰기 액세스를 제공하고 다른 모든 항목은 제한합니다.

특정 폴더로 제한된 Ubuntu 14.04 Server에 대한 액세스 권한을 사용자에게 제공해야 합니다. 새로운 서비스와 포트(즉, ftp)를 여는 것보다 ssh 보안을 즐기기 위해 sftp를 고수하고 싶습니다. 그러나 사용자를 생성하고 SSH 액세스를 활성화하는 것은 지나치게 관대합니다. 그러면 사용자는 SSH를 통해 로그인하여 모든 사람이 볼 수 있는 모든 것을 볼 수 있습니다.

사용자는 로그인 후 자신이 있는 특정 디렉터리를 찾고, 권한에 따라 파일을 읽고 쓰며, 허용되는 경우 폴더를 만들어야 합니다. 사용자의 "루트" 폴더 위의 파일이나 디렉터리에는 액세스할 수 없습니다.

이를 달성하기 위해 권장되는 방법은 무엇입니까? 매우 제한된 유형의 쉘이 있습니까? 나는 전에 시도했다

$ usermod -s /bin/false <username>

그러나 이로 인해 사용자는 기본 폴더의 하위 폴더로 CD를 이동할 수 없습니다.

답변1

사용자를 SFTP로 제한하려면 SSH 데몬 구성 파일에서 쉽게 수행할 수 있습니다 /etc/ssh/sshd_config. Match파일 끝에 블록을 배치합니다.

Match User bob
ForceCommand internal-sftp
ChrootDirectory /path/to/root
AllowTCPForwarding no
PermitTunnel no
X11Forwarding no

Jail 디렉토리가 에서 선언된 사용자의 홈 디렉토리인 경우 명시적인 경로를 지정하는 대신 /etc/passwd사용할 수 있습니다 . ChrootDirectory %h이 구문을 사용하면 사용자 계정 그룹을 SFTP 전용으로 지정할 수 있습니다. 즉, 사용자 데이터베이스에 선언된 그룹의 모든 사용자는 sftponlySFTP 전용이 됩니다.

Match Group sftponly
ForceCommand internal-sftp
ChrootDirectory %h
AllowTCPForwarding no
PermitTunnel no
X11Forwarding no

관련 정보