我读到echo $PATH
,对于非 root 用户使用 , 应该类似于:
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/username/bin:
我读到echo $PATH
,对于 ROOT 用户使用 , 应该类似于:
/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
当我输入 时echo $PATH
,我得到:
/home/uname/bin:/home/uname/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
这看起来应该是 root 用户的输出。这是我应该担心的事情吗?例如,当我没有启动 root 访问权限时,我的目录中存在“恶意可执行程序”,提供(未经授权的远程)root 访问权限?
答案1
虽然它不太可能是“恶意”攻击,但您应该关注该 PATH。让我们考虑一下该 PATH 中的目录:
/home/uname/bin
/home/uname/.local/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
我有两个意见:
由于
/home/uname/bin
和home/uname/.local/bin
是 PATH 中列出的第一个目录,因此那里的可执行文件可能会覆盖标准系统可执行文件。可能有人认为此类可执行文件优于标准可执行文件。然而,这些可执行文件与标准可执行文件之间的任何不兼容性都可能很容易导致脚本在意外时刻失败。可以肯定的是,将这些目录放在 PATH 的开头并不罕见,而且很有用。您应该意识到潜在的缺点。
如您所知,诸如
/usr/local/sbin
、/usr/sbin
、 和 之类的目录/sbin
通常仅对 root 有用。虽然将它们放在您的 中无论如何都不会违反安全规定PATH
,但这很奇怪。