共有ホスティング環境を設定できるWebアプリケーションを作成しています。すべての作業はプログラムで実行する必要があり、完全に安全でない方法で作業を進めているかどうか疑問です。
現在、私は各ユーザーをインストールして構成するためのbashスクリプトを作成し、Webサーバーでこのスクリプトを実行しています。ただし、スクリプト内でsudoでコマンドを実行する必要があります。
たとえば、ユーザーを作成したら、そのユーザーとしてログインし、wgetを使用して何かをダウンロードする必要があります。これを達成するために、adduserをsudoとして実行し、環境変数にパスワードを入力し、sudo suを実行してそのユーザーとしてログインしました。これらすべてが非常に不思議に感じていますが、まだ選択肢が見つかりませんでした。
どんな助けでも大変感謝します!
答え1
考えられる解決策は、次の2つのステップで構成されています。
- パスワードのないsudoアクセス設定
- sudo を使用して目的のユーザーとしてログインします。
ステップ1について詳しく説明します。
例えば、https://askubuntu.com/questions/147241/execute-sudo-without-password
ユーザ名が「mark」で、宛先ユーザ名が「john」であるとします。
実装する:
sudo visudo
ファイルの末尾に以下を追加します。
mark ALL=(ALL) NOPASSWD: ALL
その後、ファイルを保存します
ステップ2ははるかに簡単です。
sudo -i -u john
それはすべてです。千万:-)