모든 사용자가 디렉터리에 파일을 만들 수 있도록 허용하지만 파일 소유자만 자신의 파일을 쓰거나 삭제할 수 있습니다.

모든 사용자가 디렉터리에 파일을 만들 수 있도록 허용하지만 파일 소유자만 자신의 파일을 쓰거나 삭제할 수 있습니다.

특정 그룹에 대한 쓰기 권한이 있어야 하는 공유 디렉터리를 만들고 싶지만 파일을 만든 소유자만 자신의 파일에 대한 쓰기/삭제 권한을 가져야 합니다.

예를 들어,

mkdir /var/tmp/testdir
chown root:group1 /var/tmp/testdir
chmod 770 /var/tmp/testdir

user1이 디렉터리에 파일을 생성하면

su - user1
touch testfile1

이제 우리는 user1이 생성한 testfile1 파일을 다른 사용자가 수정하는 것을 원하지 않습니다. 이 목표를 달성하는 방법은 무엇입니까?

답변1

이것은"스티키 비트"또는 디렉토리의 "제한된 삭제 플래그"입니다( 참조 man chmod).

/tmp/이는 모든 사용자가 자신의 파일을 생성하고, 이름을 바꾸고, 삭제할 수 있지만 다른 사용자에게 속한 파일은 허용되지 않는 디렉토리 에서 사용됩니다 /var/tmp/(파일 자체를 읽거나 수정하는 것은 여전히 ​​파일의 권한에 따라 다릅니다).

이 파일의 소유자는 루트라는 점에 유의하세요.그리고디렉터리 소유자는 고정 비트가 설정된 디렉터리에서 파일을 삭제하거나 이름을 바꿀 수 있습니다. 파일을 소유하고 있는 소유자, 디렉터리를 소유하고 있는 디렉터리 소유자, 루트이기 때문에 루트입니다. 디렉터리를 루트가 소유한 경우 루트와 파일 소유자만 디렉터리에 있는 파일의 이름을 바꾸거나 삭제할 수 있습니다.

chmod +t처음 권한을 설정할 때 고정 비트를 추가하거나 4자리 8진수 권한 코드(+1000)를 사용할 수 있습니다. 예를 들어

chmod 1770 /var/tmp/testdir

또는

chmod +t /var/tmp/testdir

관련 정보