리눅스 - [사용자 계정] is not in the sudoers file. This incident will be reported.
container 환경 내에서 이런 오류를 만났다면,
$ sudo cat /etc/shadow
[sudo] password for testusr:
testusr is not in the sudoers file. This incident will be reported.
말 그대로 위의 경우 testusr 사용자는 관리자 그룹에 속하지 않았다는 점입니다. 그런데, 왜 이런 오류가 발생했는지 재현을 해볼까요?
우선, container shell에 진입하면 기본적으로 "root" 계정으로 로그인 되므로 프롬프트가 "#"으로 나옵니다. 하지만, 이후 사용자 문맥을 전환한다면,
# su - testusr
Last login: Wed Feb 1 06:24:48 UTC 2023
이제 root 계정이 아닌 testusr 사용자 권한으로 shell이 운영됩니다. 당연히 이런 상황에서는 root 권한의 자원들을 접근할 수 없습니다.
$ cat /etc/shadow
cat: /etc/shadow: Permission denied
아마도 이때 여러분은, 평소 했던 대로 "sudo"를 붙여 명령어를 수행하려고 했을 것이고,
$ sudo cat /etc/shadow
[sudo] password for testusr:
testusr is not in the sudoers file. This incident will be reported.
testusr 사용자는 sudoers에 등록한 적이 없으므로 암호를 정상적으로 입력했어도 저런 오류가 발생하게 된 것입니다.
이에 대한 해결책은 간단합니다. 그냥 현재의 사용자 계정을 빠져나가면 됩니다. (혹은, 그냥 새로 접속하거나.)
[testusr@40880c208891 ~]$ exit
logout
[root@40880c208891 /]#
그럼 이전의 root shell로 복귀할 것이고 이 상태에서 명령을 수행하면 (/etc/shadow 같은 자원을) root 권한으로 접근할 수 있게 됩니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]