linux - SUID 位在重启时被忽略

标签 linux file-permissions

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

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

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

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

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

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

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

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

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

干杯

最佳答案

-rwsrwxrwx 1 root root . . . filename.py

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

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

这个也是。

using pexpect to supply the password

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

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

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

关于linux - SUID 位在重启时被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365397/

相关文章:

linux - 破解 USB 设备 : Any programs out there?

c++ - 在 64 位 Linux 操作系统上编译 32 位程序导致 fatal error

linux - chmod 777 到一个文件夹和所有内容

permissions - silverstripe - Assets 文件夹的文件权限

Java IOException : Permission denied on linux while running as owner 错误

php - 设置 cron 作业为绝对路径

linux - 尝试安装 Node JS,但在 make ./configure 时遇到问题

regex - grep 可以只显示我想要的结果吗

ubuntu - 将文件上传到计算引擎 - 权限

PHP/Apache 拒绝用户访问文件夹但不访问脚本