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