사용자 도구

사이트 도구


linux:sudo

sudo

  • /etc/sudoers 편집은 visudo 명령으로 한다.
  • /etc/sudoers 파일을 직접 편집하기 보다는 /etc/sudoers.d 에 파일을 생성하는 방식으로 한다.
    • 이때 이 파일은 0440 권한으로 만들어야 한다.
    • 파일 명에 ~ 혹은 . 이 포함돼 있으면 안된다.

마지막 명령 root 로 실행하기

sudo 명령을 STDIN 에서 받기

  • -S / –stdin : 프롬프트를 stderr로 출력하고 입력은 stdin에서 받는다.
  • -n / –non-interactive : 프롬프트 자체를 출력하지 않는다. 단, 암호가 필요한 상황에서는 에러가 난다.
  • –prompt=<prompt> : 프롬프트
echo "myPassword" | sudo -S blahblah...
  • 합쳐서..
echo -n "password for sudo: "
read -s SUDO_PASSWORD # -s 입력값 숨김
echo $SUDO_PASSWORD | sudo --stdin --prompt='' blah blah..

특정 그룹에 모든 권한 지정

사용자를 /etc/group에서 wheel 그룹에 추가해 두어야 한다. 최신 Ubuntu 버전에서는 sudo 그룹에 이미 추가 돼 있으며 sudo 그룹만 조정하면 된다.

%sudo  ALL=(ALL)       NOPASSWD: ALL # 비밀번호 없이
# or
%wheel  ALL=(ALL)       NOPASSWD: ALL # 비밀번호 없이

arch/manjaro 에서 visudo 편집의 NOPASSWD 안 먹을 때

  • Arch Linux의 경우, /etc/sudoers.d 아래에 있는 파일의 설정값이 visudo의 설정을 덮어 쓴다.
  • 특히 %wheel 설정이 기본으로 /etc/sudoers.d/10-installer에 들어있어서 덮어 써버린다.
  • /etc/sudoers.d/100-my-no-password 파일을 별도로 추가해줘야 한다.
    %wheel ALL=(ALL) NOPASSWD: ALL

특정 그룹 사용자에게 특정 명령을 root로 실행 허용

%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
%users  localhost=/sbin/shutdown -h now # 로컬 접속자에 한해서 shutdown -h now 허용
linux/sudo.txt · 마지막으로 수정됨: 2022/12/30 14:52 저자 kwon37xi