클라이언트에게 서버에 대한 액세스 권한을 부여하고 싶지만 해당 사용자를 홈 디렉토리로 제한하고 싶습니다. 볼 수있는 파일을 바인드 마운트합니다.
라는 사용자를 만들고이라는 bob
새 그룹에 추가했습니다 sftponly
. 에 홈 디렉토리가 /home/bob
있습니다. /bin/false
SSH 로그인을 중지 하도록 쉘을 변경했습니다 . 그들의 /etc/passwd
선 은 다음과 같습니다 .
bob:x:1001:1002::/home/bob:/bin/false
또한 /etc/ssh/sshd_config
다음을 포함하도록 변경했습니다 .
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
내가 그들로 로그인하려고 할 때, 여기 내가 보는 것입니다
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
내가 ChrootDirectory
줄을 주석 처리하면 SFTP를 입력 할 수 있지만 서버를 자유롭게 사용할 수 있습니다. 나는 그것이 ChrootDirectory /home
효과 가 있음을 발견 했지만 여전히 모든 홈 디렉토리에 액세스 할 수 있습니다. 명시 적으로 시도 ChrootDirectory /home/bob
했지만 작동하지 않습니다.
내가 무엇을 잘못하고 있지? 어떻게 제한 bob
할 수 /home/bob/
있습니까?
----편집하다-----
좋아, 방금 살펴 /var/log/auth.log
보고 이것을 보았습니다.
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened for user bob by (uid=0)
May 9 14:45:48 nj sshd[5091]: fatal: bad ownership or modes for chroot directory component "/home/bob/"
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session closed for user bob
나는 무슨 일이 일어나고 있는지 확실하지 않지만 사용자 디렉토리에 문제가 있음을 암시합니다. ls -h /home
출력 은 다음과 같습니다 .
drwxr-xr-x 26 oli oli 4096 2012-01-19 17:19 oli
drwxr-xr-x 3 bob bob 4096 2012-05-09 14:11 bob
ChrootDirectory /home/%u
대체 될 수 있다고 믿는다ChrootDirectory %h
.