루트로 파일을 만들고 그 안에 문자열을 썼습니다. 이제 아래와 같이 모드를 "0"으로 변경했습니다.
root# ls -al transit/
total 4.0K
---------- 1 root root 6 Jan 5 18:15 27050
root#
tail, head 또는 cat을 시도하면 작동합니다.
root# cat transit/27050
320646
root#
왜 읽을 수 있나요?
답변1
참고 답변여기.
기본적으로 루트는 권한보다 우선합니다.
권한 000은 루트만 파일을 읽거나 쓸 수 있음을 의미합니다.
루트 소유권과 000 권한의 조합에 대한 추가 특수 용도를 알지 못합니다.
또한 그 안에서 귀중한 정보를 찾을 수 있습니다.문제도 있다.
그래서 사용자 Hauke Laging이 그의 답변에서 지적했듯이,
(및 및 가 있는
root
다른 사용자/프로세스 )는 항상 실행할 수 있다고 가정합니다.CAP_DAC_OVERRIDE
CAP_DAC_READ_SEARCH
모든 것 LSM(SELinux, AppArmor 또는 이와 유사한 것)이 그렇게 하는 것을 막지 않는 한.이는 또한 모든 키 입력을 읽을 수 있다고 가정해야 함을 의미합니다. 비밀번호는 실제로 안전하지 않습니다. 엄격한 수준의 보안을 원한다면 자신이 완전히 통제하는(심지어 다른 사람도 사용하지 않는) 시스템을 사용해야 합니다.
따라서 권한 000이라도 루트 사용자가 파일 내용을 읽지 못하게 하는 LSM이 없으면 루트 사용자가 파일 내용을 읽는 것을 제한할 수 없습니다.