사용자가 소유하지 않은 파일을 chmod 할 수 있습니까?


17

사용자가 루트가 소유 한 파일 또는 자신이 아닌 일부 사용자를 chmod 할 수 있도록하고 싶습니다. 파일을 777로 chmod'ed했고 "작업이 허용되지 않습니다"라는 메시지가 나타납니다. 파일 그룹에 사용자를 추가하고 동일하게 얻었습니다. 사용자가 쓰기 권한이있는 파일을 chmod 할 수없는 이유는 무엇입니까?


1
이 논리에 따라 왜 모든 것을 루트로 실행하지 않습니까? 모든 사용자가 어떤 모드를 변경할 수 있다면 기본적으로 전체 유닉스 권한 모델을 파괴합니다.
Chris Down

1
뭐하고 싶어? 어쩌면 당신은에보고해야한다 sudo: linux.die.net/man/8/sudolinux.die.net/man/5/sudoers
xx4h

파일에 권한 777이 있고 사용자는 "mv file file.old; cat file.old> file"로 이동하여 파일을 소유하고 chmod 할 수 있습니다. 왜 "chmod 777 파일"을 사용할 수 없습니까?
ashleysmithgpu

5
아니요, 디렉토리에 대한 쓰기 권한이있는 경우에만 가능합니다. 사용자가 04777 모드를 설정하고 / usr / bin / env를 복사하여 자신이 소유하지 않은 파일의 권한을 변경할 권한이있는 경우 해당 사용자로 명령을 실행할 수 있습니다.
Stéphane Chazelas

@StephaneChazelas 커널이 모든 유형의 변경 을 허용한다는 결정에 구속 되지 않고 비 소유자에게 그러한 변경을 허용하도록 쉽게 결정할 수 있기 때문에 이상한 주장 입니다. 비 소유자가 파일을 쓸 때 모든 SUID도 재설정됩니다.
Hauke ​​Laging

답변:


8

사용자가 쓰기 권한이있는 파일을 chmod 할 수없는 이유는 무엇입니까?

일반적인 액세스 권한의 경우 이는 디자인 결정입니다. 당신은 필요 richacls : WRITE_ACL아마와 WRITE_OWNER.


1
그리고 richacls가 일반적으로 사용 가능하지 않다는 것을 경고해야합니다.
sendmoreinfo

@sendmoreinfo Wikipedia 기사에 따르면 내 대답이 richacls가 무엇이며 어떻게 사용되는지 설명하지 않기 때문에 분명히 읽어야합니다. 이 때문에 정답이 "유용하지 않다"고 생각하는 것은 우스운 일입니다. 특히 동등한 대안이 없기 때문에. 다음에 그러한 정보가 필요하다고 생각되면 편집하십시오.
Hauke ​​Laging

다시피

2
분명히이 기능을 사용 했으므로 직접 말로 설명하십시오.
sendmoreinfo

10

유닉스 권한은 단순하도록 설계되었습니다. 파일에서 읽기위한 읽기 권한, 파일에 쓰기위한 쓰기 권한 및 파일을 실행하기위한 실행 권한이 필요합니다. 메타 데이터를 수정하려면 파일을 소유해야합니다 ¹.

파일을 읽을 수있는 사용자가 다른 사람에게 읽기 권한을 부여하거나 파일을 쓸 수있는 사용자가 다른 사람에게 쓰기 권한을 부여하도록 허용해도 보안 모델은 크게 변경되지 않습니다. 유닉스 권한은 임의적이므로 파일을 읽을 수있는 사용자는 다른 사용자가 파일을 읽을 수없는 경우에도 그 내용을 다른 사용자에게 노출 할 수 있습니다 (쓰기와 마찬가지로 사용자는 프록시 및 다른 사람을 대신하여 작성).

반면에 사용자에게없는 권한을 부여하면 권한 시스템이 완전히 손상 될 수 있습니다. 사용자는 모든 권한을 자신에게 부여 할 수 있습니다.

소유하지 않은 파일의 권한을 변경해야하는 경우는 거의 없습니다. 일반적으로 파일을 생성하자마자 올바른 권한을 갖도록 파일을 정렬해야합니다. 정말로 필요한 경우 sudo chmod특정 모드 및 특정 파일 (예 :)에 대한 권한을 사용자에게 부여 할 수 있습니다 joe: ALL = (ALL) chmod g+r /path/to/file.

¹ 액세스 및 수정 시간을 제외하고 파일을 읽거나 쓸 때도 특히 중요합니다.


내 유스 케이스에는 파일에 대한 권한을 설정하려는 웹 프로세스 (www-data)와 cli 프로세스 (자신)가 모두 있습니다. 나는 www-data 그룹에 자신을 추가했지만 이것으로는 충분하지 않습니다.
donquixote

소유자 / 그룹을 나 자신으로 변경해도 도움이되지 않습니다. (나는 권한을 설정하려고 시도하는 메커니즘을 설계하지 않았으며, 그것을 제어 할 수 없다)
donquixote
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.