AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 924037
Accepted
XPDIN
XPDIN
Asked: 2017-06-11 04:17:39 +0800 CST2017-06-11 04:17:39 +0800 CST 2017-06-11 04:17:39 +0800 CST

在“/etc/sudoers”中添加“Defaults secure_path="/home/username" 可能存在风险

  • 772

这可能是要增加的风险

Defaults secure_path="/home/username" 

在 /etc/sudoers?

sudo
  • 1 1 个回答
  • 13798 Views

1 个回答

  • Voted
  1. Best Answer
    Byte Commander
    2017-06-11T04:49:49+08:002017-06-11T04:49:49+08:00

    该secure_path值(如果设置)将用作PATH您使用运行的命令的环境变量sudo。

    这意味着,当您运行 eg 时,系统将尝试按照指定的顺序在 中指定的目录中sudo apt update查找命令。aptsecure_path

    现在,如果您添加一个非 root 用户对 具有写入权限的目录secure_path,您可以在两个位置执行此操作:

    • 附加到secure_path列表的末尾,优先级最低
    • 在列表的开头或中间插入secure_path,具有更高的优先级。

    附加到末尾几乎是安全的,因为它不会改变现有命令的解析方式,它只允许执行来自不同目录的可执行文件而无需明确指定它们的位置。这个附加目录对于非 root 用户是可写的这一事实允许他们在没有提升权限的情况下将恶意文件放在那里,因此在键入位于那里的任何命令时必须小心(自愿或通过错误输入其他内容)。

    但是,如果您将目录不作为最后一个元素,而是具有更高的优先级,则该目录的内容将遮蔽并覆盖secure_path. 例如,如果你把你的用户目录放在第一位,并且它包含一个(恶意的?)名为 的可执行文件apt,那么下次运行时sudo apt update你会得到一个惊喜......

    我也永远不会直接将主目录添加到任何PATHor secure_path,而是创建一个专用目录,例如/home/USERNAME/bin为此,它只包含我想要的可执行文件PATH,没有别的。


    结论:

    secure_path如果目录对除 root 用户之外的任何人都可写,则不应将它们放入其中。否则,没有提升权限的普通用户(包括恶意软件或破坏此类帐户的攻击者)可以将自己的可执行文件放在那里,并等待任何sudo有权意外(使用常用命令的常见拼写错误作为文件名)或自愿执行它的人。

    但是,如果您真的想这样做,请尝试尽可能严格地限制对该目录的写入权限,并确保将该目录添加为的最后一个元素,secure_path以防止其中的任何内容影响系统可执行文件。

    备择方案

    但是,secure_path如果您想使用sudo.

    您还可以使用命令替换which来获取用户中某些内容的完整路径PATH,例如

    sudo $(which MY_EXECUTABLE) ARGUMENTS
    
    • 17

相关问题

  • GUI sudo 不工作?

  • 如何在 sudo 下只运行一次桌面图形应用程序?

  • 如何将用户添加到“sudo”组?

  • Nautilus 自动以 root 身份浏览

  • 为什么我需要 root 权限才能在命令行中卸载驱动器,而不是在 Nautilus 中?如何改变它?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve