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

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

chmod모든 사용자가 디렉터리에 파일을 만들 수 있지만 파일 소유자(파일을 만든 사용자)만 자신의 파일을 삭제할 수 있고 해당 디렉터리에 있는 다른 사람은 삭제할 수 없는 명령을 어떻게 사용할 수 있습니까?

나는 다음을 사용하고 싶다:

chmod 755 directory

이제 사용자가 파일을 생성하고 삭제할 수 있는데, 이를 통해 다른 사람의 파일도 삭제할 수 있나요?

파일을 만든 사람이 자신의 파일을 삭제할 수 있기를 바랍니다. 따라서 누구나 파일을 만들 수 있지만 해당 파일을 만든 사람만 디렉터리에 있는 파일을 삭제할 수 있습니다.

답변1

끈끈한 비트는 원하는 것을 어느 정도 수행할 수 있습니다. 에서 man 1 chmod:

제한된 제거 플래그 또는 고정 비트는 파일 형식에 따라 해석이 달라지는 단일 비트입니다. 디렉터리의 경우 권한이 없는 사용자가 파일이나 디렉터리를 소유하지 않는 한 디렉터리에서 파일을 삭제하거나 이름을 바꾸는 것을 방지합니다. 이를 디렉터리의 삭제 제한 플래그라고 하며 일반적으로 /tmp와 같은 누구나 쓸 수 있는 디렉터리에서 찾을 수 있습니다.

즉, 디렉터리에 고정 비트가 있으면 사용자가 파일의 소유자이거나 포함된 디렉터리의 소유자(또는 사용자가 루트)인 경우에만 포함된 파일의 이름을 바꾸거나 삭제할 수 있습니다.

t다음과 같이 고정 비트(8진수 1000 또는 로 표시)를 적용할 수 있습니다 .

# instead of your chmod 755
chmod 1777 directory

# or, to add the bit to an existing directory
chmod o+t directory

답변2

대부분의 /tmp디렉터리는 이러한 유형의 권한 집합으로 생성됩니다.

당신은 세상이 좀 더 "끈적끈적"해지기를 원합니다. 이 비트를 설정하는 기호적인 방법은 다음과 같습니다.

# chmod ugo+w,+t directory

"모달" 방식은 다음과 같습니다.

# chmod 1777 directory
# ls -ld directory
drwxrwxrwt  2 root  wheel  2 Oct 21 17:06 directory/

관련 정보