จะค้นหาไฟล์ SUID / SGID ทั้งหมดได้อย่างไร?


11

Howtos ทั้งหมดที่ฉันพบในเว็บระบุว่า:

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เขาF riendly Mประจำปีใช่มั้ย? บิตการอนุญาตของไฟล์เป็นโหมดตรง (ฐานแปดหรือสัญลักษณ์)
0xC0000022L

** ทดสอบ ** เป็นไฟล์ ค้นหาการค้นหาในไดเรกทอรี ดังนั้นคุณควรใช้ค้นหาในไดเรกทอรีที่มีการทดสอบอยู่
นิลส์

1
@Nils: ไม่จริง find(GNU พบว่าถูกต้อง) จะใช้ไดเรกทอรีและไฟล์เหมือนกัน เขา / เธอพลาดจุด-permสวิตช์ การอ่านคู่มือจะช่วยได้
0xC0000022L

@ 0xC0000022L น่าสนใจ linux-manpage ของฉันบน CentOS 5 บอกฉันว่าจะใช้ไดเรกทอรีเท่านั้น มีความรู้สึกมากในการใช้งานบนไฟล์หรือไม่?
นิลส์

@ ไม่มี: ไม่มีความรู้สึกพิเศษในการทำมัน แต่คุณจะไม่ป้องกันความเขลานั้น ฉันก็คิดว่านี่เป็นปัญหา อนิจจาไม่ใช่สำหรับคำถามนี้ คุณสามารถลองโดยตรวจสอบบิตใด ๆ ในไฟล์เช่นนี้find $FILE -perm /7777เพื่อดูว่าคุณfindทำหรือป้องกันมัน
0xC0000022L

คำตอบ:


14

หากคุณต้องการที่จะทดสอบสำหรับการใด ๆ/ของบิตใช้ เช่นกรณีการใช้งานของคุณ:

find "$DIRECTORY" -perm /4000

และ:

find "$DIRECTORY" -perm /2000

หรือรวม:

find "$DIRECTORY" -perm /6000

คุณอาจจะใช้ทั้งโฟลเดอร์และไฟล์เป็นอาร์กิวเมนต์สำหรับ findGNU

อีกวิธีหนึ่งที่ IMO อ่านได้ดีกว่าคือวิธีใช้ทางลัดช่วยในการจำ เช่น:

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

Caveat emptor

โปรดทราบว่ารูปแบบที่findแตกต่างกันไป พวกเขาอาจทำงานแตกต่างกัน อ่านคู่มือที่เป็นมิตร (RTFM) เสมอ


8

โดยใช้คำสั่งต่อไปนี้คุณสามารถระบุไบนารีทั้งหมดที่มีสิทธิ์ SUID การ-perm -u=sตั้งค่าสถานะของfindเครื่องมือเป็นการหลอกลวง:

find / -perm -u=s -type f 2>/dev/null
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.