Debian

未找到命令,但可與 sudo 一起使用

  • August 12, 2021

我在沒有 GUI 的情況下安裝了 Debian GNU/Linux 10 (buster) x86_64 並創建了一個使用者並給了它 sudo 訪問權限。使用者確實具有 sudo 訪問權限,但類似shutdownreboot僅在使用 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 搜尋特定命令的位置。

預設情況下,Debiansudo會更改您的 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.

引用自:https://unix.stackexchange.com/questions/664405