chmod + w가 다른 사람에게 쓰기 권한을 부여하지 않는 이유는 무엇입니까 (o)


18

내가 실행할 때에 chmod +w filename쓰기 권한을 부여하지 않고 and에 other쓰기 권한을 부여합니다 .usergroup

이 명령을 실행 한 후

chmod +w testfile.txt

ls -l testfile.txt인쇄물 실행

-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt

그러나의 경우 +r+x는 제대로 작동합니다.

사용하고 싶지 않습니다 chmod ugo+w filename.



1
을 사용하지 않으려면을 ugo사용하십시오 a.
muru

예,하지만 왜 +w작동하지 않는지 알고 싶습니다 .
Ravi Sevta

그래서 두 가지 의견을 남겼습니다.
muru

@muru. 귀하는 귀하의 askubuntu답변 에서 "이 동작은 POSIX 명령이므로 버그가 아닙니다"라고 언급합니다. POSIX 응용 프로그램 사용법 텍스트는 비표준 적이므로 POSIX에서 의무화하지 않습니다.
fpmurphy

답변:


26

특정 상황

특정 상황에서는 현재의 전류 umask002(이것이 일반적인 기본값 임) 추측 할 수 있으며 이는 놀라움을 설명해줍니다.

umask값이 002 (모든 숫자 8 진수) 인 특정 상황에서 .

  • +r수단 ugo+r때문 002 & 444이다 000모든 비트가 설정 될 수있는,
  • +x수단 ugo+x때문 002 & 111이다 000모든 비트가 설정 될 수있는,
  • 그러나 +w수단 ug+w때문 002 & 222이다 002하여 설정할 "O"비트를 방지한다.

다른 예

  • umask 022 +w의미 u+w합니다.
  • umask 007 +rwx의미 ug+rwx합니다.
  • umask 077 +rwx의미 u+rwx합니다.

당신의 기대와 일치했을 것

당신은 변경하는 경우 umask000, 실행하여

umask 000

터미널에서

chmod +w file

ugo + w에 권한을 설정합니다.

사이드 노트

ilkkachu가 제안한 것처럼 umask 000모든 사람이 모든 파일을 읽고 쓸 수 있는 것은 아닙니다.

그러나 컴퓨터의 모든 사용자 계정에 umask 000액세스 할 수 있는 모든 사용자 (예 : 서버 서비스 ofc를 실행하는 프로그램 포함)는 마스크를 사용하여 만든 모든 파일을 읽고 쓸 수 있으며 변경되지 않은 모든 파일을 읽고 쓸 수 있음을 의미합니다. 루트까지의 디렉토리도 허용합니다).


4
umask 000은 컴퓨터의 사용자 계정에 액세스 할 수있는 모든 사용자 (c의 서버 서비스를 실행하는 프로그램을 포함 할 수 있음)는 해당 마스크로 작성한 모든 파일을 읽고 쓸 수 있으며 변경하지 않고 명확하게하기 위해
StarWeaver

4
"+ r은 ugo = r을 의미합니다." – 아닙니다. 그렇지 않습니다. 이는 rumask가 허용하는 당사자를 위해 비트 를 설정하는 것을 의미 합니다. 이것은 GNU chmod 및 FreeBSD chmod의 매뉴얼과 표준에 명확하게 명시되어 있습니다. 동일합니다 +x. 들어 +w당신이 특정의 umask의 경우에, 맞아.
ilkkachu

4
또한 umask를 설정 한다고해서 모든 사용자가 모든 파일을 읽고 쓸 수있는 0 것은 아닙니다. 많은 응용 프로그램이 mode 전용 개인 파일을 작성하기 때문 입니다. 이는 umask에 관계없이 그룹 및 기타 사용자가 액세스 할 수 없음을 의미합니다. 0600
ilkkachu

@ilkkachu + r은 ugo = r을 의미하며 이는 질문에 설명 된 상황과 관련이 있습니다. 그것은 일반적인 것이 아닙니다.
Prvt_Yadav 11

2
@Debian_yadav, 그것이 바로 요점입니다. 이것은 주석 umask+r아닌 동작 의 중요한 부분입니다 . 게다가, 심지어 umask를 가정 002, chmod +r의미하지 않는다 chmod ugo=r, 그것은 의미chmod ugo+r
ilkkachu

24

와:

chmod +<perms>

perms는 user , group기타에 추가 되지만 umask는 여전히 적용됩니다. 새로 만든 파일보다 파일에 더 많은 권한이 부여되지 않습니다.

umask에 관계없이 user , groups기타에 perm을 추가하려면 다음을 사용하십시오.

chmod a+<perms>

이것은 짧다

chmod ugo+<perms>

+ x와 a + x가 같지 않다는 것을 의미합니다.
Prvt_Yadav 23.07에

1
나는 링크가 좋아 : man7.org/linux/man-pages/man1/chmod.1.html "이들 중 어느 것도 지정하지 않으면, 효과는 (A)이 주어진 것처럼하지만 umask를 설정하는 비트 영향을받지 않습니다.”
tehnicaorg

0

당신은 누구 당신은 같은에 권한을주고있다에 지정해야 other사용하여,chmod o+w testfile.txt


1
예, 그러나 +w모든 사용자 (사용자, 그룹 및 기타)에게 권한을 부여 한다고 생각 합니다.
Ravi Sevta

모든 사용자에게 권한을 부여하려면을 사용하십시오 chmod a+w testfile.txt. 사용 u, 사용자 g, 그룹에 대한 o기타에 대한, 그리고 a모든.
Jaken551

if chmod a+w filename, chmod +w filename그리고 chmod ugo+w filename서로의 대안이라면 왜 그냥 사용하지 +w
않는가
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.