【问题标题】:SUID Bit ignored on restart重新启动时忽略 SUID 位
【发布时间】:2013-02-28 05:05:33
【问题描述】:

我在重启后遇到了一个 SUID 位被忽略的问题。这个问题很可能在于我对 SUID Bit 的理解。由于它们执行的功能,我需要提升目录中 python 文件的权限。这就是我所做的。

sudo find dir -type f -exec chmod u+s {} \;这是在 python 脚本中使用 pexpect 提供密码来完成的。但是通过命令行完成时我遇到了同样的问题。

如果我然后运行 ​​ls -l -h 给出以下结果(在重新启动后完成时我得到相同的输出)

-rwsrwxrwx 1 根根。 . .文件名.py

-rwsrwxrwx 1 根根。 . .文件名.py~

-rwSr--r-- 1 用户用户。 . .文件名.pyc

在会话中设置 SUID 有效,但是一旦重新启动,SUID 位仍然存在,但似乎被忽略了。现在我认为通过 chmod 设置 SUID 位意味着用户以提升的 root 权限运行程序,并且 chmodding 通过重新启动是持久的。

我的问题是有没有办法让 SUID 位在重启后仍然存在而不被忽略?

这方面的任何帮助都会很棒

干杯

【问题讨论】:

    标签: linux file-permissions


    【解决方案1】:

    -rwsrwxrwx 1 根根。 . .文件名.py

    真的吗?即使这是一个防火墙严密的工作站,没有其他人可以物理访问并且您是唯一的物理用户,将其留在您的文件系统中也是一个非常糟糕的主意。

    sudo find dir -type f -exec chmod u+s {} \;

    原来如此。

    使用 pexpect 提供密码

    ...意思是root密码存储在非root用户可读的明文文件中?

    我很怀疑你的分析。我经常使用 setuid 程序(虽然不是 python 脚本 - 我希望那时 behave like any other setuid scripts - 虽然这 would not explain 为什么他们曾经 像 setuid 一样工作)并且从未遇到过这样的问题。您认为重新启动时会发生什么变化?根据您的帖子,权限没有更改-因此,如果它们确实已停止以 root 身份运行,这意味着其他东西正在跟踪它是否可以以其他用户身份运行这些脚本-并且以无法生存的方式这样做重新启动 - 故事变得越来越不可能了。

    无论解决我提到的所有问题并可能解决您的所有问题的方法都是删除 setuid 位并通过 sudo 调用程序。

    【讨论】:

    • 期望用户输入密码,该密码立即用于执行 sudo 命令,然后放弃。使用 SUID 的目的是避免每次需要执行某些功能时都必须让用户输入 sudo 密码。但是您可能是对的,应该寻求另一条路线。干杯
    • was to avoid having to have the user enter the sudo password - 这就是 sudo 的 NOPASSWD 配置选项的用途 - serverfault.com/questions/160581/…
    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2013-11-08
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多