コマンドを実行できますか?
- パラメータは
-
最初に(ダッシュ)で始まります。/usr/bin/echo -n foo
- 他のユーザーやグループでは、例えば
apache:apache
- コマンドの使用
su
/sbin/nologin
ログインシェル?に設定されている場合
私は試した:
su -s "/usr/bin/echo" -g apache apache -n foo
- display 失敗します
su: invalid option -- 'n'
。最初のパラメータがダッシュで始まらないようです。
- display 失敗します
su -c "/usr/bin/echo -n foo" -g apache apache
nologin: invalid option -- 'c'
ログインシェルが-c
うまくいかないと表示が失敗します。/sbin/nologin
答え1
su -s /bin/bash -c "/usr/bin/echo -n foo" -g apache apache
-s /bin/bash
nologin を無視し、-c
オプション値の解釈を許可します。-c "/usr/bin/echo -n foo"
ダッシュで始まる最初の引数を避けることができます。
答え2
スドが救いに来ます!
sudo -u <user> -g <group> -- echo -n foo
答え3
ユーザーのログインシェルがに設定されている場合、/sbin/nologin
ユーザーはログインできず、su -
通常は機能しません。
ただし、su -m
現在のユーザーの環境とログインシェルを維持することを選択できます。
su -m <user> -c "<command>"
たとえば、
su -m apache -c "echo hello; id"
印刷:
hello
uid=33(apache) gid=33(apache) groups=33(apache)