ฉันจะค้นหาไฟล์และโฟลเดอร์ที่โลกเขียนได้และตั้งค่าบิตเหนียวได้อย่างไร


13

ฉันต้องการทำสิ่งต่อไปนี้:

  1. จำเป็นต้องค้นหาไฟล์และโฟลเดอร์ทั้งหมดที่เขียนได้ทั่วโลกจาก/รูท
  2. หากพบว่าฉันต้องตรวจสอบว่ามีการตั้งค่าบิตเหนียวหรือไม่
  3. หากไม่ได้ติดตั้งบิตกาวไว้ให้ตั้งค่า

เราสามารถหาวิธีแก้ปัญหาบรรทัดคำสั่งสำหรับปัญหาประเภทนี้ได้หรือไม่?

คำตอบ:


13

คุณสามารถทำได้โดยใช้find's -perm -modeรูปแบบ จากman find:

-perm - โหมด

โหมดบิตสิทธิ์ทั้งหมดถูกตั้งค่าไว้สำหรับไฟล์ โหมดสัญลักษณ์ได้รับการยอมรับในแบบฟอร์มนี้และโดยปกติจะเป็นวิธีที่ต้องการใช้โหมดนี้ คุณต้องระบุu',g 'หรือ `o' หากคุณใช้โหมดสัญลักษณ์ ดูส่วนของตัวอย่างสำหรับตัวอย่างที่เป็นตัวอย่าง

ดังนั้นในการค้นหาไฟล์ทั้งหมดที่เป็นโลกที่เขียนได้โดยไม่คำนึงถึงสิทธิ์อื่น ๆ ที่พวกเขามีคุณสามารถทำได้:

find / -perm -o+w 

ในการตั้งค่าบิตเหนียวใช้-exec:

find . -perm -o+w -exec chmod +t {} + 

2
หมายเหตุ: ใช้find / -not -type l -perm -o+wถ้าคุณไม่ต้องการให้เอาท์พุทรวมชื่อของลิงค์สัญลักษณ์ด้วยเช่นกัน
chb

2

คำสั่งนี้ควรค้นหาไดเรกทอรีที่เขียนได้ทั้งหมดในคำสั่งเดียวฉันพบว่าตัวเองใช้มันบ่อยครั้ง นี่มันเป็นคำสั่งที่ดีที่สุด! ;) หวังว่าบริการคุณ:

find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.