GUI 없이 Debian GNU/Linux 10(buster) x86_64를 설치하고 사용자를 생성한 후 sudo 액세스 권한을 부여했습니다. 사용자에게 sudo 액세스 권한이 있지만 shutdown
또는 같은 명령은 reboot
sudo를 사용할 때만 작동합니다. 내 경험상 이러한 명령을 실행하기 위해 sudo를 사용할 필요는 없었습니다. 어떻게 해결할 수 있나요?
$ whoami
amir
$ id amir
uid=1000(amir) gid=1000(amir) groups=1000(amir),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev)
$ reboot
zsh: command not found: reboot
$ sudo which reboot
/usr/sbin/reboot
$ sudo grep amir /etc/sudoers
amir ALL=(ALL:ALL) ALL
$ sudo grep "^sudo" /etc/sudoers
sudo ALL=(ALL:ALL) ALL
답변1
이는 PATH 변수의 기본 구성 때문입니다. PATH는 쉘이 특정 명령을 검색할 위치를 설정합니다.
데비안은 기본적으로 sudo
PATH를 변경합니다 . 이렇게 하는 이유 중 하나는 안전 때문입니다. 그러나 여기에는 당신을 위한 무언가가 추가됩니다.
즉, 다음을 추가합니다: /sbin
및 /usr/sbin
.
다음을 입력하여 이를 볼 수 있습니다.
echo $PATH
그리고
sudo bash -c 'echo $PATH'
이 동작은 여러 위치에서 제어됩니다. 첫째, sudo의 동작은 다음에서 제어됩니다 /etc/sudoers
.
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
사용자의 PATH는 전체 시스템을 제어하며 /etc/profile
사용자 /etc/bash.bashrc
의 개인 설정은 ~
홈 디렉터리( ) ~/.profile
및 에 있는 파일에 있습니다 ~/.bashrc
.
이 파일에서는 행이 변경되고 export PATH
.