ฉันสามารถดูรายละเอียดเกี่ยวกับคำสั่ง sudo ที่บันทึกโดยผู้ใช้ใด มันควรมีไดเรกทอรีการทำงานคำสั่งผู้ใช้ มันจะมีประโยชน์ถ้าคุณสามารถให้เชลล์สคริปต์แก่ฉันได้
ฉันสามารถดูรายละเอียดเกี่ยวกับคำสั่ง sudo ที่บันทึกโดยผู้ใช้ใด มันควรมีไดเรกทอรีการทำงานคำสั่งผู้ใช้ มันจะมีประโยชน์ถ้าคุณสามารถให้เชลล์สคริปต์แก่ฉันได้
คำตอบ:
ขึ้นอยู่กับ distro ของคุณ เพียง:
$ 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\///'
วิธีแก้ไขหากไม่สามารถใช้งานได้
$sudo journalctl _COMM=sudo | grep COMMAND
ส่งผลให้ C&P เป็น Google ชีต
ในเซลล์ B1 C&P สูตรนี้
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))