2009-01-16 45 views
2

我有一个程序将要输入密码作为输入,然后执行shell执行以在UNIX中执行“su”(切换用户)命令。但是,我不知道如何将密码变量传递给UNIX su命令。我必须使用的语言非常有限(UniBasic)。如何将密码传递给“su”命令?

任何想法?

回答

11

好了,这样做将是一个setuid root用户的可执行文件,要求输入密码,然后进行必要的操作命令,但它需要你说不具备知识的最佳途径。相反,我会建议您注意sudo(1)

+0

我打算带着setuid-root选项。谢谢! – 2009-01-16 16:24:09

1

SU的版本,我有我的Linux服务器上不支持这样的选择。我检查了sudo,但它也没有。他们想要自己做提示,以确保它以安全的方式完成,并且(我猜)阻止人们将脚本逐字输入到脚本中等等。

+0

sudo可以配置为不需要密码。 – PolyThinker 2009-01-16 15:39:04

5

你可以ssh到localhost作为另一个用户执行任何你想要的命令。或者,使用sudo并编辑/ etc/sudoers,以便sudo不要求输入密码。但是,可能存在安全隐患。

编辑:请让我知道为什么,当你将其否决。我的答案可能不完美,但至少可以。我自己就是为了一些只能以怪异的用户名运行的许可软件。

+0

我不知道为什么这是被拒绝,似乎是一个非常好的解决方法。 – 2009-01-16 16:17:48

3

你做希望指定密码作为命令行参数。不是因为@ unwind的答案(脚本可能是私有的),而是因为如果某人运行了一个进程列表,您可以看到命令参数以及相应的密码。

+0

+1之一,因为它让我想起有多少次我看到人们询问有关在命令行上设置密码的问题。所以很多人应该取消其UNIX/Linux操作许可证...... – 2010-09-12 23:19:46

0

你也可以看看那被设计为脚本复杂的用户输入到一个程序,没有足够的灵活性,从标准输入比其他地方收到此输入“预期的效用。