![읽기 전용 권한으로 파일 강제 저장 중지](https://linux55.com/image/151885/%EC%9D%BD%EA%B8%B0%20%EC%A0%84%EC%9A%A9%20%EA%B6%8C%ED%95%9C%EC%9C%BC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%20%EA%B0%95%EC%A0%9C%20%EC%A0%80%EC%9E%A5%20%EC%A4%91%EC%A7%80.png)
현재 에 스크립트 파일이 있고 sudoers
보안상의 이유로 파일을 읽기 전용으로 만들고 싶습니다. 그래서 다음 chmod를 실행했습니다.
chmod 555 test.sh
이제 파일의 권한이
-r-xr-xr-x
그러나 이 파일을 vi로 이동하면 이라고 되어 있지만 W10: Warning: Changing a readonly file
여전히 "w!"를 사용하여 강제로 저장할 수 있습니다. 일반 사용자가 이 파일에 전혀 쓸 수 없도록 강제 저장을 비활성화하려면 어떻게 해야 합니까?
답변1
Linux 시스템에서 변경할 수 없는 파일 속성 설정샤텔.
sudo chattr +i file
"i" 속성이 있는 파일은 수정할 수 없습니다. 삭제하거나 이름을 바꿀 수 없고, 파일에 대한 링크를 만들 수 없으며, 파일의 메타데이터 대부분을 수정할 수 없으며, 파일을 쓰기 모드로 열 수 없습니다. 수퍼유저 또는 CAP_LINUX_IMMUTABLE 기능이 있는 프로세스만 이 속성을 설정하거나 지울 수 있습니다.
lsattr
파일의 속성을 나열 하는 데 사용됩니다 .
lsattr -l myfile
myfile Immutable
단점은 슈퍼유저(루트)라도 파일에 쓸 수 없다는 것입니다. 먼저 변경할 수 없는 속성을 제거해야 합니다.
sudo chattr -i file
macOS에서는chflags명령은 불변 플래그를 설정하고 재설정하는 데 사용됩니다. 설정:
chflags uchg file
설정을 해제하거나 지우려면 다음을 수행하세요.
chflags nouchg file
이러한 작업은 파일 소유자 또는 수퍼유저가 수행할 수 있습니다.
macOS의 경우 설정 시 변경할 수 없는 플래그를 -Ol
표시하려면 플래그를 사용하세요 ls
.uchg