हर SUID कार्यक्रम के हर आह्वान में प्रवेश करें?


12

मैं एक लॉग फ़ाइल रखना चाहूंगा जिसमें किसी उपयोगकर्ता के किसी भी सुसाइड प्रोग्राम को चलाने के लिए हर बार एक प्रविष्टि हो, जिसमें उपयोगकर्ता का नाम, प्रोग्राम और कोई कमांड लाइन तर्क शामिल हों। क्या लिनक्स पर इसे प्राप्त करने का एक मानक तरीका है?

जवाबों:


7

आप ऑडिट सबसिस्टम के माध्यम से एक विशिष्ट निष्पादन योग्य (सेतुद या नहीं) के सभी इनवॉइस लॉग कर सकते हैं । प्रलेखन बल्कि विरल है; के साथ शुरू auditctl आदमी पेज , या शायद इस ट्यूटोरियल । अधिकांश हालिया वितरण auditdपैकेज को शिप करते हैं । इसे स्थापित करें और सुनिश्चित करें कि auditdडेमन चल रहा है, फिर करें

auditctl -A exit,always -F path=/path/to/executable -S execve

और कॉल देखें लॉग इन करें /var/log/audit/audit.log(या जहाँ भी आपके वितरण ने इसे स्थापित किया है)।


1
मुझे लगता है कि कोई एक स्क्रिप्ट लिख सकता है पहले सभी SUID बायनेरिज़ को खोजे और फिर हर एक के लिए अपने समाधान का उपयोग करें। सुरुचिपूर्ण नहीं है, लेकिन निश्चित रूप से उल्लेखनीय है। धन्यवाद!
किम

2
@ किम: मुझे लगता है कि आप एक सेट रूट रूट बाइनरी के सभी इनवॉइस लॉग ऑन कर सकते हैं, न कि किसी रूट यूजर के -F path=…साथ -F euid=0 -F 'uid!=0'या उसके जैसे कुछ के द्वारा । मैं ऑडिट सबसिस्टम में न तो सेट किए गए कोड कोडexecve में हुक देख सकता हूं और न ही विशिष्ट सेटएक्सिड घड़ी । या, ज़ाहिर है, आप हर और पोस्टप्रोसेस लॉग इन कर सकते हैं । execve
गिल्स एसओ- बुराई को रोकना

दिलचस्प। ऐसा पहले कभी नहीं सुना। मुझे आश्चर्य है कि इसका व्यापक रूप से उपयोग कैसे किया जाता है। डेबियन पॉपकॉन के लिए एक प्रविष्टि नहीं है auditd
फहीम मीठा

findसभी SUID फ़ाइलों को सूचीबद्ध करने के लिए कमांड:find / -xdev \( -perm -4000 \) -type f -print

1
@FaheemMitha इसमें एक पॉपकॉन प्रविष्टि है: qa.debian.org/popcon-graph.php?packages=auditd
jofel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.