사용자가 루트로 전환하도록 제한하지만 모든 명령을 실행할 수 있음

사용자가 루트로 전환하도록 제한하지만 모든 명령을 실행할 수 있음

루트 사용자로 전환하는 것 외에 루트 사용자가 실행할 수 있는 모든 명령을 실행할 수 있는 사용자를 제공하고 싶습니다.

그래서 centos7/redhat7의 sudoers 파일에 다음을 추가했습니다.

게스트 ALL=(ALL:ALL) NOPASSWD: ALL,!/bin/su - , !/bin/su - , !/bin/su 루트

그러나 사용자는 여전히 "sudo -i" 또는 "sudo su"를 사용하여 루트 사용자로 전환할 수 있습니다. 사용자가 위 명령을 실행하는 것을 방지하거나 적어도 다른 사람이 서버에서 루트로 전환하는 것을 방지하면서도 루트를 허용하는 모든 명령을 실행할 수 있도록 하려면 어떻게 해야 합니까?

답변1

당신은 할 수 없습니다. 누군가에게 허락하고 싶다면아무것루트로서 루트가 되기 위해 su 또는 sudo가 필요하지 않습니다. 서버에 대한 루트 액세스 권한을 얻으려면 chown 및 chmod를 루트로 실행하도록 허용하기만 하면 됩니다. 이런...passwd 파일을 루트로 편집할 수 있도록 허용하면 루트 액세스 권한이 부여됩니다...cat, echo, sed, awk, vi, vipw 등을 사용하여 수행할 수 있습니다.

이것은 보안 세계에서 본 sudo의 가장 어리석은 사용 중 하나입니다. 누군가 루트로 무엇이든 실행할 수 있도록 허용하되 루트가 되도록 허용하지 마십시오. 어... 그건 안 돼요.

이름으로 루트가 되는 것은 특별한 것이 아닙니다. UID 0으로 실행하는 것이 중요합니다. 누군가가 해야 할 일은 chmod SUID root /bin/bash 이며 루트가 됩니다. 또는 /etc/passwd의 UID를 0으로 변경하면 로그인하자마자 루트가 됩니다. 두 가지 간단한 예이지만 더 많은 예가 있습니다.

루트 액세스는 시스템 책임자에게만 부여되어야 합니다. sudo는 이 시점에서 농담입니다...그들이 루트로 su하도록 놔두십시오. 제한된 루트 권한이 필요한 sysadmin이 아닌 사용자의 경우 sudo가 적합하지만 매우 구체적인 명령을 허용하고 UNIX 운영 체제가 위험한 루트 액세스에 대한 액세스 권한을 부여하지 않도록 작동하는 방법을 충분히 알고 있는 경우에만 가능합니다. .. 즉, vi, chown, chmod, cp, mv 등이 있으며 이러한 명령의 매개변수와 실행 모드를 제한합니다.

관련 정보