特定のユーザーとしてコマンドを実行する必要があるbashスクリプトを作成しています。その結果、私は次のコマンドを使用しています:
runuser
このスクリプトをテストしましたが、UbuntuServer14.10で完全に機能します。ただし、14.04と12でテストすると、次のエラーが発生します。
runuser: command not found
これは、runuserコマンドが使用されるたびに発生します。
次のコマンドを使用して、新しいユーザーを作成しています:
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
新しいユーザーを作成するときに指定する必要がある特定の何かがありますか?欠落している特定の依存関係はありますか?
質問の編集:
エコーの出力$PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
ls -l / sbin / runuser
の出力ls: cannot access /sbin/runuser: No such file or directory
runuserとsuを使用する理由は、次の理由によるものです。
runuserを使用する場合、次のコマンドを実行できます。
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
一方、suでは、次のようにコマンドをチェーンする必要があります。
su user -c 'cd; wget http://file.com'
承認された回答:
runuser
最近のコマンドで、util-linux2.23に登場しました。 Ubuntu14.04にはutil-linux2.20が同梱されているため、このコマンドはまだありません。
runuser
あまり役に立ちません。 su
を使用するだけです 代わりは。コマンドrunuser user -c 'cd'
に注意してください 実際には何もしません— cd
のスコープ runuser
への次の呼び出しには拡張されません 。 runuser user -c 'cd && wget http://file.com'
を使用する必要があります とりあえず。 su user -c 'cd && wget http://file.com'
を使用します 代わりに。