"chmod 1777"과 "chmod 3777"이 둘 다 고정 비트를 설정하는 이유는 무엇입니까?

"chmod 1777"과 "chmod 3777"이 둘 다 고정 비트를 설정하는 이유는 무엇입니까?

디렉토리에 고정 비트를 설정하려면 두 명령이 모두 chmod 1777작동하는 이유는 무엇입니까 chmod 3777?

답변1

     1            1             1         1   1   1      1   1   1      1   1   1
___________   __________   __________    ___ ___ ___    ___ ___ ___    ___ ___ ___ 
setUID bit    setGID bit   sticky bit     user           group          others  

이 그룹의 각 숫자(8진수이므로 8진수라고도 함)는 3비트를 나타냅니다. 바이너리로 만들면 훨씬 쉽습니다.

1 = 0 0 1
3 = 0 1 1
5 = 1 0 1
7 = 1 1 1

따라서 1777, 3777, 5777 또는 7777을 사용하는 경우 세 번째 열이 1이 되므로 고정 비트를 설정하게 됩니다. 그러나 3777, 5777, 7777의 경우 추가 비트(첫 번째 열의 SUID, 두 번째 열의 SGID)를 설정해야 합니다.

반대로 해당 위치의 다른 숫자(최대 7)는 마지막 열이 1 또는 "on"이 아니기 때문에 고정 비트를 설정하지 않습니다.

2 = 0 1 0
4 = 1 0 0
6 = 1 1 0

답변2

chmod에 인수로 전달된 권한은 다음과 같이 지정됩니다.8진수값. 값의 각 숫자는 세 자리를 나타냅니다. 세 개의 숫자가 주어지면 파일 소유자, 그룹 및 기타 모든 사람에 대한 읽기, 쓰기 및 실행 비트를 설정하는 것입니다. 4개의 숫자가 제공되면 가장 왼쪽 숫자가 setuid, setgid 및 고정 비트를 설정합니다. 8진수 1은 고정 비트를 설정합니다. 8진수 2는 setgid 비트를 설정합니다. Octal2 + Octal1은 Octal3이며 setgid 비트와 고정 비트를 설정합니다.

관련 정보