====== sudo ======
* ''/etc/sudoers'' 편집은 ''visudo'' 명령으로 한다.
* [[linux:pkexec|pkexec]]
* [[linux:sudoedit|sudoedit]]
* [[linux:doas|doas]]
* [[http://lang.snu.ac.kr/clab/?q=node/135|sudoer 추가하기]]
* [[http://ubuntuforums.org/showthread.php?t=1132821|HowTO: Sudoers Configuration]]
* ''/etc/sudoers'' 파일을 직접 편집하기 보다는 ''/etc/sudoers.d'' 에 파일을 생성하는 방식으로 한다.
* 이때 이 파일은 ''0440'' 권한으로 만들어야 한다.
* 파일 명에 ''~'' 혹은 ''.'' 이 포함돼 있으면 안된다.
===== 마지막 명령 root 로 실행하기 =====
* [[https://www.commandlinefu.com/commands/view/13/run-the-last-command-as-root|Run the last command as root]]
sudo !!
===== sudo 명령을 STDIN 에서 받기 =====
* ''-S'' / ''--stdin'' : 프롬프트를 ''stderr''로 출력하고 입력은 ''stdin''에서 받는다.
* ''-n'' / ''--non-interactive'' : 프롬프트 자체를 출력하지 않는다. 단, 암호가 필요한 상황에서는 에러가 난다.
* ''--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 안 먹을 때 =====
* [[linux:arch|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 허용