현재 파일 권한은 다음과 같습니다.
$ ls -l file
-rwxrwxr-x 1 chiranjitd chiranjitd 0 Oct 30 14:52 file
이제 다음을 사용하여 쓰기 권한을 부여하려고 합니다 chmod
.
$ chmod +x+r+w file
그 후에도 파일 권한은 여전히 다음과 같습니다.
$ ls -l file
-rwxrwxr-x 1 chiranjitd chiranjitd 0 Oct 30 14:52 file
다른 사람에게는 쓰기 권한이 부여되지 않습니다. 왜 이런 일이 발생합니까?
답변1
당신이 실행할 때 chmod +x+r+w file
,사용자가 마스크한 비트를 제외하고 모든 비트가 설정되었습니다.umask
. 아마도 umask
다른 사용자의 쓰기 비트를 (적어도) 마스크하므로 해당 +w
부분은 무시됩니다.
따라서 일반적인 umask
022의 경우 chmod
누구에게 권한을 설정해야 하는지 지정하지 않는 명령은 결국 그룹 및 다른 사용자의 쓰기 비트에 지정된 변경 사항을 무시하게 됩니다.
을 무시하고 모든 비트를 설정하려면 umask
다음을 지정해야 합니다.WHO당신은 그것을 설정하고 싶습니다 :
chmod a+rwx file
또는 좀 더 명시적으로,
chmod ugo+rwx file
(또는 ugo
사용자, 그룹 및/또는 기타 사용자에 대해 적절하게 의 하위 집합).
기호 권한 대신 숫자 권한을 지정하는 것도 가능합니다. 보다UNIX 권한 및 파일 유형 이해자세한 내용은.
마스킹 동작 은 umask
다음 경우에도 적용됩니다.청산놀라운 결과를 생성할 수 있는 비트: ! chmod -w file
에 의해 설정된 쓰기 비트만 지워집니다 chmod +w file
. 전형적인 umask
022를 계속하면 이는 chmod -w
그룹이나 다른 사람의 쓰기 비트를 건드리지 않고 이미 설정된 경우 설정된 상태로 유지한다는 의미입니다. (GNU coreutils
'는 chmod
이에 대해 유용하게 경고합니다.)