{{ ansible_managed | comment }} filter { if [program] == "sudo" and [facility] == "authpriv" { grok { # FIXME: ce n'est pas sûr du tout : en effet, la commande exécutée peut # contenir dans ses arguments "COMMAND=" et le champ PWD peut aussi contenir # " ; COMMAND=". # Par exemple, en se plaçant dans des répertoires imbriqués "Documents ; USER=jeltz ; COMMAND=/bin/ls", # on obtient : # jeltz : TTY=pts/0 ; PWD=/home/jeltz/Documents ; COMMAND=/bin/ls ; USER=root ; COMMAND=/usr/bin/id # La seule façon de gérer ça que je vois, c'est de lever une alerte Kibana lorsque sudo_command ou sudo_pwd # contient "; COMMAND=" ou " ; USER=". match => { "message" => "^ *%{USERNAME:sudo_user} : TTY=%{DATA:sudo_tty} ; PWD=%{DATA:sudo_pwd} ; USER=%{USERNAME:sudo_elevated_user} ; COMMAND=%{DATA:sudo_command}$" } add_tag => ["sudo", "sudo_command"] tag_on_failure => [] } } }