2009-01-16 43 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

你也可以看看那被設計爲腳本複雜的用戶輸入到一個程序,沒有足夠的靈活性,從標準輸入比其他地方收到此輸入「預期的效用。