
처음부터 Linux는 다중 사용자 환경을 지원하도록 조정되었습니다. 작업 시스템에 많은 사용자와 그룹이 있는 경우 동일한 그룹의 사용자 간에 공유되는 디렉터리를 만나는 것이 매우 일반적이며 디렉터리의 파일 공유로 인해 문제가 발생합니다. 이 기사에서는 고정 비트를 사용하여 공유 디렉토리에 대한 파일 액세스 권한을 미세 조정하는 방법에 대해 설명합니다.
설명을 위해 john1, john2 및 john3의 세 사용자가 있는 시스템이 있으며 모두 공통 그룹 "johns"의 구성원입니다.
"john1"이 "johns" 그룹의 모든 사용자가 공유할 수 있는 "shared-dir"이라는 새 디렉토리를 생성한다고 가정해 보겠습니다.

ls
사용 명령을 실행하면 다음 표에서 해석할 수 있는 "shared-dir"의 권한을 볼 수 있습니다.

"john1"만이 디렉토리의 내용을 읽고 디렉토리에 쓸 수 있습니다. 우리는 공유 디렉토리로 작업하고 있기 때문에 그룹의 모든 사용자가 "shared-dir"에 쓸 수 있기를 바랍니다.
이를 위해 chmod
를 사용하여 권한을 수정합니다. 명령. 아래와 같이 "johns" 그룹의 모든 사용자에게 "쓰기" 권한을 추가합니다.

아래와 같이 "shared-dir"에 대한 업데이트된 권한을 볼 수 있습니다. 노란색 밑줄 친 부분은 "johns" 그룹에 "쓰기" 권한이 부여되었음을 나타냅니다.

공유 디렉토리에 파일 추가
이제 "john1"은 "shared-dir"에 두 개의 파일(j1_file1.txt 및 j1_file2.txt)을 추가합니다.

이해를 돕기 위해 파일 이름의 처음 두 문자는 사용자 이름과 동의어입니다.

마찬가지로 "john2"도 "shared-dir" 디렉토리에 "쓰기"할 수 있습니다.


현재 "shared-dir"에 4개의 파일이 있습니다.

현재 설정에 문제가 있습니까?
"j1_file1.txt" 파일은 "john1"을 파일 소유자로 만드는 "john1"에 의해 생성되었습니다. 이제 "john2"가 로그인하여 이 파일을 삭제하려고 하면 삭제할 수 있습니다.
"john1"은 파일 소유자였지만 "john2"는 "johns" 그룹의 모든 구성원에게 "쓰기" 권한이 부여되었기 때문에 파일을 삭제할 수 있었습니다.
이 시나리오는 이상적이지 않습니다. 모든 사용자가 디렉토리에 쓸 수 있기를 원하지만 파일 소유자만 파일을 삭제할 수 있어야 합니다. 이를 어떻게 달성할 수 있습니까?
스티키 비트 소개
스티키 비트는 액세스 권한이 있는 그룹에 대해 "쓰기" 권한이 설정된 디렉토리에 설정할 수 있는 특수 권한입니다. 이 비트는 그룹의 모든 구성원이 디렉터리에 쓸 수 있지만 파일을 만든 사람, 즉 파일 소유자만 파일을 삭제할 수 있도록 합니다.
chmod
+t
명령 플래그는 디렉토리에 고정 비트를 설정하는 데 사용할 수 있습니다.

업데이트된 권한은 아래에서 볼 수 있습니다.

이제 "john2"가 "john1"이 생성한 "j1_file2.txt" 파일을 삭제하려고 하면 해당 작업이 허용되지 않습니다.

아래와 같이 "기타"에 대한 "실행" 권한을 제거하는 경우:

디렉토리에 스티키 비트의 존재는 권한 문자열의 "기타" 부분에 대문자 "T"로 표시됩니다. 디렉토리의 스티키 비트 동작은 동일하게 유지됩니다.

"chmod" 명령의 변형
chmod
의 숫자 형식 명령을 사용하여 디렉토리에 고정 비트를 설정할 수도 있습니다.
chmod nxyz <file_name>
어디,
- n =1, 스티키 비트를 나타냅니다. "n"의 다른 값은 다른 특수 권한을 나타냅니다.
- x :파일 소유자에게 부여된 권한
- y :파일에 대한 액세스 권한이 있는 그룹에 부여된 권한
- z :다른 사람에게 부여된 권한
"shared-dir"에 고정 비트를 설정하려면 다음 명령을 사용하십시오.
chmod 1755 shared-dir
+t
를 사용하는 것과 동일한 결과를 생성합니다. 기존 기본 권한에.
스티키 비트의 사용은 디렉토리에만 유효하며 파일에 사용하는 것은 의미가 없습니다.