สิทธิ์ ... วิธีทำให้โฟลเดอร์ไม่สามารถลบได้


0

ใน FreeNAS (FreeBSD) ... ฉันกำลังพยายามทำให้โฟลเดอร์ 'ไม่สามารถลบได้'

ฉันเข้าสู่ระบบในฐานะ root ฉันสร้างโฟลเดอร์ที่เรียกว่าtestและมันchmod 700 (rwx------)เจ้าของเป็นกลุ่มเป็นrootwheel

จากนั้นฉันเข้าสู่ระบบในชื่อผู้ใช้johnซึ่งเป็นส่วนหนึ่งของกลุ่มbbstaff- และฉันสามารถเปลี่ยนชื่อและลบโฟลเดอร์testได้ ไม่ควรที่จะเป็นไปไม่ได้?

ฉันคิดว่าการwอนุญาตป้องกันการเปลี่ยนชื่อ

คำตอบ:


3

การแก้ปัญหาค้อนขนาดใหญ่ของปัญหาประเภทนี้คือการทำให้ไดเรกทอรีไม่เปลี่ยนรูป สิ่งนี้ควรทำด้วยความระมัดระวังอย่างมากเนื่องจากไม่ใช่การดำเนินการทั่วไปดังนั้นหากคุณทำเช่นนี้ขอแนะนำให้ทิ้งไฟล์ไว้ในไดเรกทอรีด้วยคำเตือนที่สำคัญ:

# /some/directory/VAR_HAS_BEEN_MADE_IMMUTABLE.WARNING

เมื่อคุณทำเช่นนั้น:

# chflags schg /some/directory/var

คุณจะพบว่าไม่สามารถย้ายลบหรือแก้ไขได้อีกต่อไปแม้กระทั่งโดยรูทจนกว่าคุณจะพลิกธงกลับ

โปรดทราบว่านี่เป็นวิธี BSD สำหรับคำสั่ง linux chattr + i

http://www.cyberciti.biz/tips/howto-write-protect-file-with-immutable-bit.html


1

Google มีคำตอบมากมายรวมทั้งหนึ่ง thsซึ่งกล่าวว่า "การตั้งค่า bit เหนียวในไดเรกทอรีแม่เท่านั้นที่จะช่วยให้การลบโดยเจ้าของไดเรกทอรี

chmod + t / some / dir / ParentDir

ดูที่ส่วนการใช้งานบนhttp://en.wikipedia.org/wiki/Sticky_bitสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Sticky bits "

อันนี้ก็แนะนำให้ใช้บิตเหนียว

ประการที่สามหน้านี้กล่าวว่า "เมื่อไดเรกทอรีไม่ติดมันจะเพิ่มคุณสมบัติความปลอดภัยพิเศษมันป้องกันไม่ให้ใครบางคนจากการลบหรือเปลี่ยนชื่อไฟล์ในไดเรกทอรีเว้นแต่พวกเขาเป็นเจ้าของไฟล์"

ดูเหมือนว่าเป็นทางออกของคุณ


1
ขอบคุณสำหรับการเป็นผู้นำ ... จริงสำหรับ FreeBSD, bit เหนียวมีการตั้งค่าการใช้คำนำหน้าก่อนสิทธิ์เช่น1 chmod 1777 /path/fileแต่สิ่งที่ฉันต้องการทำคือ 'ล็อก' ไดเรกทอรีเฉพาะไม่ใช่ไดเรกทอรีทั้งหมด เป็นไปได้ไหม
ด่าน

+1 ฉันไม่แน่ใจว่าฉันเข้าใจ "ล็อค" ไดเรกทอรีเฉพาะไม่ใช่ไดเรกทอรีทั้งหมด "- คุณหมายถึงล็อคไดเรกทอรี แต่ไม่ใช่ไดเรกทอรีย่อยเช่นล็อค / home / แต่ไม่ใช่ / home / a / b หรือ / home / a / c เป็นต้น?
Mawg

ขออภัยฉันไม่ชัดเจน ฉันต้องการjohnที่จะสามารถอ่าน / เขียน / เปลี่ยนชื่อ / ลบทุกอย่างที่อยู่ในโฟลเดอร์เดียวกันเป็นยกเว้นtest testฉันต้องการให้เขาเห็นเท่านั้นtestแต่ไม่สามารถลบ / เปลี่ยนชื่อ / เปิดได้ กันไปสำหรับผู้ใช้อื่น ๆ bbstaffในกลุ่ม
ด่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.