sftp는 디렉토리에 대한 액세스를 제한합니다.

sftp는 디렉토리에 대한 액세스를 제한합니다.

SFTP를 통해 이 폴더의 루트에 대한 전체 쓰기 액세스 권한을 부여해야 합니다. 성공했지만 루트 디렉터리 /에 쓰기 권한을 제공하는 방법을 찾을 수 없습니다.

이 문제를 해결하는 일반적인 방법은 각 사용자에 대한 하위 폴더를 만드는 것이지만 해당 하위 폴더에는 사이트 전체에서 사용되는 기존 파일이 포함되어 있다는 것을 읽었습니다.

간단히 말해서:

/ should not be readable (this is correct)
/uploads/ is not writable (**but should** by any means)
/uploads/* is writable (and should)

이것이 내가 지금까지 한 일입니다:

/var/www/uploads is owned by root:root with 755 permissions. (775 prevents user to even log in)
/var/www/uploads/* is owned by newuser:sftp 775 permissions.

관련/etc/ssh/sshd_config

Match group sftp
   ChrootDirectory %h
   AllowTcpForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

AllowGroups ssh-users sftp

사용자는 다음과 같이 생성됩니다.

useradd -d /var/www/uploads -m newuser -g sftp -s /bin/false

감사합니다!

답변1

성공했지만 루트 디렉터리 /에 쓰기 권한을 제공하는 방법을 찾을 수 없습니다.

이건 불가능 해. chroot당신이 chroot하고 있는 사용자는 이 디렉토리에 쓸 수 없습니다. 맨 페이지에서 정의해야 하는 사항은 다음과 같습니다 sshd_config.

세션 시작 시 sshd(8)경로 이름의 모든 구성 요소가 루트가 소유한 디렉터리인지 확인합니다.아니요다른 사용자나 그룹이 작성할 수 있습니다.

답변2

시스템에서 사용자 간에 공유되는 디렉터리에는 모든 사용자 액세스 권한을 포괄하는 권한이 있어야 합니다.

저는 공유 디렉터리와 콘텐츠에 1777을 사용하는 경향이 있습니다. 파일 소유자 이외의 사람이 삭제하는 것을 방지하면서 모든 사용자에게 전체 액세스 권한을 제공합니다.

권한 옥텟의 첫 번째 1은 삭제 및 권한 변경 권한을 소유자로 제한하는 고정 비트입니다.

관련 정보