chmod -u는 무엇을 합니까?

chmod -u는 무엇을 합니까?

실수로 이 프로그램을 실행했는데 chmod -u filename내가 갖고 있던 모든 권한이 제거되었습니다 filename.

매뉴얼 페이지에는 인용 옵션이 없습니다 -u. 실험 결과 모든 권한을 제거한 것이 아니라 읽기 및 실행 권한만 제거하고 쓰기 권한은 남겨둔다는 결론에 도달했습니다.

그렇다면 이것이 정확히 무엇을 하는 걸까요?


위의 결론은 틀렸습니다. 이제 모든 범주에서 소유자 소유 권한을 제거하는 것이라고 생각합니다.


내 생각에는 동작이 비슷하다는 점만 a=u제외하면 -대체 =되고 a제거될 수 있다는 점만 다릅니다 a+x.

답변1

이는 옵션은 아니지만 권한을 지정하는 표준(그러나 일반적이지 않은) 방법입니다. 이는 모든 사용자에 대해 -파일 소유자( )와 관련된 권한을 제거( ) 함을 의미합니다 (앞의 또는 없음) . 이것uugo매뉴얼 페이지에 문서화되어 있습니다.

GNU chmod 매뉴얼 페이지다음과 같이 기록하세요.

기호 패턴은 집합에 0개 이상의 문자가 있거나 [ugoa...][[-+=][perms...]...]집합 에 단일 문자가 있는 형태를 갖습니다.permsrwxXst우고

그 다음에

다음 문자 중 하나 이상 대신 ugo 문자 중 하나를 지정할 수 있습니다. 파일을 소유한 사용자에게 권한 부여( u), 파일 그룹에 속한 다른 사용자에게 권한 부여( g) 및 둘 다에 권한 부여 위의 두 범주 사용자 권한( o)

따라서 현재 모든 사람에게 활성화된 모든 권한( )을 -u제거( )하는 것을 의미합니다 ( 와 동일 하지만 현재 umask를 존중함). 이는 일반적으로 그다지 유용하지 않지만 재귀적으로 작업할 때 소유자의 권한을 다른 사람에게 복사하는 것과 유사한 상황이 있을 수 있습니다.-ua-uchmod +u


그것은POSIX에도 문서화되어 있습니다., 그러나 정의는 더 모호합니다. 권한 사양은 광범위하고 who[+-=]perms(또는 숫자로) 이러한 사양의 효과는 더 자세히 지정됩니다.

영구 복사 기호 u, go는 각각 사용자, 그룹 및 파일 모드 비트의 기타 부분과 관련된 현재 권한을 나타내야 합니다. 이 섹션의 나머지 부분은 perm비터미널 perm및 문법을 참조하세요.permcopy

그런 다음

-

... 만약에WHO지정되지 않은 경우 소유자, 그룹 및 기타 권한에 대한 perm으로 표시되는 파일 모드 비트는 호출 프로세스의 파일 모드 생성 마스크에 있는 해당 비트를 제외하고 지워집니다.

답변2

대답은 다소 비슷합니다.https://unix.stackexchange.com/a/429424/255251.

chmod -u file_name

모든 권한이 제거되는 것은 아니지만 umask가치가 고려됩니다.

umask
0022
ls -l file
-rwxrwxrwx 1 user user 4 Feb 25 15:17 file
chmod -u file
chmod: file: new permissions are ----w--w-, not ---------
ls -l file
-----w--w- 1 user user 4 Feb 25 15:17 file

이제 umask 값을 변경하십시오.

umask 777
chmod 777 file
chmod -u file
chmod: file: new permissions are rwxrwxrwx, not ---------
ls -l file
-rwxrwxrwx 1 user user 4 Feb 25 15:17 file

관련 정보