Today
-
Yesterday
-
Total
-
  • 🔨 [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 재설치

sangilyoon.dev@gmail.com