-
🔨 [WSL2/Ubuntu] sudo: /etc/sudoers is world writable 에러 확실한 해결법| 프로그래밍 분야/Unix-Linux 2021. 10. 20. 01:01
사건의 발단...
sudo 할때마다 패스워드 치는게 귀찮아서 sudoer를 편집하려다가, permission이 없길래 아무 생각없이
sudo chmod 777 /etc/sudoers
하고 sudoers 파일을 수정했더니 일어난 참사에요
❯ sudo sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
구글링해보니까 여러 해결책이 제시됐지만 제대로 동작하지 않았어요
pkexec visudo pkexec chown root:root /etc/sudoers /etc/sudoers.d -R pkexec chmod 440 /etc/sudoers su chmod 440 /etc/sudoers 기타등등....
Error getting authority: Error initializing authority: Could not connect: No such file or directory
해결책
한참 헤맨 뒤 찾은 해결책은 다음과 같아요
1) /etc/sudoers 내용 원상복구 (wsl상에서 현재 write 권한이 있을테니까 vim으로.. 만약 없다면 킵해두고 3-1에서 해결)
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/b> # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
2) ctrl+R - cmd 접속
3) 다음 커맨드를 통해 cmd에서 wsl에 root 권한으로 접속
wsl -u root
3-1) (1에서 내용 원상복구했다면 이 단계는 Skip) cmd상에서 다음 커맨드를 통해 nano 에디터로 sudoers 편집. nano 에디터는 sudo 편집기인 visudo와 같은 에디터에요.
nano /etc/sudoers
참고로, nano 에디터에서 저장은 ctrl + O 누르고 엔터 누르면 되고, 편집기 종료는 ctrl + X 누르면 돼요.
4) cmd상에서 다음 커맨드로 권한을 원상복구시켜요
chmod 440 /etc/sudoers
더 확실한 해결책
WSL + Ubuntu 재설치