최근에 한 동료가 나에게 chmod
숫자 대신 문자를 사용하라고 요청했습니다. 명백한 가독성 이점 외에도 숫자 대신 문자를 사용하는 특별한 이유가 있습니까?
답변1
8진수 표현에 비해 기호 chmod
표현은 더 세밀하며 다른 모드 비트는 변경되지 않은 채로 특정 모드 비트를 수정할 수 있습니다.
상징적 표현은 세 부분으로 구성됩니다.
chmod [references][operator][modes] file
references
ugoa
어떤 사용자의 접근 권한이 수정될지 지정 하는 문자의 조합 file
: 파일을 소유한 사용자( u
), 파일 그룹에 속한 다른 사용자( g
), 파일 그룹에 속하지 않은 다른 사용자( o
) 또는 모든 사용자( a
) . 이 구성요소를 생략 하면 references
기본값은 모든 사용자로 설정되지만, 허용된 권한만 수정됩니다 umask
.
지정된 파일 모드 비트 가 +
operator
각 파일의 기존 파일 모드 비트에 추가되고, 명시 적으로 지정 되지 않은 경우 디렉터리에 대해 설정된 비트를 제외하고 해당 비트가 추가되고 지정되지 않은 비트가 제거됩니다 -
.=
setuid
setgid
mode
읽기( ), 쓰기( ), 실행(또는 디렉터리 검색)( ) rwxXst
에 해당하는 문자 조합으로 구성, 파일이 디렉터리이거나 이미 일부 사용자의 실행 권한이 있는 경우에만 실행/검색( ), 또는 (에 따라 다름) on (지정된 참조에서) ( ) 및 제한 삭제 플래그 또는 고정 비트 ( ). 또는 문자 중 하나로 구성 될 수 있으며 , 이 경우 소유자( ), 파일 그룹의 구성원( ) 또는 위 범주( )의 사용자에게 현재 부여된 권한에 해당합니다.r
w
x
X
setuid
setgid
s
t
mode
ugo
mode
u
g
o
예
권한 집합이 다음과 같다고 가정합니다 file
.0764/-rwxrw-r--
파일 그룹에 속하지 않은 다른 사용자의 권한을 제거합니다.
8진수:
chmod 760 file
8진수 표기법을 사용하는 경우 변경되지 않은 기존 권한을 반복해야 합니다.
상징적:
chmod o-rwx file
기호 표기법을 사용하면 기존 파일 권한이 중요하지 않습니다.
놓다 setuid
:
8진수:
chmod 4764 file
상징적:
chmod u+s file
놓다 setgid
:
- 8진수:
chmod 2764 file
- 상징적인
chmod g+s file
답변2
다른 비트를 변경하지 않고 개별 비트를 켜거나 끄려면 이 문자를 사용하십시오.
다음 디렉터리가 있다고 가정해 보겠습니다.
drwxrwsr-x 6 f261-01a g261-01a 4096 Sep 12 17:51 /home/teams/261/f261-01a
다른 사람의 읽기 액세스를 끄고 숫자를 사용하고 싶다면 아마도 꽤 빨리 그렇게 할 것입니다 chmod 751
. 단지 디렉토리에서 setgid 비트를 끈 것뿐입니다. 이런.
그러나 를 사용하면 chmod o-r
원하는 읽기 비트만 끄고 디렉토리의 setgid 비트는 설정된 상태로 유지됩니다.
파일이나 디렉터리에서 setuid, setgid 또는 고정 비트를 활성화하려는 경우에도 유용합니다. 특히 이 작업을 거의 수행하지 않으면 네 번째 옥텟에 어떤 비트가 있는지 기억하기 어려울 것입니다.
따라서 그것은 당신이 무엇을 하고 있는지에 달려 있습니다. 권한을 설정하고 무엇부터 시작해야 할지 신경쓰지 않을 때는 여전히 숫자를 사용하는 것을 선호합니다. 그러나 개별 비트를 전환하려면 알파벳 표기법이 훨씬 쉽습니다.