root 계정의 패스워드를 노출하지 않고 한시적으로 허용된 사용자에 관리자 권한으로 명령을 실행 할 수 있도록 한다[1].
최초(혹은 sudo 명령 사용 후 일정 시간이 경과 한 후) 사용 시 sudo 명령을 실행하는 계정의 패스워드를 확인한다.
※ /etc/sudoers 파일에 sudo 명령 사용이 가능한 계정으로 등록이 되어있어야 한다.
관리자 권한이 필요할 때 명령어 앞에 sudo 를 붙이면 된다
예시
# 관리자 권한으로 ls 명령을 사용할 경우
sudo ls
we trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for haedong: 여기에_패스워드_입력
※SUDO = SuperUser DO
sudo _command_ #관리자 권한으로 명령 실행.
sudo -i #관리자 권한의 쉘 실행 ($ -> #)
다음과 같이 sudoers 파일을 수정하여 권한을 부여한다.
sudo visudo /etc/sudoers
# 아래와 같은 형식으로 사용자를 추가한다.
# Allow root to run any commands anywhere
root ALL=(ALL) ALL
_ USER ALL=(ALL) ALL _
haedong ALL=(ALL) NOPASSWD: ALL
%root ALL=NOPASSWD: ALL
# 해당 사용자는 sudo 명령 사용 시 패스워드를 묻지 않는다
haedong2 ALL=(ALL) NOPASSWD: reboot
#해당 사용자는 rboot 사용 시 패스워드를 묻지 않는다.
# %그룹이름 ALL=(ALL) ALL 을 추가하면 해당 그룹의 사용자가 모두 sudo 를 사용할 수 있다.
# sudo를 이용한 명령 수행 시 특정 환경 변수를 포함하는 경우 아래 "" 사이에 추가한다.
Defaults secure_path=" _ 대상 경로 _ "
# sudo 이용 시 특정 환경 변수를 유지하려는 경우 아래 "" 사이에 대상 변수를 추가한다.
Defaults env_keep += " _ 대상 환경 변수 _ "
관리자가 미리 지정해 놓은 사용자에 대해 sudo 명령을 통해 권한 상승을 시도할 때
해당 사용자의 패스워드를 한번 더 입력하게 하는 것으로 사용자를 확인한다. ↩︎