किसी भी प्रणाली पर, जब तक कि आपने अपने स्वयं के साथ chroots सेट नहीं किया है /dev
, सभी डिवाइस फ़ाइलें नीचे हैं /dev
। केवल रूट ही डिवाइस फाइलें बना सकता है, इसलिए आपको दुर्भावनापूर्ण उपयोगकर्ताओं को डिवाइस फाइल बनाने की चिंता करने की आवश्यकता नहीं है।
तो आपको बस इतना करना होगा /dev
कि जिस डिवाइस में आप रुचि रखते हैं, उसी डिवाइस को देखें।
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
संभावना है कि यह केवल दिखाएगा /dev/video0
। आमतौर पर, प्रत्येक डिवाइस के लिए एक एकल डिवाइस फ़ाइल होती है, और संभवतः इसके लिए अतिरिक्त प्रतीकात्मक लिंक भी होते हैं।
इस प्रकार आपके प्रश्न का व्यावहारिक उत्तर सरल है। बस जाँचें कि उपकरण फ़ाइल किस प्रक्रिया में खुली है।
fuser /dev/video0
यदि आप एक्सेस की निगरानी करना चाहते हैं (यानी किसी भी समय डिवाइस फ़ाइल को खोल सकते हैं) प्रक्रियाओं को पकड़ें, तो डिवाइस फ़ाइल पर लिनक्स की फ़ाइल एक्सेस मॉनिटरिंग विधियों में से एक का उपयोग करें : एक घड़ी सेट करें (और जांचें कि क्या प्रक्रिया पहले से ही डिवाइस में है फ़ाइल खोलें
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
या एक ऑडिट नियम सेट करें जो सिस्टम लॉग में एक्सेस लॉग करेगा (आमतौर पर /var/log/audit/audit.log
)
auditctl -w path=/dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
lsof
(औरfuser
) डिफ़ॉल्ट रूप से वह नहीं करता है जो आपको इसकी आवश्यकता है।