루트는 chmod 할 수 없습니까?


12

우리 부서에는 CentOS와 samba가있는 작은 파일 서버가 있습니다. 기본 유지 관리를 수행 할 수있는 루트 액세스 권한이 있습니다.

오늘은 일부 폴더를 읽기 전용으로 만들고 있었기 때문에 계속 진행 chmod -R -w some-folder/했지만, 몇 개의 파일에 대해 응답을 얻었습니다.

chmod : ./somefile.pdf : 새로운 권한은 r-xr-xr-x가 아니라 r-xrwxr-x입니다.

추가 후 -v많은 정보를 얻지 못합니다.

`./somefile.pdf '모드는 0575 (r-xrwxr-x)로 유지

확인하기 위해 다음을 시도했습니다.

# touch test-file
# chmod -v -R -w .
mode of `./somefile.pdf' retained as 0575 (r-xrwxr-x)
chmod: ./somefile.pdf: new permissions are r-xrwxr-x, not r-xr-xr-x
mode of `./test-file' changed to 0444 (r--r--r--)

root가 chmod를 수행 할 수없는 이유는 무엇입니까?

약간의 골칫거리 :

  • 파일 시스템이되어 있지 읽기 전용 (만 일부 파일이 chmodded를 거절).
  • chmod 명령 을 루트로 실행 했지만 아무런 효과가 없습니다.
  • 파일이있는 파티션은 ext4입니다.

업데이트 : lsattr파일 및 폴더를 포함 하는 출력입니다 .

# lsattr somefile.pdf
-------------e- somefile.pdf
# lsattr ..
-------------e- ../myfolder

setuid가 없습니다 ( ls -la) :

dr-xr-xr-x  2 userxyz abc   4096 May 30 09:29 .
dr-xr-xr-x 17 userxyz abc   4096 Sep 19  2013 ..
-r-xrwxr-x  1 userxyz abc 275150 Aug  6  2013 somefile.pdf

이 파일을 원격으로 액세스하고 있습니까?
Luciano Andress Martini

1
lsattr동일한 파일과 그 위의 디렉토리에 대한 결과는 무엇입니까 ?
라이더

답변:


17

출처에 따르면 순진한 예상 모드가 있습니다. 더 많이 빠져 나간 후에는 원인이 -w선택 사항 이라고 생각합니다 . g-w또는 ugo-w(필요에 따라) 제공 해야합니다.

umask 값에 따라 명확한 목표 (a, o, g, u)를 제공하지 않으면 예상치 못한 결과가 제공 될 수 있습니다. 예기치 않은 변경으로 인해 그러한 추가 메시지가 완료되었다고 생각합니다.

편집 : http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/chmod.c#n301의 소스

더 이상 존재하지 않는 코드의 주석 인 Google 캐시에서 가져 왔습니다.

/ * true 인 경우 "chmod -r file"과 같은 순진한 오용으로 인한 놀라움을 진단합니다. POSIX는 휴대용 코드를 사용해야하므로 여기에서 진단을 허용합니다. "chmod--r 파일"* /


그렇습니다. 나는 그것을 바꾸었고 ugo-w더 이상 불평하지 않습니다. 잠재적 인 답변자에 대한 예의를 받아들이 기 전에 잠시 기다립니다.
Roflo

1
chmod가 이상한 방식으로 작동 하는지 이해하지 못하기 때문에 편집이나 더 나은 답변을 환영 합니다.
Giacomo Catenazzi

5
man chmod : "글자 ugoa 문자의 조합은 파일에 대한 사용자의 액세스가 변경 될 것입니다. "umask는 영향을받지 않습니다." 따라서 chmod + w 파일과 같은 작업을 수행하고 새 파일을 만들 때 얻을 수있는 파일에만 쓰기 권한을 부여 할 수 있습니다. 부정적인 행동은 다소 혼란스러워 보이므로 경고는 좋은 생각처럼 보입니다.
ilkkachu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.