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
** ทดสอบ ** เป็นไฟล์ ค้นหาการค้นหาในไดเรกทอรี ดังนั้นคุณควรใช้ค้นหาในไดเรกทอรีที่มีการทดสอบอยู่
—
นิลส์
@Nils: ไม่จริง
—
0xC0000022L
find
(GNU พบว่าถูกต้อง) จะใช้ไดเรกทอรีและไฟล์เหมือนกัน เขา / เธอพลาดจุด-perm
สวิตช์ การอ่านคู่มือจะช่วยได้
@ 0xC0000022L น่าสนใจ linux-manpage ของฉันบน CentOS 5 บอกฉันว่าจะใช้ไดเรกทอรีเท่านั้น มีความรู้สึกมากในการใช้งานบนไฟล์หรือไม่?
—
นิลส์
@ ไม่มี: ไม่มีความรู้สึกพิเศษในการทำมัน แต่คุณจะไม่ป้องกันความเขลานั้น ฉันก็คิดว่านี่เป็นปัญหา อนิจจาไม่ใช่สำหรับคำถามนี้ คุณสามารถลองโดยตรวจสอบบิตใด ๆ ในไฟล์เช่นนี้
—
0xC0000022L
find $FILE -perm /7777
เพื่อดูว่าคุณfind
ทำหรือป้องกันมัน