Linux sudo명령 오류(user is not in the sudoers file)

linux Linux

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 :

Debian의 경우 wheel그룹대신 sudo그룹에 추가하시면 됩니다.
(중요) 여기까지의 설정을 적용하기 위해서는 redhatadmin사용자로 다시 로그인해야 합니다.

이제 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
... 중간 생략 ...

sudo명령 사용 시 요구되는 패스워드 입력을 없애고 싶다면 Linux sudo명령 사용 시 패스워드 안 물어보게 하기 글을 참조하십시오

제목과 URL을 복사했습니다