sudo가 되지 않는 에러 (/etc/sudoers: syntax error near line)
보통 사용자 계정에 권한을 부여하기 위해 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가 잘 되는 것을 확인할 수 있다.
참고 사이트 :