我有一个问题,SUID位在重新启动后被忽略。这个问题完全取决于我对SUID位的理解。由于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
在会话中设置SUID可以工作,但是一旦重新启动,SUID位仍然存在,但似乎被忽略。现在我认为通过chmod设置SUID位意味着用户使用root的提升权限运行程序,chmodding在重启过程中是持久的。
我的问题是,有没有一种方法可以让SUID位在重启后不被忽略?
有什么帮助就好了
干杯
最佳答案
-rwsrwxrwx 1根根。. . 文件名.py
真正地?即使这是一个防火墙很强的工作站,没有其他人可以物理访问它,而且您是唯一的物理用户,将它放在您的文件系统上是一个非常糟糕的主意。
sudo find dir-type f-exec chmod u+s{};
这也是。
使用pexpect提供密码
…表示根密码存储在非根用户可读的明文文件中?
我对你的分析很怀疑。我经常使用setuid程序(虽然不是python脚本-我希望随后会behave like any other setuid scripts-尽管这would not explain说明了它们为什么会作为setuid工作),而且从来没有遇到过这样的问题。你认为重启后会有什么变化?根据你的文章,权限没有改变——所以如果它们真的以根用户的身份停止运行,这意味着其他一些东西正在跟踪它是否可以以不同的用户身份运行这些脚本——并且这样做的方式在重新启动后无法生存——这个故事变得越来越不可能了。
不管如何解决我提到的所有问题,也可能解决您的问题,都是删除setuid位并通过sudo调用程序。
关于linux - 重新启动时忽略SUID位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15365397/