apacheなど/sbin/nologin shellが指定されているユーザではコマンド実行ができません。
1 2 3 4 5 |
# su - apache This account is currently not available. # getent passwd apache apache:x:49:49:Apache:/usr/share/httpd:/sbin/nologin |
nologin shellのユーザでコマンド実行方法を調べたのでちょっとメモ。
run script as user who has nologin shell
http://serverfault.com/questions/351046/run-script-as-user-who-has-nologin-shell
- su
- runuser
- sudo
1回のコマンド実行
1 2 |
# su -s /bin/bash -c 'ls /var/www/html' apache index.html |
bash shellを起動して継続する
1 2 3 4 5 6 7 8 |
# su -s /bin/bash apache bash-4.2$ whoami apache bash-4.2$ exit exit # su - apache Last login: Tue Oct 16 10:51:31 JST 2016 on pts/0 This account is currently not available. |
1回のコマンド実行
1 2 |
# runuser -l apache -s /bin/bash -c 'ls /var/www/html' index.html |
bash shellを起動して継続する
1 2 3 4 5 |
# runuser -l apache -s /bin/bash -bash-4.2$ whoami apache -bash-4.2$ exit ログアウト |
1 2 |
# sudo -l -U apache User apache is not allowed to run sudo on host01. |
1回のコマンド実行
1 2 |
# sudo -u apache -s /bin/bash -c 'ls /var/www/html' index.html |
bash shellを起動して継続する
1 2 3 4 5 |
# sudo -u apache /bin/bash bash-4.2$ whoami apache bash-4.2$ exit exit |
それぞれの違いは?
それは専門家の方にお任せします(^^;