사용자에게 디렉터리에 대한 쓰기 권한을 부여하지 않고 파일을 삭제할 수 있는 기능을 부여합니다.

사용자에게 디렉터리에 대한 쓰기 권한을 부여하지 않고 파일을 삭제할 수 있는 기능을 부여합니다.

현재 홈 디렉터리에 "업로드" 디렉터리와 "다운로드" 디렉터리가 포함된 chroot 사용자가 있습니다.

디렉터리를 업로드할 수 있는 원래 권한은 어디에 있나요?

chown user:sftpadmin upload
chmod 370 upload

그리고 다운로드 디렉토리의 권한

chown user:sftpadmin download
chmod 570 dowload

sftpadmins 그룹의 목적은 이 그룹의 구성원인 서비스 계정이 해당 디렉터리에서 사용자를 위한 파일을 배치/검색할 수 있도록 하는 것입니다.

이제 사용자가 다운로드 디렉터리에서 파일 사용을 마친 후 파일을 삭제할 수 있도록 허용하는 요청이 있습니다. 그러나 내가 생각할 수 있는 유일한 옵션은 다운로드 디렉터리의 권한을 다음으로 설정하는 것입니다.

chmod 770 download

그러나 이렇게 하면 chroot 사용자에게 이 디렉터리에 어떤 파일이든 쓸 수 있는 권한이 부여되는데, 저는 이를 피하고 싶습니다.

디렉터리에 있는 파일을 읽고, 다운로드하고, 삭제할 수는 있지만 다운로드 디렉터리에 파일을 쓸 수는 없도록 설정할 수 있는 권한 조합이 있습니까?

그것은 다음과 같습니다:

  • 사용자가 파일을 삭제(삭제)할 수 있도록 허용
  • 사용자는 파일을 변경할 수 없습니다.
  • 사용자는 디렉터리에 파일을 추가할 수 없습니다.

답변1

상황에 따라 다릅니다.

파일을 삭제하려면 포함 디렉터리에 대한 쓰기 권한을 추가하는 것과 동일한 권한이 필요하기 때문에 이는 표준 posix 권한을 사용하여 불가능합니다.

그러나 파일 시스템이 NFSv4 액세스 제어 목록(예: ZFS)을 지원하는 경우 "데이터 쓰기"(-> 파일 생성) 및 하위 키 삭제에 대한 제어 항목이 다르기 때문에 이것이 가능합니다. "데이터 쓰기 허용" 항목 대신 특정 사용자에 대해 디렉터리에서 "하위 키 삭제 허용" 항목을 설정하면 됩니다(또는 대신 "데이터 쓰기 거부" 설정).

바라보다https://linux.die.net/man/5/nfs4_acl상세 설명

답변2

기본적으로 그렇습니다. 다음 특전의 조합입니다.

  • 파일 삭제를 허용합니다.
  • 파일 변경은 허용되지 않습니다.

파일 삭제 및 추가는 디렉터리 권한으로 정의되지만 파일 수정은 파일 권한으로 정의됩니다.

예:

➜ example mkdir -pv sample ➜ example touch sample/file.txt ➜ example chmod 0700 sample; chmod 0400 sample/file.txt ➜ example echo 'sample' > sample/file.txt zsh: permission denied: sample/file.txt ➜ example rm -f sample/file.txt ➜ example

관련 정보