2

パスワードを入力として受け取り、UNIX で「su」(ユーザーの切り替え) コマンドを実行するためにシェルを実行するプログラムがあります。しかし、パスワード変数を UNIX の su コマンドに渡す方法がわかりません。これに使用しなければならない言語はかなり限られています (UniBasic)。

何か案は?

4

5 に答える 5

11

それを行うための最良の方法は、パスワードを要求し、必要なコマンドを実行する setuid-root バイナリですが、所有していないと言う知識が必要です。代わりにsudo(1)を見ることをお勧めします。

于 2009-01-16T15:29:33.400 に答える
5

別のユーザーとして localhost に ssh して、必要なコマンドを実行できます。または、sudo を使用して /etc/sudoers を編集し、sudo がパスワードを要求しないようにします。ただし、セキュリティに影響する可能性があります。

編集:投票するときは、理由を教えてください。私の答えは完璧ではないかもしれませんが、少なくともうまくいきます。私は、奇妙なユーザー名でしか実行できないライセンスソフトウェアのために自分でそれを行います.

于 2009-01-16T15:41:05.810 に答える
3

コマンドライン引数としてパスワードを指定する必要はありません。@unwindの回答(スクリプトを非公開にすることができます)のせいではありませんが、誰かがプロセスのリストを実行すると、コマンド引数が表示され、問題のパスワードが表示される可能性があります。

于 2009-01-16T17:19:52.243 に答える
1

Linux サーバーにある su のバージョンは、このようなオプションをサポートしていません。私はsudoをチェックしましたが、そうでもありません。安全な方法で行われることを保証し、(私が推測するに) 人々がスクリプトなどにパスワードを逐語的に入力するのを思いとどまらせるために、彼らは自分自身でプロンプトを表示したいと考えています。

于 2009-01-16T15:35:58.083 に答える
0

標準入力以外の場所からこの入力を受け取るのに十分な柔軟性のないプログラムに複雑なユーザー入力をスクリプト化するように設計された「expect」ユーティリティを見ることもできます。

于 2009-01-17T19:01:34.207 に答える