루트로 chmod를 사용할 수 없습니까?

루트로 chmod를 사용할 수 없습니까?

우리 부서에는 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--)

마땅한 이유가 생각나지 않네요루트가 chmod 작업을 수행할 수 없는 이유는 무엇입니까?

몇 가지 유용한 정보:

  • 파일 시스템은아니요 읽기 전용(오직일부파일의 chmodd가 거부되었습니다.)
  • 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

답변1

소식통에 따르면 당신은순진한 기대 모델. 더 많이 주고 보니 그 이유는 선택 때문인 것 같은데 -w, 이는 기대했던 것과는 다릅니다. 당신은 g-w또는 ugo-w(당신의 필요에 따라) 주어야 합니다 .

명시적인 대상(a, o, g, u)이 제공되지 않으면 umask 값에 따라 예상치 못한 결과가 나타날 수 있습니다. 이런 예상치 못한 변화 때문에 이런 추가 정보가 나온 것 같아요.

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

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

/* true인 경우 "chmod -r 파일"과 같은 순진한 오용으로 인한 사고를 진단합니다. 이식 가능한 코드를 사용해야 하기 때문에 POSIX에서는 여기에서 진단을 허용합니다. "chmod ---r 파일"*/

관련 정보