Linux에서 chmod를 사용하는 사용자에게 쓰기 권한을 부여할 수 없는 이유는 무엇입니까?

Linux에서 chmod를 사용하는 사용자에게 쓰기 권한을 부여할 수 없는 이유는 무엇입니까?

현재 파일 권한은 다음과 같습니다.

$ 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부분은 무시됩니다.

따라서 일반적인 umask022의 경우 chmod누구에게 권한을 설정해야 하는지 지정하지 않는 명령은 결국 그룹 및 다른 사용자의 쓰기 비트에 지정된 변경 사항을 무시하게 됩니다.

을 무시하고 모든 비트를 설정하려면 umask다음을 지정해야 합니다.WHO당신은 그것을 설정하고 싶습니다 :

chmod a+rwx file

또는 좀 더 명시적으로,

chmod ugo+rwx file

(또는 ugo사용자, 그룹 및/또는 기타 사용자에 대해 적절하게 의 하위 집합).

기호 권한 대신 숫자 권한을 지정하는 것도 가능합니다. 보다UNIX 권한 및 파일 유형 이해자세한 내용은.

마스킹 동작 은 umask다음 경우에도 적용됩니다.청산놀라운 결과를 생성할 수 있는 비트: ! chmod -w file에 의해 설정된 쓰기 비트만 지워집니다 chmod +w file. 전형적인 umask022를 계속하면 이는 chmod -w그룹이나 다른 사람의 쓰기 비트를 건드리지 않고 이미 설정된 경우 설정된 상태로 유지한다는 의미입니다. (GNU coreutils'는 chmod이에 대해 유용하게 경고합니다.)

관련 정보