우리 부서에는 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 파일"*/