มีอะไรพิเศษเกี่ยวกับการอนุญาต Linux 004


23

ฉันกำลังอ่านPractical Unix และ Internet Securityเมื่อฉันเจอบรรทัดต่อไปนี้ซึ่งฉันไม่สามารถเข้าใจได้

หากคุณใช้เซิร์ฟเวอร์เก็บถาวรของ wu คุณสามารถกำหนดค่าในลักษณะที่อัพโหลดไฟล์จะถูกอัพโหลดในโหมด 004ดังนั้นไคลเอ็นต์อื่นไม่สามารถ ดาวน์โหลดได้ สิ่งนี้ให้ความคุ้มครองที่ดีกว่าการทำให้ไดเรกทอรีอ่านไม่ได้เนื่องจากป้องกันผู้คนจากการอัพโหลดไฟล์แล้วบอกชื่อไฟล์ให้เพื่อนดาวน์โหลด

ได้รับอนุญาตจาก 004 -------r--สอดคล้องกับ ไม่สามารถดาวน์โหลดไฟล์ได้หากมันมีการเข้าถึงเพื่ออ่าน? ทำไมมันจึงถือว่าดีกว่าการทำให้ไดเรกทอรีไม่สามารถอ่านได้? สิ่งนี้หมายความว่าอย่างไร

หมายเหตุ: สิ่งนี้เกี่ยวข้องกับผู้ใช้ที่ไม่ได้รับอนุญาตปล่อยเนื้อหาที่ผิดกฎหมายและมีลิขสิทธิ์บนเซิร์ฟเวอร์โดยใช้ FTP ที่ไม่ระบุชื่อ แนะนำวิธีแก้ไขปัญหาข้างต้นเพื่อป้องกันปัญหานี้พร้อมกับสคริปต์ที่ลบเนื้อหาไดเรกทอรีหลังจากช่วงระยะเวลาหนึ่ง


ดูเหมือนว่าจะอ้างอิงWU-FTPของชื่อเสียง wuarchive.wustl.edu
คู่ปรับ Shot

2
นี่คือ UMASK 004 หมายถึงและไม่ได้รับอนุญาต!
Afsin Toparlak

3
@ AfsinToparlak ไม่นี่เป็นการอนุญาตในเชิงบวกอย่างแน่นอนไม่ใช่ umask ดูคำตอบที่ยอมรับได้
o11c

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

1
ด้วยความเคารพต่อ " นี้จะให้การป้องกันที่ดีกว่าเพียงแค่การทำไดเรกทอรีอ่านไม่ได้ในขณะที่จะป้องกันไม่ให้ผู้คนจากอัปโหลดไฟล์แล้วบอกเพื่อนของพวกเขาชื่อไฟล์ที่แน่นอนในการดาวน์โหลด. " ... เคล็ดลับก่อนหน้านี้ที่จะทำให้บางสิ่งบางอย่างในพื้นที่เช่นการอัปโหลด333( หรือd-wx-wx-wx) ที่อนุญาตให้ผู้คน (ผู้ใช้ FTP) สร้างไฟล์ แต่เนื่องจากไม่มีสิทธิ์ในการอ่าน [ในไดเรกทอรี] พวกเขาจึงไม่สามารถแสดงรายการไฟล์ในไดเรกทอรีอัปโหลด อย่างไรก็ตามหากคุณรู้จักชื่อคุณสามารถอ่าน / ดาวน์โหลดไฟล์ได้
TripeHound

คำตอบ:


33

สิทธิ์ 004 (------ r--) หมายความว่าไฟล์สามารถอ่านได้โดยกระบวนการที่ไม่ได้ทำงานในฐานะผู้ใช้เดียวกันหรือเป็นกลุ่มเดียวกับเซิร์ฟเวอร์ FTP สิ่งนี้ค่อนข้างแปลก: โดยปกติผู้ใช้จะมีสิทธิ์มากกว่ากลุ่มและกลุ่มมีสิทธิ์มากกว่าคนอื่น โดยปกติผู้ใช้สามารถเปลี่ยนการอนุญาตดังนั้นจึงไม่มีประโยชน์ที่จะให้สิทธิ์ที่ จำกัด มากขึ้นแก่ผู้ใช้ มันสมเหตุสมผลแล้วที่นี่เพราะเซิร์ฟเวอร์ FTP (สมมุติ) ไม่มีคำสั่งให้เปลี่ยนการอนุญาตดังนั้นไฟล์จะยังคงการอนุญาตจนกว่าจะมีสิ่งอื่นเปลี่ยนแปลง

เนื่องจากผู้ใช้ที่เซิร์ฟเวอร์ FTP ทำงานเป็นไม่สามารถอ่านไฟล์ผู้คนจะไม่สามารถดาวน์โหลดไฟล์ได้ ทำให้ไม่สามารถใช้เซิร์ฟเวอร์ FTP เพื่อแชร์ไฟล์ได้

สันนิษฐานว่ากระบวนการบางอย่างที่ทำงานในฐานะผู้ใช้ที่แตกต่างกันและกลุ่มอ่านไฟล์ในบางจุดตรวจสอบว่าเป็นไปตามนโยบายบางนโยบายคัดลอกข้อมูลหากมีและลบไฟล์ที่อัปโหลด

มันจะทำให้ฉันมีความเหมาะสมมากกว่าที่จะให้สิทธิ์การใช้ไฟล์ 040 (สามารถอ่านได้โดยกลุ่มเท่านั้น) และให้กระบวนการผู้บริโภคทำงานเป็นกลุ่มเดียวกับเซิร์ฟเวอร์ FTP แต่เป็นผู้ใช้ที่แตกต่างกัน


1
@Cthulhu: กระบวนการเซิร์ฟเวอร์ FTP นั้นเป็นของ "all" แต่สิทธิ์ UNIX จะไม่ถูกค้นหา พิจารณาสิทธิ์การใช้งานได้เพียงหนึ่งครั้งเท่านั้นและนี่เป็นการตรวจสอบผ่าน / ไม่ผ่าน (ไม่เหมือนของ Windows ของ ACL ที่มีผ่าน / ไม่ผ่าน / ดูเพิ่มเติม)
MSalters

8

มาสก์การอนุญาตแบบฐานแปดของ004สอดคล้องกับมาสก์การอนุญาตแบบสัญลักษณ์u=,g=,o=rซึ่งหมายความว่า(u)serผู้ที่เป็นเจ้าของไฟล์ไม่สามารถอ่านหรือเขียนหรือเรียกใช้งานได้และผู้ใช้รายอื่นไม่สามารถเหมือนกัน(g)roupกับผู้ใช้ที่เป็นเจ้าของไฟล์ เฉพาะ(o)therผู้ใช้ที่ไม่ใช่เจ้าของหรือในกลุ่มเดียวกับเจ้าของเท่านั้นที่สามารถอ่านไฟล์ได้


1
นี่คือ UMASK 004 หมายถึงและไม่ได้รับอนุญาต!
Afsin Toparlak

4
@AfsinToparlak: ไม่มีก็เป็นที่ชัดเจนได้รับอนุญาต ดูคำตอบที่ยอมรับได้
TripeHound

6

ใช่ แต่ไฟล์เป็นของผู้ใช้ ดังนั้นไคลเอ็นต์เองจึงมีสิทธิ์ 0 (ผู้ใช้) ในไฟล์และไม่สามารถอ่านได้

คุณสามารถทดสอบได้ด้วยตัวเอง:

echo TEST > myTestFile;
chmod 004 myTestFile;
cat myTestFile;
chmod 700 myTestFile;
cat myTestFile;

ขั้นตอนที่สามจะทำให้เกิดข้อผิดพลาด


ดังนั้นเมื่อมีการอัปโหลดไฟล์เฉพาะผู้ใช้ที่ได้รับอนุญาตให้อ่านไฟล์และอื่น ๆ ทั้งหมดจะได้รับ 000? ฉันถูกไหม? คุณช่วยขยายคำตอบของคุณหน่อยได้ไหม?
Aswin PJ

1
ฉันพบหนังสือและบทเกี่ยวกับการรักษาความปลอดภัยไดเรกทอรีสาธารณะที่สามารถเขียนได้สำหรับลูกค้า ftp ที่ไม่ระบุชื่อ ไคลเอ็นต์แบบไม่ระบุชื่อใด ๆ เปิดไฟล์เป็น uid เดียวกับไคลเอนต์นิรนามอื่น ๆ ดังนั้นไฟล์ที่สร้างขึ้นสามารถสร้างได้โดยไม่ระบุชื่อ แต่ไม่สามารถอ่านได้โดยไม่ระบุชื่อ มันสามารถอ่านได้โดย uid อื่น ๆ ในระบบ
Jodka Lemon

@ หวังว่า: แต่ละหลักในสตริงเลขฐานแปดของการอนุญาตแสดงถึง 4 บิต: set-id, อ่าน, เขียน, และ exec ตามลำดับนั้น ดังนั้น 7 หมายถึงอ่านเขียนและดำเนินการบิตทั้งหมด หลักแรกคือการอนุญาตสำหรับเจ้าของ ฯลฯ ดังนั้นมันทำให้รู้สึกไม่ที่จะพูดว่าคนอื่น ๆ 000จะได้รับ อื่น ๆ 0ที่ได้รับเพียง คำตอบของ Gilles เป็นคำอธิบายที่ดีที่สุดเกี่ยวกับการตั้งค่าการอนุญาตเหมือน004จริง
Peter Cordes

ขั้นตอนที่สามคือการเขียนไม่ใช่การอ่าน
หยุดทำร้ายโมนิก้า

@OrangeDog คุณพูดถูก ฉันแก้ไขมัน
Jodka Lemon

-1

ดูเหมือนว่ามีแนวโน้มว่าการอนุญาตใด ๆ ถูกปิดบังโดย 004 นั่นคือผู้ใช้รายอื่นไม่สามารถอ่านไฟล์ได้ สิ่งนี้จะทำหน้าที่ปกป้องไฟล์จากผู้ใช้รายอื่นบนระบบ (ในระดับหนึ่ง)


ไม่อย่างที่คนอื่นได้อธิบายแล้วเซิร์ฟเวอร์ ftp ตั้งค่าการอนุญาตเพื่อ004ให้ผู้ใช้ที่อัพโหลดมันและผู้ใช้ ftp คนอื่น (อย่างน้อยนิรนาม) ไม่สามารถเข้าถึงไฟล์ได้จนกว่าจะได้รับการตรวจสอบ (เมื่อได้รับอนุญาตอีกครั้งและ อาจถูกย้าย / เปลี่ยนชื่อเป็นสถานที่ที่เหมาะสม) สถานที่เช่น WU Archive ถูกใช้บ่อยครั้ง (mis) ในความสลัวและอดีตอันไกลโพ้นเป็นไซต์แชร์ไฟล์หากสิ่งเหล่านี้ไม่ถูกนำมาใช้
TripeHound
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.