Debian
未找到命令,但可與 sudo 一起使用
我在沒有 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
這是由於 PATH 變數的預設配置。PATH 設置 shell 搜尋特定命令的位置。
預設情況下,Debian
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
.