这可能是增加的风险
Defaults secure_path="/home/username"
Run Code Online (Sandbox Code Playgroud)
在
/etc/sudoers
?
Byt*_*der 16
该secure_path
值(如果设置)将用作PATH
您使用 运行的命令的环境变量sudo
。
这意味着,当您运行 eg 时sudo apt update
,系统将尝试apt
在 中指定的目录secure_path
中以指定的顺序查找命令。
现在,如果您添加一个非 root 用户对 具有写访问权限的目录secure_path
,您可以在两个位置执行此操作:
secure_path
列表的末尾,优先级最低secure_path
优先级更高。附加到末尾几乎是安全的,因为它不会改变现有命令的解析方式,它只允许执行来自不同目录的可执行文件,而无需明确指定它们的位置。这个额外的目录对于非 root 用户是可写的,这一事实允许他们在没有提升权限的情况下将恶意文件放入其中,因此在键入位于那里的任何命令时必须小心(有意或通过错误键入其他内容)。
但是,如果您的目录不是作为最后一个元素而是具有更高的优先级,则该目录的内容将隐藏并覆盖secure_path
. 例如,如果您将用户目录放在第一位,并且它包含一个名为 的(恶意?)可执行文件apt
,那么下次运行时sudo apt update
您会得到一个惊喜……
我也不会直接将主目录添加到 anyPATH
或secure_path
,而是创建一个专用目录,例如/home/USERNAME/bin
,它只包含我想要的可执行文件,PATH
而没有其他任何内容。
secure_path
如果除了 root 用户之外的任何人都可以写入任何目录,则不应将其放入。否则,没有提升权限的普通用户(包括恶意软件或攻击者破坏此类帐户)可以将自己的可执行文件放在那里,等待任何有sudo
权限的人意外(使用常用命令的常见拼写错误作为文件名)或自愿执行它。
但是,如果您真的想这样做,请尝试尽可能严格地限制对该目录的写入权限,并确保将该目录添加为 的最后一个元素,secure_path
以防止其中的任何内容隐藏系统可执行文件。
但是,secure_path
如果您想使用sudo
.
您还可以使用命令替换 withwhich
来获取用户中某些内容的完整路径PATH
,例如
sudo $(which MY_EXECUTABLE) ARGUMENTS
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10891 次 |
最近记录: |