ไม่สำคัญว่าไฟล์ใน/bin
(หรือไดเร็กทอรีมาตรฐานอื่น ๆ ที่เก็บไฟล์ที่เรียกทำงานได้) นั้นสามารถเขียนได้โดยรูทหรือไม่ บนเซิร์ฟเวอร์ Linux ที่ฉันใช้พวกเขาสามารถเขียนได้โดยรูท แต่ในเครื่อง OpenBSD ของฉันไม่ใช่พวกเขา
ตราบใดที่พวกเขาไม่สามารถเขียนได้โดยกลุ่มหรือ "คนอื่น"!
ไม่มีปัญหาด้านความปลอดภัยเช่น
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
หากมีคนต้องการเขียนทับพวกเขาจะต้องเป็นรูทและหากพวกเขาเป็นroot
และเขียนทับมันพวกเขาก็เป็นเช่นนั้น
- การติดตั้งเวอร์ชันใหม่หรือ
- เงอะงะหรือ
- ผู้โจมตีมีสิทธิ์ root แล้ว
อีกสิ่งที่ควรพิจารณาคือรูทนั้นสามารถเขียนลงไฟล์ได้ไม่ว่าจะป้องกันการเขียนหรือไม่ก็ตามเพราะ ...
โปรดสังเกตด้วยว่า "สคริปต์" นั้นสามารถเรียกทำงานได้เหมือนกับไฟล์ไบนารี สคริปต์ไม่จำเป็นต้องเขียนได้ "เพราะเป็นไฟล์ข้อความ" ถ้ามีอะไรก็น่าจะได้รับอนุญาตเช่นเดียวกับไฟล์ปฏิบัติการอื่น ๆ ในไดเรกทอรีเดียวกัน
อย่าเปลี่ยนสิทธิ์ในทุกสิ่งทันที! ที่สามารถสร้างความหายนะทุกประเภทและอาจทำให้ผู้จัดการแพคเกจสับสนซึ่งอาจตรวจสอบว่าสิทธิ์ได้รับการตั้งค่าอย่างเหมาะสม นอกจากนี้ยังอาจทำให้ระบบมีความเสี่ยงหากคุณเปลี่ยนการอนุญาตโดยไม่ตั้งใจในแอปพลิเคชันที่มีความสำคัญด้านความปลอดภัย
เพียงสมมติว่าสิทธิ์ในการปฏิบัติการถูกตั้งค่าอย่างถูกต้องเว้นแต่คุณจะพบสิ่งที่ดูแปลกจริงๆ ซึ่งในกรณีนี้คุณควรติดต่อผู้ดูแลแพ็คเกจที่เกี่ยวข้องเพื่อตรวจสอบแทนที่จะเริ่มเปลี่ยนสิ่งต่าง ๆ
จากความคิดเห็นและในการแชทมีการเรียกร้องให้มีประวัติบางอย่าง
ประวัติของการอนุญาตบนไบนารีบน Linuxไม่ใช่สิ่งที่ฉันรู้ อาจสันนิษฐานได้ว่าพวกเขาเพียงแค่สืบทอดสิทธิ์จากไดเรกทอรีหรือเพียงแค่จากค่าเริ่มต้นumask
ของ Linux แต่ฉันไม่รู้จริงๆ
สิ่งที่ฉันรู้คือ OpenBSD ติดตั้งไบนารีในระบบฐาน1ด้วยโหมดการอนุญาต 555 โดยค่าเริ่มต้น ( -r-xr-xr-x
) สิ่งนี้ถูกระบุใน Makefile Fragment /usr/share/mk/bsd.own.mk
ที่ตั้งค่าBINMODE
เป็น 555 (ยกเว้นว่ามันจะถูกตั้งค่าไว้แล้ว) นี้จะใช้ในภายหลังเมื่อการติดตั้ง executables ระหว่างในmake build
/usr/src
ฉันได้ดูบันทึก CVS ที่ทำหมายเหตุประกอบไว้สำหรับไฟล์นี้และพบว่าบรรทัดนี้ในไฟล์ไม่เปลี่ยนแปลงเนื่องจากนำเข้าจาก NetBSD ในปี 1995
บน NetBSD ไฟล์จะถูกใส่เข้าไปใน CVSเป็นครั้งแรกในปี 1993 โดยBINMODE
ตั้งค่าเป็น 555
ดูเหมือนว่าโครงการ FreeBSD จะใช้ไฟล์เดียวกันกับ NetBSD ตั้งแต่อย่างน้อยปี 1994และหลังจากนั้นคอมมิชชันในภายหลังก็เพิ่มคำใบ้ในข้อความคอมมิชชันที่ไฟล์เก่ามาจากการเผยแพร่ซอฟต์แวร์ Berkeley รุ่น 4.4BSD
นอกเหนือจากนั้นCSRG ที่เบิร์กลีย์เก็บไว้ในแหล่งSCCSแต่พื้นที่เก็บข้อมูลของพวกเขาคืออยู่ในรูปแบบ Git บน GitHub 2 ไฟล์ที่เราให้การรักษาทางนิติวิทยาศาสตร์ที่นี่ดูเหมือนจะเกิดขึ้นโดยKeith Bostic (หรือคนที่อยู่ใกล้เขา) ในปี 1990
นั่นคือเรื่องราวที่ หากคุณต้องการเหตุผลว่าทำไมฉันคิดว่าเราจะต้องถาม Keith ฉันหวังว่าจะเห็นข้อความยืนยันการเปลี่ยนแปลงที่บอกว่า " นี่ต้องเป็น 555 เพราะ ... " แต่ไม่ใช่
1 ระบบ BSD มีการแบ่งส่วนที่เข้มงวดขึ้นเป็น "ระบบฐาน" และ "แพ็คเกจของบุคคลที่สาม" (พอร์ต / แพ็คเกจ) มากกว่า Linux ระบบฐานเป็นหน่วยที่เชื่อมโยงกันที่ให้สมบูรณ์ชุดของสิ่งอำนวยความสะดวกสำหรับการทำงานของระบบปฏิบัติการในขณะที่พอร์ตหรือแพคเกจถูกมองว่าเป็น "ซอฟต์แวร์ท้องถิ่น" /usr/local
และได้รับการติดตั้งไว้ใต้
2 ที่เก็บ GitHub ที่ครอบคลุมมากขึ้นของ Unix รีลีสจาก 70 เป็นต้นไปก็มีให้เช่นกัน
root
มีสิทธิ์เขียนไปยังไฟล์ไบนารี? หากไม่มีอะไรอื่นมันจะช่วยได้เมื่ออัพเกรดแพ็คเกจ