8진수 값으로 +X 기호 권한을 나타내는 것이 가능합니까?

8진수 값으로 +X 기호 권한을 나타내는 것이 가능합니까?

8진수 값으로 +X 기호 권한을 나타내는 것이 가능합니까? chmod(1) 매뉴얼 페이지는 다음과 같이 말합니다:

파일이 디렉터리이거나 이미 일부 사용자에 대한 실행 권한이 있는 경우에만 실행/검색

chmod -R g+X이는 사용자, 그룹 또는 기타 항목에 대해 이미 실행 비트가 설정된 경우에만 그룹 실행 권한을 추가한다는 의미입니다 . find를 사용하면 확실히 이 작업을 어렵게 수행할 수 있습니다.

find . -perm /ugo=x -exec chmod g+x {} \;

그러나 다음을 사용하지 않고 어떻게 8진 모드로 동일한 작업을 수행할 수 있는지는 확실하지 않습니다.찾다또는시험먼저 파일 권한을 확인하세요. 이것이 가능합니까, 아니면 기호 및 8진수 권한이 ​​겹치지 않는 영역이 있습니까?

답변1

짧은 이야기: 그것은 불가능합니다.

더 긴 이야기: 8진수 권한은 상태입니다. 표기법 은 상태 변화에서 정점에 도달함을 [+-][rwxXst]나타냅니다 . operations참고로, 그 =[rwxXst]것은 아닙니다.세트상태이며 Gilles가 말했듯이 8진수 모드와 동일합니다. 하나 X는 유일한 조건부 연산이고, 다른 것들은 모두 무조건적 연산입니다.

8진수 권한이 ​​있는 파일 의 경우 chmod최종 권한을 제공합니다.상태권한 비트를 그대로 사용합니다. 작업을 사용할 때 원하는 것을 선택합니다.완료허가 비트에.

귀하의 질문은 모든 제곱근을 나타내는 단일 숫자가 있는지 묻는 것과 같습니다. 대답은 분명히 '아니오'입니다: 모든 제곱근수확량숫자(현학자: 상상적/비합리적일 수 있음), 시작 부분이 없음상태(번호), 어느 것인지 알 수 없습니다.

답변2

8진 모드는 절대적인 변화만 표현할 수 있기 때문에 기호 모드는 8진 모드보다 더 표현력이 뛰어납니다. +X모든 새로운 비트를 지정하지 않는 모드(예: g+x— 또는 심지어 setuid/setgid 비트를 제거하지 않는 모드) 를 의미하는 상대적 변경 사항은 a+rwx8진수 모드로 표현할 수 없습니다.

반대로, 임의의 8진수 모드는 일반적으로 = (또는 기타 여러 조합) =등을 사용하여 기호 모드로 표현될 수 있습니다 .4750u+rwxs,g=rx,o-rwxtu=rwxs,g=rx,o=

관련 정보