web-dev-qa-db-ja.com

Linuxの「システム」ユーザーとしてコマンドを実行(シェル= / bin / false)

特定のcronジョブを実行するためにUbuntu 11.04(adduser --system)で「システム」ユーザーを作成しましたが、そのユーザーとしてコマンドを手動で実行してテストすることもできます。これを行う最も簡単な方法は何ですか?

suは機能しません。これは、ユーザーがシェルとして/bin/falseを持っているためです(cronでは問題ありません)。シェルを手動で/bin/bashに変更してテストを行ってから、もう一度元に戻しましたが、もっと簡単な方法はありますか?

31
EMP

ルートシェルからsu - targetuser -s /bin/bashを使用しています。

直接コマンドを実行するには、-cを使用します。

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
42
dmourati

Sudoを使用します。これは、ユーザーが実際のシェルを持っていない場合でも機能します。

2
eirescot