어느 로그에서 모든 사용자가 실행 한 sudo 명령에 대한 세부 사항을 얻을 수 있습니다. 작업 디렉토리, 명령, 사용자를 포함해야합니다. 쉘 스크립트를 제공하면 도움이 될 것입니다.
어느 로그에서 모든 사용자가 실행 한 sudo 명령에 대한 세부 사항을 얻을 수 있습니다. 작업 디렉토리, 명령, 사용자를 포함해야합니다. 쉘 스크립트를 제공하면 도움이 될 것입니다.
답변:
당신의 배포판에 따라; 간단히:
$ 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
. 그 전에 그는 잘못된 암호를 입력했습니다.
최신 시스템에서 :
$ sudo journalctl _COMM=sudo
매우 유사한 출력을 제공합니다.
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"))