为 sudo 命令设置不一样的 $PATH

May 30, 2024 • 预计阅读时间 1 分钟

普通用户和 root 用户的区别,root 用户可以执行 /sbin/usr/sbin 路径下的命令,而且不希望普通用户的 $PATH 变量中有 root 用户专属的路径。

shbash 已经在默认的配置文件 /etc/profile 中区别好了 root 用户和普通用户的 $PATH

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin"
fi
export PATH

...

安装了 sudo 以后,普通用户也可以使用 root 权限执行命令,这个时候就需要 $PATH 的值和 root 用户一样。

编辑 sudo 的配置文件,把 root 用户的路径添加进去:sudo vi /etc/sudoers

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

重新登录使配置生效。

Debiansudo
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

Nginx 配置端口转发

在云服务器使用 WireGuard 实现异地局域网互联