一般ユーザでansibleを実行
概要
一般ユーザでansibleを実行しようとしたけど失敗するので色々みてみた。
実行
ansible -m shell -a "while true; do date; ls -l; sleep 5; clear; done;" -s --ask-sudo-pass ホスト名
PSコマンドでみてみた
root \_ sshd: 一般ユーザ名 [priv] 一般ユーザ名 \_ sshd: 一般ユーザ名@pts/1 一般ユーザ名 \_ /bin/sh -c sudo -H -S -p "[sudo via ansible, key=xxxxxxxxxxxxx] password: " -u root /bin/sh -c 'echo BECOME root \_ sudo -H -S -p [sudo via ansible, key=xxxxxxxxxxxxxx] password: -u root /bin/sh -c echo BECOME-SUCCESS-bl root \_ /bin/sh -c echo BECOME-SUCCESS-bltxuqbmpqpefrbgfvxtpbbxhdlhteio; LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 LC_MESSAGES=ja_JP. : : : root \_ /bin/sh -c while true; do date; ls -l; sleep 5; clear; done;
-u root
sudo -H -S -p[] -u root
ansibleの内部でsudo -u rootして/bin/shをしているようだった。この後のコマンドはこのシェルから実行していると思われる。なので
$ ansible -m shell -a "cat /var/log/secure " -s --ask-sudo-pass ホスト
sudoで許可しない設定にしているsecureログでもcatできるようだった。
-u root /bin/sh が内部で実行している限り、強制的に一般ユーザで実行できないのだろうか?
メモ
ansibleを実行するときに-u をつける。その時は別名をつける??