Su
如何以不同的使用者身份執行命令
是否可以執行命令
- 參數首先以
-
(破折號)開頭,例如/usr/bin/echo -n foo
- 作為不同的使用者和組,例如
apache:apache
- 使用命令
su
- 當登錄外殼設置為
/sbin/nologin
?我試過:
su -s "/usr/bin/echo" -g apache apache -n foo
- 失敗
su: invalid option -- 'n'
。看起來第一個參數可能不是以破折號開頭。su -c "/usr/bin/echo -n foo" -g apache apache
- 失敗
nologin: invalid option -- 'c'
。如果登錄 shell 是,它看起來-c
不能使用/sbin/nologin
su -s /bin/bash -c "/usr/bin/echo -n foo" -g apache apache
-s /bin/bash
覆蓋 nologin 並允許解釋-c
選項的值-c "/usr/bin/echo -n foo"
允許避免使用破折號開始的第一個參數
sudo 來救援!
sudo -u <user> -g <group> -- echo -n foo