실수로 이 프로그램을 실행했는데 chmod -u filename
내가 갖고 있던 모든 권한이 제거되었습니다 filename
.
매뉴얼 페이지에는 인용 옵션이 없습니다 -u
. 실험 결과 모든 권한을 제거한 것이 아니라 읽기 및 실행 권한만 제거하고 쓰기 권한은 남겨둔다는 결론에 도달했습니다.
그렇다면 이것이 정확히 무엇을 하는 걸까요?
위의 결론은 틀렸습니다. 이제 모든 범주에서 소유자 소유 권한을 제거하는 것이라고 생각합니다.
내 생각에는 동작이 비슷하다는 점만 a=u
제외하면 -
대체 =
되고 a
제거될 수 있다는 점만 다릅니다 a+x
.
답변1
이는 옵션은 아니지만 권한을 지정하는 표준(그러나 일반적이지 않은) 방법입니다. 이는 모든 사용자에 대해 -
파일 소유자( )와 관련된 권한을 제거( ) 함을 의미합니다 (앞의 또는 없음) . 이것u
u
g
o
예매뉴얼 페이지에 문서화되어 있습니다.
GNU chmod 매뉴얼 페이지다음과 같이 기록하세요.
기호 패턴은 집합에 0개 이상의 문자가 있거나
[ugoa...][[-+=][perms...]...]
집합 에 단일 문자가 있는 형태를 갖습니다.perms
rwxXst
우고
그 다음에
다음 문자 중 하나 이상 대신 ugo 문자 중 하나를 지정할 수 있습니다. 파일을 소유한 사용자에게 권한 부여(
u
), 파일 그룹에 속한 다른 사용자에게 권한 부여(g
) 및 둘 다에 권한 부여 위의 두 범주 사용자 권한(o
)
따라서 현재 모든 사람에게 활성화된 모든 권한( )을 -u
제거( )하는 것을 의미합니다 ( 와 동일 하지만 현재 umask를 존중함). 이는 일반적으로 그다지 유용하지 않지만 재귀적으로 작업할 때 소유자의 권한을 다른 사람에게 복사하는 것과 유사한 상황이 있을 수 있습니다.-
u
a-u
chmod +u
그것은POSIX에도 문서화되어 있습니다., 그러나 정의는 더 모호합니다. 권한 사양은 광범위하고 who[+-=]perms
(또는 숫자로) 이러한 사양의 효과는 더 자세히 지정됩니다.
영구 복사 기호
u
,g
및o
는 각각 사용자, 그룹 및 파일 모드 비트의 기타 부분과 관련된 현재 권한을 나타내야 합니다. 이 섹션의 나머지 부분은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