Linux(CentOS)에서 일부 관리자 명령을 제한하는 방법
visudo
루트에서 사용한 다음 작성해 보았습니다.
ABC ALL=ALL,!/bin/rm,!/bin/sudo
"ABC" 사용자가 일부 중요한 파일을 삭제하지 못하도록 제한합니다.
sudo rm -rf /etc/
ABC 사용자에서는 잘 작동했습니다. 슈퍼 사용자가 필요한 일부 중요한 파일을 입력하거나 삭제할 때 Linux는 내 명령을 거부했습니다.
하지만 스크립트에 문제가 있습니다. 에 대한 스크립트를 작성하면 스크립트가 작동하고 를 sudo rm -rf /etc/
사용하여 내 스크립트를 삭제합니다./etc/
sudo
그래서 visudo
스크립트에서는 작동하지 않는 것 같습니다. 나는 무엇을 해야 합니까?
모든 명령을 사용할 수 있지만 시스템 파일을 삭제할 수 없도록 하려면 관리자가 필요합니다.
답변1
모든 명령을 사용할 수 있지만 시스템 파일을 삭제할 수 없도록 하려면 관리자가 필요합니다.
루트 uid 0은 모든 권한을 갖거나 얻을 수 있기 때문에 이는 불가능합니다(특히 일부 악의적인 Linux 전문가의 공격으로부터 보호하려는 경우). 하지만, 이것도 읽어주세요능력(7)(리눅스에만 해당).
오류를 피하고 싶다면 다음을 사용할 수 있습니다.샤텔(불변 플래그의 경우). 그러나 결정된 관리자는 이러한 "불변" 파일을 삭제할 수 있습니다(먼저 불변 플래그를 제거하여).
(악의적인 해커가 아닌 후배 관리자의 작은 실수가 가장 걱정되실 거라 생각합니다)
정기적으로 백업하는 것이 좋습니다 /etc/
(어쩌면 일부 원격 시스템에서). 이는 항상 좋은 일입니다. rm
별칭, 함수, 다른 실행 파일 등으로 자신만의 것을 가질 수도 있고 버전을 결정할 수도 있습니다 /etc/
(예: 다음을 사용하여).자식, 바라보다관리자를 기다려주세요)
다음 내용도 읽어보세요.설정값실행 파일과세스루이드(2)(그리고 물론실행(2)sudo
....) 시스템 호출(이 메커니즘은 && 에서 su
사용하는 Unix의 기본 보호 블록입니다 login
.)
그런데 신뢰는 기본적으로 사회 문제이며, 사회 문제를 해결하기 위해 순수하게 기술적인 솔루션을 원하는 것은 현명하지 못하고 순진한 일입니다.