2013-03-12 65 views
0

重新启动后,我忽略SUID位被忽略的问题。这个问题很可能与我对SUID位的理解有关。我需要提升目录中python文件的权限,因为它们执行的功能。这就是我所做的。重新启动时忽略SUID位

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

,如果我再运行的ls -l -h给出了如下(我得到的时候,这是一个重启后做了相同的输出)

-rwsrwxrwx 1根根。 。 。 filename.py

-rwsrwxrwx 1 root root。 。 。 filename.py〜

-rwSr - r-- 1个用户用户。 。 。 filename.pyc

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

我的问题是有没有办法让一个SUID位在重启后生存下来并且不被忽略?

任何帮助将是巨大的

干杯

回答

1

-rwsrwxrwx 1根根。 。 。 filename.py

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

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

这就是这样。

使用Pexpect的供给密码

...这意味着根密码是由非根用户存储在明文文件可读?

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

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

+0

其中pexpect用户输入密码立即用于执行sudo命令然后开除。使用SUID的目的是为了避免每次需要完成某些功能时都必须让用户输入sudo密码。不过,你可能是对的,应该寻找另一条路线。干杯 – Lipwig 2013-03-12 17:07:30

+2

'是为了避免让用户输入sudo的password' - 这就是须藤的NOPASSWD配置选项是 - http://serverfault.com/questions/160581/how-to-setup-passwordless-sudo-on- Linux的 – symcbean 2013-03-12 21:31:35