CentOS7 /etc/sudoers 내용 질문드립니다.

kotko0123의 이미지

CentOS7 에서 /etc/sudoers 파일안에

Defaults requiretty

위 이런 설정이 있는데, 이 설정값은 무엇을 뜻하나요...?

위 설정을 주석처리하고 사용해도 상관없나요?

그리고,

특정 사용자에게 특정사용자명이 nodody라고 가정하고 sudo사용시 password를 입력안하고 sudo명령어를 사용할 수 있는 설정값은 무엇인가요... 알려주세요!

김정균의 이미지

현재 셀이 tty 인지 아닌지에 따라 sudo를 허락할 것이냐 안할 것이냐를 결정 합니다.

아래의 실행 결과를 예로 들면,

[user@host ~]$ ssh -l user some.host.com
[user@some ~]$ tty
tty
[user@some ~]$ logout
[user@host ~]$ ssh -l user some.host.com /usr/bin/tty
not a tty
[user@host ~]$

ssh로 정상적인 login 하여 tty 명령을 실행하면 결과가 'tty'라고 나옵니다. 하지만, 두번째와 같이 login shell이 아닐 경우에는 'not a tty' 라는 결과가 나옵니다. "Defaults requiretty" 옵션은 두번째와 같이 tty를 할당 받지 않은 shell에서는 sudo 를 사용하지 못하게 하는 옵션입니다.

보안을 위한 옵션이기 때문에 설정을 하고 사용하시는 것을 권장 합니다.

두번째 질문은 /etc/sudoers.d/ 에 임의의 파일을 하나 만드시고,

nobody   ALL=/usr/bin/cat /etc/shadow   NOPASSWD: ALL

와 같이 마지막에 "NOPASSWD: ALL"을 추가해 주시면 됩니다. /etc/sudoers 파일을 잘 읽어 보시면 sudo를 활용할 수 있는 예제들이 주석으로 많이 있습니다. 영어라고 두려워 마시고 읽어 보세요. 정 안되겠으면 구글 번역기의 힘을 빌리시든지요.