เหตุใดจึงต้องใช้บิตเหนียว?


18

"บิตติดหนึบใช้กับไดเรกทอรีเท่านั้นและโดยทั่วไปจะใช้กับไดเรกทอรีที่เขียนได้แบบสาธารณะภายในไดเรกทอรีที่ใช้หมุดเล็ก ๆ นี้ผู้ใช้จะถูกป้องกันไม่ให้ลบหรือเปลี่ยนชื่อไฟล์ใด ๆ ที่พวกเขาไม่ได้เป็นเจ้าของ"

หมายความว่าถ้าฉันทำสิ่งต่อไปนี้:

// only allow other users to read files in /directory
sudo chmod o-w -R /directory
sudo chmod o-x -R /directory
sudo chmod o+r -R /directory

ผู้ใช้ยังสามารถลบหรือเปลี่ยนชื่อไฟล์ใด ๆ ที่ไม่ได้เป็นของพวกเขา?

คำตอบ:


22

bit /tmpเหนียวจะเป็นประโยชน์ในไดเรกทอรีที่มีโลกเขียนเช่น ในไดเรกทอรีเหล่านี้ทุกคนสามารถสร้างไฟล์ได้ดังนั้นไดเรกทอรีจะต้องสามารถเขียนได้ทั่วโลก แต่นั่นหมายความว่าทุกคนสามารถลบไฟล์ได้เช่นกันแม้ว่าจะไม่ได้เป็นของพวกเขาก็ตามเนื่องจากการลบไฟล์นั้นถูกควบคุมโดยสิทธิ์การเขียนในไดเรกทอรี เมื่อไดเรกทอรีมีหมุดเล็ก ๆ เจ้าของไฟล์เท่านั้นที่มีสิทธิ์ในการลบ

ในไดเรกทอรีที่มีสิทธิ์rwx------หรือrwxr-xr-xมีเพียงเจ้าของไดเรกทอรีเท่านั้นที่สามารถสร้างหรือลบไฟล์ได้ หากมีไฟล์ใด ๆ ที่เป็นของผู้ใช้คนอื่น (ย้ายไปที่รูทหรือสร้างเมื่อไดเรกทอรีมีสิทธิ์เปิดมากกว่า) ก็ยังคงเป็นเจ้าของไดเรกทอรีที่มีสิทธิ์ในการลบไม่ใช่เจ้าของไฟล์

ในไดเรกทอรีที่มีสิทธิ์rwxrwx---สมาชิกทั้งหมดของกลุ่มสามารถสร้างและลบไฟล์ได้ สมาชิกของกลุ่มใด ๆ สามารถลบไฟล์ใด ๆ แม้ว่าจะเป็นของผู้ใช้อื่น หากการอนุญาตนั้นrwxrwx--Tใช้แทน (ตัวอักษรTเหมือนtแต่tหมายความว่าxบิตถูกตั้งค่าและTหมายความว่าxบิตนั้นชัดเจน) ดังนั้นสมาชิกทุกคนในกลุ่มสามารถสร้างไฟล์ได้และสมาชิกของกลุ่มสามารถลบไฟล์ได้ แต่ไฟล์ของตัวเองเท่านั้น .

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อดูว่าไดเรกทอรีใดมีบิตเหนียวในระบบของคุณ:

find / /run /run/lock /run/shm -xdev -path /usr -prune -o -perm -o+t -ls 2>/dev/null

คุณจะพบไดเรกทอรีบางอย่าง/tmpที่เปิดให้ทุกคนและบางไดเรกทอรีเช่น/var/spool/cron/crontabsที่ถูกสงวนไว้สำหรับโปรแกรมระบบที่ทำงานเป็นกลุ่มของตัวเอง ( setgid ) ซึ่งเหนียวเล็กน้อยช่วยให้มั่นใจว่าโปรแกรมสามารถลบไฟล์ในนามของ ผู้ใช้ที่เป็นเจ้าของพวกเขา (สิ่งที่ทำให้แน่ใจว่าโปรแกรมสามารถสร้างไฟล์ในนามของผู้ใช้ที่เป็นเจ้าของเท่านั้นคือโปรแกรมกำลังทำงานในฐานะผู้ใช้นั้นไม่ใช่ในฐานะรูทดังนั้นจึงไม่สามารถสร้างไฟล์ที่เป็นของผู้ใช้รายอื่น)

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