私が行った場合
su - -c 'mkdir bin' user1
それから私は得る
su: /usr/bin/ksh: No such file or directory
ユーザーのシェルが/etc/passwd
でksh
に設定されており、ksh
がインストールされていないためです。
質問
このような場合、ユーザーとしてコマンドを実行するにはどうすればよいですか?
入れない場合は-
の後にsu
を入力すると、そのユーザーの環境は読み込まれませんが、コマンドはそのユーザーとして実行されます。
私はあなたの実際の問題を誤解しているようです。他の人が言ったように-s
は、おそらく実際に必要なオプションです。
以下を使用できます。
su -s /bin/sh -c 'mkdir bin' user1
-s
suのオプションは、使用するシェルを指定し、/ etc/passwdにあるものを上書きします。
-
コマンドから。プロファイルをロードするだけでなく、おそらく作業ディレクトリがコマンドのユーザーのホームディレクトリに変更されるため、現在のディレクトリではなく、user1のホームディレクトリに「bin」を作成します。 。
Suの-s /-Shellオプションを使用すると、ユーザー環境の他の部分を維持しながら、使用するシェルを選択できます。/bin/shはposixによって指定されているため、どこでも使用できるはずです。