किस लॉग से मैं किसी भी उपयोगकर्ता द्वारा निष्पादित सूडो कमांड के बारे में विवरण प्राप्त कर सकता हूं। इसमें कार्यशील निर्देशिका, कमांड, उपयोगकर्ता होना चाहिए। यह उपयोगी होगा यदि आप मुझे ऐसा करने के लिए एक शेल स्क्रिप्ट प्रदान कर सकते हैं
किस लॉग से मैं किसी भी उपयोगकर्ता द्वारा निष्पादित सूडो कमांड के बारे में विवरण प्राप्त कर सकता हूं। इसमें कार्यशील निर्देशिका, कमांड, उपयोगकर्ता होना चाहिए। यह उपयोगी होगा यदि आप मुझे ऐसा करने के लिए एक शेल स्क्रिप्ट प्रदान कर सकते हैं
जवाबों:
आपके डिस्ट्रो पर निर्भर करता है; बस:
$ 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
एक बहुत ही समान उत्पादन देता है।
गैरेथ के समाधान के लिए एक "परिणाम फ़िल्टर"। (उन लोगों के लिए जो पद के शीर्षक से आए, विवरण नहीं)
आपको केवल कमांड की एक स्वच्छ सूची देता है, सभी उपयोगकर्ताओं द्वारा sudo के रूप में चलाया जाता है।
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
यदि अनुपलब्ध है, तो वर्कअराउंड करें
$sudo journalctl _COMM=sudo | grep COMMAND
Google शीट में C & P का परिणाम है
सेल B1 C & P में यह सूत्र है
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))