====== 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 허용