一般ユーザで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 をつける。その時は別名をつける??