“user is not in the sudoers file“오류가 발생하지 않고 sudo명령을 사용할 수 있도록 사용자를 /etc/sudoers파일에 등록 하는 방법을 소개합니다.
sudoers사용자를 추가하는 방법
Debian의 경우 sudo그룹, CentOS의 경우는wheel그룹의 소속이 아닌 사용자가 sudo명령을 실행하면 다음과 같은 오류가 발생합니다.
[redhatadmin]$ sudo cat /etc/passwd
[sudo] password for redhatadmin :xxxxxxxx
redhatadmin is not in the sudoers file. This incident will be reported.
이 메시지는 “redhatadmin유저가 sudoers파일에 없습니다, 이 오류 내용은 기록 됩니다.” 는 내용이며 이 오류를 해결하기 위해, 특정 사용자 redhatadmin가 sudo명령을 실행할 수 있도록 /etc/sudoers파일에 추가 해야 합니다.
그러나, /etc/sudoers파일에 사용자를 추가하면 좋지만 /etc/sudoers파일에는 미리 sudo명령을 사용할 수 있는 그룹(CentOS는wheel , Debian은sudo) 이 포함되어 있습니다.
다음은 wheel그룹이 /etc/sudoers파일에 미리 등록되어있는 CentOS의 예입니다.
[redhatadmin]$ su - root
Password:
[root]# cat /etc/sudoers
... 중간 생략 ...
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
... 중간 생략 ...
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
... 중간 생략 ...
위에 정의된 wheel 그룹에 사용자를 추가하는 것 만으로 sudo명령을 사용할 수 있습니다. 자 그럼,추가하여 봅시다. 여기에서는 usermod명령을 사용하여 redhatadmin을 wheel그룹에 추가합니다.
[root]# usermod -G wheel redhatadmin
[root]# cat /etc/group | grep redhatadmin
wheel x : 10 : redhatadmin
redhatadmin x : 1000 :
이제 OK입니다. redhatadmin사용자는 sudo명령을 실행할 수 있게 되었습니다. 확인을 위해 다시 sudo명령을 실행해 봅시다. 다음과 같이 사용자의 암호를 입력하고 지정된 명령이 실행되면 적절하게 설정되어 있다는 것을 의미합니다.
[redhatadmin]$ sudo cat /etc/passwd
[sudo] password for redhatadmin :xxxxxxxx
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
... 중간 생략 ...