我刚刚安装了 Debian 12,安装时没有来自 netinst ISO 的错误消息,并且 bash 找不到某些命令。
lm@debian:~$ sudo sh -c 'echo $PATH'
[sudo] password for lm:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
lm@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/lm/.local/bin
这些都是简单的命令,例如 systemcntl、reboot、甚至 dpkg。 因此,需要手动改进它们的路径。例如,我新安装了 rfkill 软件包,但找不到它。
Preparing to unpack .../rfkill_2.38.1-5+b1_amd64.deb ...
Unpacking rfkill (2.38.1-5+b1) ...
Setting up rfkill (2.38.1-5+b1) ...
Processing triggers for man-db (2.11.2-2) ...
root@debian:/home/lm# rfkill
bash: rfkill: command not found
root@debian:/home/lm# sudo rfkill
ID TYPE DEVICE SOFT HARD
0 wlan phy0 unblocked unblocked
1 bluetooth hci0 unblocked unblocked
root@debian:/home/lm#
为什么它找不到该命令,如果它必须在 /usr/bin 中,它已包含在路径中并且我有超级用户权限?
下一个命令也一样:
root@debian:/home/lm# rfkill unblock 0
bash: rfkill: command not found
root@debian:/home/lm# sudo rfkill unblock 0
root@debian:/home/lm#
这个月我已经重新安装了这个发行版 6 次(各在 3 台机器上安装了 2 次),但结果相同。
我该如何解决这个问题?
你的问题不太容易理解,但据我了解,这是一个环境问题。我什至会说这不是问题而是误会
/usr/sbin/ 和 /sbin 只能通过提升的权限访问,这就是为什么在标准用户中找不到启动 rfkill 命令的原因。
@Grobu 是对的,如果你不能以 root 身份运行命令,那就是你没有 root 用户环境。 此行确认您仍然拥有 lm 用户环境:
root@debian:/home/lm#
切换用户环境使用
su -
例如:
test@debian:/home/test$ su
root@debian:/home/test# rfkill unblock 0
bash: rfkill: command not found
但是
test@debian:/home/test$ su -
root@debian:/root# rfkill unblock 0
root@debian:/root#
使用 sudo 命令不会出现问题,因为该命令是在 root 用户的环境下启动的。
无法以标准用户身份启动 rfkill 命令。
如果您希望能够从其他用户访问 rfkill 命令,您没有太多选择: