2023년 2월 5일 일요일

우분투 리눅스 user is not in the sudoers file 에러 해결 방법

이 글은 우분투 user is not in the sudoers file 에러 수정 방법을 간략히 정리한다. 

이 에러는 root 권한에서 다음과 같이 멍청한? 짓을 할 때 발생할 수 있다. 

sudo usermod -g docker $USER


이 짓을 설명하자면, 현재 루트 권한 사용자를 docker란 그룹으로 옮김으로써 스스로 sudo 그룹을 탈퇴시켜버려 모든 명령어를 실행할 수 없게 하란 뜻이다. 원래 입력하고자 하는 명령은 다음과 같은 것이었다.
sudo usermod -aG docker $USER

이런 유사한? 짓을 했다면, sudo 로 실행되는 명령 apt update, apt-get 을 사용하지 못하는 벌을 받게 되어 있다(아~ T.T). 

user is not in the sudoers file 

구글링하면, sudo 권한을 잃었는 데, usermod를 실행해 유저를 추가하라는 등 넌센스 답들이 넘쳐난다. 멘붕하지 말자. 다음을 잘 따라하면, 다시 멘탈을 되찾을 수 있다.

1. 우선, 우분투를 재부팅한다.
2. GNU GRUB 메뉴에서 Advanced options for Ubuntu 를 선택한다.

3. 다음 메뉴에서 recovery mode 로 표시된 항목 아무거나 선택한다.

4. Recovery Menu에서 다음 root 메뉴를 선택한다. 그럼 루트 권한으로 터미널이 실행될 것이다. 만약, "Press Enter for maintenance" 프롭프트가 보이면 엔터를 친다.

5. 루투 권한으로 실행된 터미널에서 아래 명령을 입력해, 파일 시스템과 마운트하고, sudo 그룹에 유저를 다시 추가해 준다.
mount -o rw,remount /
usermod -aG sudo <user name>

6. exit 명령을 입력하고, 보여진 Recovery Menu에서 resume메뉴를 선택해, 재부팅한다.

7. 다시 우분투 리눅스로 로그인하면, 다음과 같이 sudo 그룹 명령을 실행할 수 있다.

한번의 실수로 한시간을 날렸다(아 ~ㅆㅂ). 앞으로는 아무 생각없이 이런짓 하지 말자.

참고: group user 명령
groups
whoami
cat /etc/group | grep $USER
cat /etc/passwd | grep 'docker'
sudo gpasswd -a $USER docker
newgrp docker
exit

댓글 없음:

댓글 쓰기