
auth.log
SFTP를 사용하여 사이트에 연결하려고 하면 다음 오류가 발생합니다 .
치명적: chroot 디렉토리 "/var/www"에 대한 소유권 또는 모드가 잘못되었습니다.
ls -ld
이 디렉토리의 내용은 다음과 같습니다.
drwxrwxr-x 4 루트 sftponly 4096 8월 12일 04:05 /var/www/
보시다시피 저는 그룹에 모든 권한을 부여했습니다 sftponly
. SFTP에 연결하는 사용자는 그룹 mysftpuser
의 일부입니다 sftponly
.
다음을 수행하면 연결할 수 있지만 내부의 파일이나 폴더 이름 바꾸기, 편집, 삭제, 덮어쓰기는 할 수 없습니다.www
sudo chmod 755 /var/www/
sshd_config
내 설정 은 다음과 같습니다.
일치 그룹 sftponly
ChrootDirectory /var/www
X11Forwarding no
AllowTcpForwarding no
ForceCommand 내부 sftp
간단히 말해서 sudo chmod 755 /var/www/
연결은 가능하지만 읽기 전용 모드에서만 가능합니다. sudo chmod 775 /var/www/
연결조차 허용하지 않습니다.
이 문제를 해결하는 방법은 무엇입니까?
답변1
필요한 명령은 다음과 같습니다.
usermod -d /var/www/ sftponly
usermod -s /sbin/nologin sftponly
usermod -s /bin/false sftponly
모든 사용자에게 모든 폴더에 대한 권한을 부여하는 가장 좋은 방법은 ACL입니다.
setfacl -Rm "u:sftponly:rwx" /var/www/
setfacl -Rdm "u:sftponly:rwx" /var/www/
답변2
귀하의 권한이 SFTP에 대해 너무 허용적인 것 같습니다. 사용자를 위한 폴더를 생성하고 해당 사용자가 0700 권한 또는 그보다 더 제한적인 권한으로 액세스할 수 있도록 해야 합니다.
자세한 내용은 이 질문의 답변을 참조하세요. 서버 결함 질문