ฉันจะใช้ไวยากรณ์ gnu find สำหรับแฟล็ก -perm ในตัวอย่างนี้:
โดยทั่วไป - หากคุณทิ้งส่วนขยายที่แปลกประหลาดเช่น ACL คุณจะมี 3 chocies - เจ้าของกลุ่มและการเข้าถึงการเขียน "อื่น ๆ " เสียงเหมือนงานสำหรับวง
มีพื้นที่เหลือเฟือให้เพิ่มประสิทธิภาพ แต่ฉันจะปล่อยให้คนอื่น ... นอกจากนี้ฉันไม่สามารถจำรายละเอียดทั้งหมดของการค้นหาและข้ามระบบแฟ้มและเรื่องไร้สาระที่ ตรวจสอบให้แน่ใจว่าผลลัพธ์ของกลุ่มเหมือนกันกับในระบบทดสอบ linux ของฉัน
$ groups snoopy
snoopy : snoopy doghouse linus admin wwI woodstock
$
นี่เป็นตัวอย่างคร่าวๆของวิธีที่คุณพบไฟล์ที่ผู้ใช้เขียนได้ สิ่งนี้จะเมื่อเรียกใช้ในฐานะผู้ใช้ใด ๆ แต่ถ้าคุณเรียกใช้ในฐานะผู้ใช้ที่ไม่ใช่ uid0 คุณจะพบสิ่งที่อยู่ในไดเรกทอรีที่ผู้ใช้ที่เรียกใช้สคริปต์เท่านั้นที่มีทั้งสิทธิ์ในการอ่านและดำเนินการ
#!/bin/sh
user=snoopy
directory=/
# first files owned by the user and writable
find "$directory" -follow -user "$user" -perm /u+w 2> /dev/null
# now for files that are group writable with the user in that group
for groups in $(groups snoopy 2> /dev/null | cut -f2 -d:)
do
find "$directory" -follow -group "$user" -perm /g+w 2> /dev/null
done
# now for everything else
find "$directory" -follow -perm /o+w 2> /dev/null