सभी SUID / SGID फ़ाइलों की खोज कैसे करें?


11

वेब स्टेट्स पर मेरे द्वारा किए गए सभी हाउट्स:

Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print 

परन्तु यह सच नहीं है। देख:

$ ls -lah test
-r-sr-xr-x  1 user  user     0B Jan 24 22:47 test
$ 
$ 
$ stat -x test | grep Mode
  Mode: (4555/-r-sr-xr-x)         Uid: ( 1000/    user)  Gid: ( 1000/    user)
$ 
$ 
$ find test -perm 4000
$ find test -perm 2000
$

प्रश्न: तो सत्य क्या है? मैं वास्तव में सभी SUID / SGID फ़ाइलों को कैसे सूचीबद्ध कर सकता हूं?


उह, तो वास्तव में यह "सच नहीं" क्यों है? आपने R ead T he F riendly M anual, right? फ़ाइल की अनुमति बिट्स बिल्कुल मोड (ऑक्टल या प्रतीकात्मक) हैं।
0xC0000022L

** परीक्षण ** एक फ़ाइल है। निर्देशिकाओं पर खोजें। तो आपको उस निर्देशिका का उपयोग करना चाहिए जहां परीक्षण रहता है।
नेल्स

1
@ नील: असत्य। find(GNU सटीक प्रतीत होता है) निर्देशिकाओं और फाइलों को समान रूप से लेगा। वह / वह बस -permस्विच की बात याद आती है । मैनुअल पढ़ने से मदद मिलेगी।
0xC0000022L

@ 0xC0000022L दिलचस्प। CentOS 5 पर मेरा लिनक्स-मैनपेज मुझे बताता है कि यह केवल निर्देशिका लेगा। क्या इसे फ़ाइल पर चलाने में बहुत समझदारी है?
निल्स

@ निल्स: इसे करने में कोई खास समझदारी नहीं है। लेकिन यह आपको उस मूर्खता से नहीं रोकेगा। बावजूद, पहली नज़र में मुझे भी यही मुद्दा लगा। काश, यह इस सवाल के लिए नहीं है। आप किसी फ़ाइल पर कुछ बिट्स के लिए जाँच करके इस तरह find $FILE -perm /7777से देख सकते हैं कि आपका findकाम करता है या उसे रोकता है।
0xC0000022L

जवाबों:


14

यदि आप किसी भी बिट के लिए परीक्षण करना चाहते हैं , तो उपयोग करें /। आपके उपयोग के मामले के लिए Ie:

find "$DIRECTORY" -perm /4000

तथा:

find "$DIRECTORY" -perm /2000

या संयुक्त:

find "$DIRECTORY" -perm /6000

आप GNU के तर्क के रूप में फ़ोल्डर और फ़ाइलों दोनों का उपयोग कर सकते हैं find

एक और, IMO बेहतर पठनीय है, दृष्टिकोण mnemonic शॉर्टकट का उपयोग कर रहा है। अर्थात:

find "$DIRECTORY" -perm /u=s,g=s

कैवियट खाली करनेवाला

ध्यान रखें कि findभिन्न प्रकार। वे अलग तरह से व्यवहार भी कर सकते हैं। हमेशा फ्रेंडली मैनुअल (RTFM) पढ़ें।


8

निम्न आदेश का उपयोग करके आप SUID अनुमति वाले सभी बायनेरिज़ की गणना कर सकते हैं। उपकरण का -perm -u=sध्वज findचाल करता है:

find / -perm -u=s -type f 2>/dev/null
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.