“chmod 1777″과 “chmod 3777″이 모두 고정 비트를 설정하는 이유는 무엇입니까? 명령 chmod 1777과 chmod 3777둘

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



답변

해당 그룹의 각 숫자 (base8이므로 8 진수라고도 함)는 3 비트를 나타냅니다. 바이너리로 바꾸면 훨씬 쉬워집니다.

1 = 00 1
3 = 0 1
5 =
1,017 = 1 1 1

따라서 1777, 3777, 5777 또는 7777을 수행 한 경우 세 번째 열이 1이므로 고정 비트를 설정합니다. 그러나 3777, 5777 및 7777을 사용하면 다른 비트 (첫 번째 열의 SUID, 두 번째 열의 SGID).

반대로, 그 자리에있는 다른 숫자 (최대 7까지)는 마지막 열이 1 또는 “on”이 아니기 때문에 고정 비트를 설정하지 않습니다.

2 = 10010
= 1 0
6 = 10


답변

chmod에 인수로 전달 된 권한은 8 진 값으로 지정됩니다 . 값의 각 숫자는 3 비트를 나타냅니다. 세 개의 숫자가 제공되면 파일 소유자, 그룹 및 기타 (다른 모든 사용자)의 읽기, 쓰기 및 실행 비트를 설정하는 것입니다. 네 개의 숫자가 주어지면 가장 왼쪽의 숫자가 setuid, setgid 및 sticky 비트를 설정합니다. 8 진수 1은 고정 비트를 설정합니다. 8 진수 2는 setgid 비트를 설정합니다. 8 진수 2 + 8 진수 1은 8 진수 3이며 setgid 비트와 스티커 비트를 모두 설정합니다.


답변