デフォルトのセキュリティモデル(ルートがロックされ、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
内のsyslog
、messages
、auth
、およびdebug
ログファイルを確認しましたが、いずれにもSudo
または問題のアカウントを参照するメッセージが含まれていません。
それで、パスワードを設定してログインするだけで、root以外の別のユーザー、Sudoスタイルになることは可能ですか?私のシステムは何らかの形で「壊れている」のでしょうか、それとも間違っていますか?
問題は、それらのユーザーの標準シェルが通常/bin/false
に設定されていることであり、セキュリティ上の理由からこれを変更しないでください。ただし、たとえば次のように実行できます:Sudo -u www-data /bin/sh
Sudo -i
は、ターゲットユーザーのパスワードデータベースエントリで指定されたシェルを実行します。これは、システムユーザーの/bin/false
です。
つかいます
Sudo -u some-daemon-user bash
または
Sudo -u some-daemon-user -H bash
ターゲットユーザーに設定された$ HOME環境変数を設定する場合。