저는 Linux를 처음 사용하고 CentOS에 VPS가 있고 루트 사용자가 있습니다. myuser(godaddy 계정에서 생성한)로 로그인하고 sudo su를 입력하여 루트로 액세스합니다.
이제 누군가가 원하는 것을 서버에 설치할 수 있는 기능을 제공하고 싶지만 그 사람이 sudo su를 입력하고 루트 액세스 권한을 얻는 것을 원하지 않습니다.
나는 사용자 dev1을 생성하고 다음과 같이 visudo에 추가했습니다.
root ALL=(ALL) ALL
dev1 ALL=(ALL) ALL
dev1로 로그인해도 여전히 sudo su를 입력하고 루트 액세스 권한을 얻을 수 있는데, 이를 방지하려면 어떻게 해야 합니까?
감사해요
답변1
사용자 "dev1"을 서버의 모든 작업을 수행할 수 있는 사람으로 나열해서는 안 됩니다. 이는 위험합니다. 대신 이 사용자가 패키지 관리자를 실행할 수 있도록 허용해야 합니다. 이를 위해서는 다음과 같이 visudo에 라인을 추가해야 합니다.
dev1 ALL = NOPASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude
(보통 CentOS에서는 yum을 사용하므로 yum 경로도 포함했지만 VPS에 설치되어 있지 않으면 제거할 수 있습니다)
이 설정을 사용하면 사용자가 무언가를 설치할 때 비밀번호를 다시 묻지 않습니다. 그러나 비밀번호를 다시 입력하도록 강제하려면 다음을 사용할 수 있습니다.
dev1 ALL = PASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude
마지막으로 각 사용자에 대해 별도의 줄을 만들지 않으려면 "사용자" 그룹의 모든 구성원이 프로그램을 설치하도록 허용할 수 있습니다. (물론 사용자를 신뢰하거나 신뢰할 수 있는 사용자에 대해 별도의 그룹을 만들어야 합니다.)
%users ALL = PASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude
이제 다음과 같이 설치를 수행할 수 있습니다.
$ sudo /usr/bin/yum install name_of_a_program