문자 대 숫자로 Chmod

문자 대 숫자로 Chmod

chmod최근 동료로부터 숫자 대신 문자를 사용해 달라는 요청을 받았습니다 . 명백한 가독성 이점 외에도 숫자 대신 문자를 사용하는 특별한 이유가 있습니까?

답변1

기호 chmod표기법은 8진수 표기법에 비해 더 세밀하므로 다른 모드 비트는 그대로 유지하면서 특정 모드 비트를 수정할 수 있습니다.

기호 표기법은 세 가지 구성 요소로 구성됩니다.

chmod [references][operator][modes] file

은 (는) 수정될 사용자의 액세스를 지정하는 references문자 조합으로 구성됩니다 . 즉, 해당 파일을 소유한 사용자( ), 파일 그룹의 다른 사용자( ), 파일 그룹에 속하지 않은 다른 사용자( ) 또는 모든 사용자 ( ). 구성요소를 생략 하면 기본값은 모든 사용자로 설정되지만 에서 허용하는 권한만 수정됩니다.ugoafileugoareferencesumask

그러면 + operator지정된 파일 모드 비트가 각 파일의 기존 파일 모드 비트에 추가됩니다. -제거되도록 합니다. 명시적으로 지정하지 않는 한 디렉터리에 설정된 비트를 제외 =하고 해당 비트가 추가되고 지정되지 않은 비트가 제거됩니다 .setuidsetgid

는 읽기( ), 쓰기( ), 실행(또는 디렉터리 검색)( ), 파일이 디렉터리이거나 일부 사용자에 대해 이미 실행 권한이 있는 경우에만 실행/검색( ) 에 해당하는 mode문자 조합으로 구성됩니다 . ) 또는 (지정된 참조에 따라) ( ) 및 제한된 삭제 플래그 또는 고정 비트 ( ). 또는 은 문자 중 하나로 구성될 수 있습니다 . 이 경우 은 현재 소유자( ), 파일 그룹 구성원( ) 또는 이전 범주( ) 에 속하지 않는 사용자의 권한에 해당합니다.rwxXstrwxXsetuidsetgidstmodeugomodeugo

에 대한 권한 집합 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 또는 고정 비트를 활성화하려는 경우에도 유용합니다. 특히 이렇게 하면 4번째 옥텟의 어느 비트가 어느 비트인지 기억하는 데 어려움을 겪는 경우가 거의 없습니다.

그래서 그것은 당신이 무엇을 하고 있는지에 달려 있습니다. 나는 단지 권한을 설정할 때 여전히 숫자를 사용하는 것을 선호하고 무엇부터 시작해야 할지 상관하지 않습니다. 그러나 개별 비트를 전환하는 경우 문자 표기가 훨씬 쉽습니다.

관련 정보