chmod -u는 무엇을합니까?


19

우연히 나는 실행 chmod -u filename했고 내가 가진 모든 권한을 제거했습니다 filename.

매뉴얼 페이지는 -u옵션을 참조하지 않습니다 . 실험 나는 모든 권한을 제거하는 것이 아니라 액세스를 읽고 실행하여 쓰기 액세스를 그대로 둔다는 결론을 내릴 수있었습니다.

이것이 정확히 무엇을 하는가?


위의 결론이 잘못되었습니다. 이제 그것이하는 일은 소유자가 가진 모든 권한을 모든 카테고리에서 제거하는 것이라고 생각합니다.


나는 행동이 유사하다 생각 a=u만은, -대신 =하고 a, 예를 들어, 그냥 함께 할 수있는 삭제할 수 있습니다 a+x.


6
맨 페이지에없는 기본 질문을하기위한 +1 .

1
"상징적 인 모드의 형식은 [ugoa...][[-+=][perms...]...], 어디 perms 세트에서 중 0 개 이상의 문자입니다 rwxXst, 또는 세트에서 하나의 편지ugo (GNU chmod를 man 페이지)"; POSIX는 명확하지 않지만 동일한 효과에 대한 "투시경"제작을 정의합니다.
마이클 호머

1
@MichaelHomer 그것은 무엇을 말하지 않습니다.
y_wc

1
@y_wc "이 문자들 중 하나 이상 대신 ugo 문자를 정확하게 지정할 수 있습니다 : 파일을 소유 한 사용자에게 u부여 된 권한 ( ), 파일 그룹의 구성원 인 다른 사용자에게 부여 된 권한 ( g) , 이전 두 카테고리 중 하나에 해당하지 않는 사용자에게 부여 된 권한 ( o)
마이클 호머

1
예, 읽었습니다. 그것이 무엇을 언급하는지 알 수 없습니다. 그 편지 중 하나를 지정할 수 있다고 말합니다. 예를 들어을 지정 u하면 파일을 소유 한 사용자에게 부여 된 권한을 지정합니다. 그러나 그것은 무엇을 말하지 않습니다. 심지어 무엇을 의미합니까?
y_wc

답변:


19

이것은 옵션이 아니라 권한을 지정하는 표준 (흔하지는 않지만) 방법입니다. 그것은 (제거하는 것을 의미합니다 -파일 소유자 (와 관련된) 권한을 u모든 사용자 (NO 이전을 위해,) u, g또는 o). 이것은 되는 매뉴얼 페이지에 설명.

GNU chmod의 매뉴얼 페이지는 이것을 다음과 같이 설명합니다 :

기호 모드의 형식은입니다 [ugoa...][[-+=][perms...]...]. 여기서 perms세트에서 0 개 이상의 문자 rwxXst또는 세트 ugo 에서 하나의 문자

그리고 나중에

이러한 문자 중 하나 이상을 대신하여 파일을 소유 한 사용자에게 u부여 된 권한 ( ), 파일 그룹의 구성원 인 다른 사용자에게 부여 된 권한 g, 및 위의 두 범주에 속하지 않은 사용자에게 부여 된 권한 ( o)

따라서 모든 사용자에 대해 현재 소유자 ( )에 대해 사용 가능한 모든 권한 -u을 제거 ( -)하는 것을 의미합니다 ( 현재 umask를 존중하는 것을 제외하고는). 그다지 유용하지는 않지만 , 예를 들어 재귀 적으로 작업 할 때 소유자의 권한을 다른 사람에게 복사하는 것이 종종 유사 합니다.ua-uchmod +u


또한 POSIX에 문서화되어 있지만 더 명확하게 정의되어 있지 않습니다. 권한 사양이 광범위하게 who[+-=]perms(또는 다수) 있으며, 그 영향이 추가로 지정됩니다.

permcopy 심볼 u, go각각의 파일 모드 비트의 사용자, 그룹과 관련된 현재 권한, 다른 부분을 표현한다. 이 섹션의 나머지 부분은 perm비 터미널 permpermcopy문법을 참조하십시오.

그리고

-

... 누가 지정하지 않으면 호출 프로세스의 파일 모드 작성 마스크에 해당 비트가있는 것을 제외하고 소유자, 그룹 및 기타 권한에 대해 perm으로 표시되는 파일 모드 비트가 지워집니다.


고마워, 마이클 POSIX 문서는 설득력이 있습니다. 는 GNU 그러나 ... 참조하십시오 내 의견을. "So"다음에 나오는 것이 이전의 것에서 어떻게 나오는지 모르겠습니다. 내가 perms가질 수 있습니다 u. 예, u권한 또는 소유자를 지정합니다. 그러나 모든 사용자 -u의 소유자 권한 (modulus umask) 을 제거 하는 방법은 무엇입니까?
y_wc

이것이 -항상 하는 일이기 때문에 지정된 사용자 클래스에서 지정된 권한을 제거합니다. -u또는와 -w(와 더) 비슷 합니다 ugo-u.
마이클 호머

나는 문서를 논의하기 위해 여기에 오지 않았고 무슨 일이 일어나고 있는지 이해하게되어 기뻤지 만 문서는 방금 클릭했다고 말하려고했습니다. 감사.
y_wc

다른 chmod문서 관련 질문으로 문제를 해결할 수 있습니까? 이것이 별도의 질문이 필요하다고 생각되면 알려주십시오. "및 = 디렉토리의 언급되지 않은 세트 사용자 및 그룹 ID 비트가 영향을받지 않는 것을 제외하고는 이들을 추가하고 언급되지 않은 비트가 제거되도록합니다." chmod u=rx directory소유자의 권한을로 유지 rwx합니다. 그러나 그것은 일어나는 일이 아니며, 대신에 그들이 기대되는 것 r-x입니다. 내가 someting을 잘못 해석하고 있습니까?
y_wc

setuid / setgid ( s) 비트는 언급하지 않으면 홀로 남아 있으며 지정하지 않은 것은 제거됩니다.
마이클 호머

2

대답은 /unix//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

2
유익하고 알기 쉽고 매우 유용하지만 , 이는 매우 관련이 있지만 실제로 는 문제 가되지 않는다고 생각합니다 . 감사.
y_wc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.