모든 사용자가 실행한 sudo 명령에 대한 세부정보

모든 사용자가 실행한 sudo 명령에 대한 세부정보

어떤 로그에서 모든 사용자가 실행한 sudo 명령에 대한 세부 정보를 얻을 수 있습니까? 작업 디렉터리, 명령, 사용자가 포함되어야 합니다. 이 작업을 수행하기 위한 쉘 스크립트를 제게 제공해 주시면 도움이 될 것입니다.

답변1

배포판에 따라 다릅니다.

$ sudo grep sudo /var/log/secure

또는

$ sudo grep sudo /var/log/auth.log

이것은 만든다:

Nov 14 09:07:31 vm1 sudo: pam_unix(sudo:auth): authentication failure; logname=gareth uid=1000 euid=0 tty=/dev/pts/19 ruser=gareth rhost=  user=gareth
Nov 14 09:07:37 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/yum update
Nov 14 09:07:53 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/grep sudo /var/log/secure

이 예에서 명령을 실행하는 사용자는 sudo:- 뒤에 있습니다.gareth

PWD디렉토리입니다.

USER이 예에서는 gareth-로 실행 중인 사용자 입니다.root

COMMAND실행하라는 명령입니다.

따라서 위의 예에서는 gareth를 사용하여 이 예를 sudo실행 yum update한 후 실행합니다. 그 전에는 잘못된 비밀번호를 입력했습니다.

또한 롤링 로그 파일이 있을 수 있습니다./var/log/secure*

최신 시스템의 경우:

$ sudo journalctl _COMM=sudo

매우 유사한 출력을 제공합니다.

답변2

Gareth 솔루션의 "결과 필터"입니다. (설명이 아닌 게시물 제목으로 오시는 분들을 위해)

모든 사용자가 sudo로 실행하는 명령만 정리된 목록을 제공합니다.

$sudo journalctl _COMM=sudo  | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'

sed를 사용할 수 없는 경우 해결 방법

$sudo journalctl _COMM=sudo | grep COMMAND

C&P 결과는 Google 스프레드시트에 저장됩니다.

B1 셀에서 C&P 이 수식

=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))

관련 정보