web-dev-qa-db-ja.com

インタラクティブシェルを別の非ルートユーザーとして取得するにはどうすればよいですか?

デフォルトのセキュリティモデル(ルートがロックされ、Sudoを使用して特権を昇格)でUbuntu 10.04 LTSサーバーを使用しています。昇格した特権で一連のコマンドを実行する必要があるとき、またはルートのみの特権を持つディレクトリを探し回る必要があるとき、私は時々Sudo -iの使用を楽しんでいます。

時々、独自の非特権システムアカウント(adduser --system --group --no-create-home --disabled-login some-daemon-user)として実行するソフトウェアをセットアップするときに、自分ではなく一連のコマンドそのユーザーとしてを実行する必要があることがわかります。またはルート。 Sudo -i -u some-daemon-userを使用してみましたが、エラーメッセージなしで1ステータスを返すだけです。

/var/log内のsyslogmessagesauth、およびdebugログファイルを確認しましたが、いずれにもSudoまたは問題のアカウントを参照するメッセージが含まれていません。

それで、パスワードを設定してログインするだけで、root以外の別のユーザー、Sudoスタイルになることは可能ですか?私のシステムは何らかの形で「壊れている」のでしょうか、それとも間違っていますか?

13
Calrion

問題は、それらのユーザーの標準シェルが通常/bin/falseに設定されていることであり、セキュリティ上の理由からこれを変更しないでください。ただし、たとえば次のように実行できます:Sudo -u www-data /bin/sh

13
Paul Hänsch

Sudo -iは、ターゲットユーザーのパスワードデータベースエントリで指定されたシェルを実行します。これは、システムユーザーの/bin/falseです。

つかいます

 Sudo -u some-daemon-user bash

または

Sudo -u some-daemon-user -H bash

ターゲットユーザーに設定された$ HOME環境変数を設定する場合。

9
Florian Diesch