패스워드 없이 sudo 실행하게 설정


sudo 는 root의 권한을 대리로 사용하게 하는 명령어로 ubuntu 와 같이 정책적으로 root 로그인을 막은 리눅스 운영체제에서 사용된다. 

sudo 로 실행하게 되면 현재 사용자의 패스워드를 요청한다. 

sudo 시 패스워드 요청없이 그냥 바로 실행하고 싶다면 아래와 같이 실행해라.


 $ echo "{user} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{user}

 $ sudo chmod 0440 /etc/sudoers.d/{user} 


예를 들어 test 란 사용자가 sudo 시 패스워드 요청없이 실행하고 싶다면

$ echo "test ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/test
$ sudo chmod 0440 /etc/sudoers.d/test



활용


위 설정을 하게 되면 sudo 시 패스워드를 입력안해도 되는 장점도 있지만 

진짜 유용할 때는 ssh로 명령내릴 때이다. 예를 들어 ssh 10.10.10.10 "sudo chmod 0777 /test" 시 sudo가 패스워드를 요청하는데 ssh 로 sudo 실행시  no tty 어쩌구 에러가 난다. 터미널 환경이 아니라는 말이다.

이때 위의 설정을 하면 패스워드를 안물어보므로 이런 문제도 안생긴다.



sudo 설정 후 root 권한의 디렉토리에 파일을 전송하고 싶다면(root는 사용하지 않고)

 ssh test-server "sudo /etc/config" < config.conf


Posted by 단세포소년

댓글을 달아 주세요