Linux/Ubuntu

sudo가 되지 않는 에러 (/etc/sudoers: syntax error near line)

ahfmrjttb 2020. 8. 21. 03:07

보통 사용자 계정에 권한을 부여하기 위해 visudo로 /etc/sudoers 파일을 열어서 수정하거나 root계정에서 vi(m)로 수정한다. 하지만 이 때 잘못 추가 또는 잘못 수정 시 sudo 명령어가 먹히지 않는다.

 

 

위 그림에 보이듯이 sudo 명령어가 되지 않는다. 하지만, 에러가 친절하게 나와있으니 당황할 필요없다. 에러를 보면 /etc/sudoers 파일에 1번째 줄이 잘못됐다는 뜻이다. 즉, /etc/sudoers 파일에 1번째 줄을 수정해주면 된다. 하지만 지금 root도 아닌데다가 root 권한을 위해 sudo 명령어를 써도 먹히지가 않으니 수정을 할 수가 없다.

 

 

보다시피 되지 않는다. 이 경우 해결방법은 2가지가 있다.

 

1. root 비밀번호를 알아낸 후 root로 접속하여 vi(m)으로 /etc/sudoers 파일 수정

2. pkexec visudo로 /etc/sudoers 파일 수정

 

만약 1번처럼 root로 바로 접속을 할 수 있다면 사실 문제는 바로 해결된다. 하지만, 실제로 일을 하다보면 sudo 권한이면 몰라도 root 계정의 비밀번호를 알려주는 일은 많지 않을 것이다. 따라서, 일반 계정에서 해결할 수 있는 방법에 대해 알아보도록 하자. 그게 2번이다.

 

$ pkexec visudo

 

해당 명령어를 치면 비밀번호를 입력하라는 창이 나온다. 이는 root 비밀번호가 아닌 해당 계정의 비밀번호를 입력하면 된다.

 

 

그러면 /etc/sudoers 파일이 열린다. 아까 에러 내용이 1번째 줄이 잘못됐다고 했는데, 실제로 1번째 줄을 보면 !가 들어가 있다. :wq!를 하다가 실수로 필자도 모르게 저렇게 !가 들어간 것 같다. !를 지운 후 EXIT인 Ctrl+X를 누른다. 그러면

 

 

!를 지웠으니 /etc/sudoers 파일이 수정된 것이므로 수정된 것을 저장할 것인지 물어보고 있다. Yes인 Y를 누른다. 그럼 다음화면이 나오는데

 

 

여기서는 그냥 Enter를 눌러주면 된다. 이제 sudo가 되는지 확인해보면

 

 

sudo가 잘 되는 것을 확인할 수 있다.

 

 

 

참고 사이트 :

    - https://brownbears.tistory.com/228

    - https://yujuwon.tistory.com/entry/sudo%EB%A1%9C-%EA%B4%80%EB%A6%AC%EC%9E%90-%EA%B6%8C%ED%95%9C-%EC%96%BB%EC%A7%80-%EB%AA%BB%ED%95%A0%EB%95%8C

    - https://plzrun.tistory.com/entry/etcsudoers-%EB%A5%BC-%EC%9E%98%EB%AA%BB-%EA%B1%B4%EB%93%9C%EB%A0%B8%EC%9D%84-%EB%95%8C-%EB%8C%80%EC%B2%98%EB%B0%A9%EB%B2%95