ผู้ใช้ถังขยะมีไว้เพื่ออะไร?


27

ตามที่ฉันเขียนที่https://unix.stackexchange.com/a/484626/5132นี่เป็นคำถามที่น่าถาม

บนระบบปฏิบัติการ Linux ...

ถังขยะ passwd getent
bin: x: 2: 2: bin: / bin: / usr / sbin / nologin
%
... และใน FreeBSD ...

ถังขยะ passwd getent
bin: *: 3: 7: คำสั่งของไบนารีและแหล่งที่มา: /: / usr / sbin / nologin
%
... และใน OpenBSD ...

$ getent passwd bin
bin: *: 3: 7: คำสั่งของไบนารีและแหล่งที่มา: /: / sbin / nologin
$
... วันนี้เราสามารถหาbinบัญชีได้ แต่มันไม่มีเอกสารที่สวยมาก ลินุกซ์ฐานมาตรฐานรุ่น 5 กล่าวว่าเพียง ...

หมายเหตุ: binID ผู้ใช้ / รหัสกลุ่มถูกรวมไว้เพื่อความเข้ากันได้กับแอปพลิเคชันรุ่นเก่า แอปพลิเคชันใหม่ไม่ควรใช้binID ผู้ใช้ / รหัสกลุ่มอีกต่อไป
…โดยไม่อธิบายลักษณะของกลไกการทำงานร่วมกัน อย่างที่ Joey Hess นำมันกลับมาในปี 2001 :

bin:

ช่วยเหลือ : binไฟล์บนระบบของฉันไม่เป็นเจ้าของโดยผู้ใช้หรือกลุ่ม พวกเขามีอะไรดี ในอดีตพวกเขาอาจเป็นเจ้าของไบนารี/binหรือไม่ ไม่ได้กล่าวถึงในนโยบาย FHS เดเบียนหรือการเปลี่ยนแปลงของ base-passwd หรือไฟล์ฐาน

คำถามของ M. Hess ยังคงไม่มีคำตอบใน Debian doco สำหรับแพ็คเกจ base-passwd จนถึงทุกวันนี้ 17 ปีต่อมา

ดังนั้นbinบัญชีคืออะไร


คำถามที่เกี่ยวข้องคือunix.stackexchange.com/questions/244989 unix.stackexchange.com/questions/244989
JdeBP

คำตอบ:


34

bin ไม่ถูกต้องสำหรับสิ่งใดตลอดชีวิตของ Linux

เช่นเดียวกับการทำงานระดับและinitวางไข่gettyเพราะของระเบียนใน/etc/inittabการbinบัญชีล้าสมัยในโลกที่ใช้ระบบปฏิบัติการยูนิกซ์ลินุกซ์ก่อนที่จะถูกคิดค้นแม้กระทั่ง มันเป็นความคิดจากปี 1980 ที่ถูกทำลายโดยการประดิษฐ์และการยอมรับของ NFS (Network File System) และnobodyผู้ใช้ การมีอยู่อย่างต่อเนื่องในฐานข้อมูลบัญชีผู้ใช้ในปลายปี 2010 เมื่อผู้คนในโลก Unix เชิงพาณิชย์หยุดการใช้งานอย่างแข็งขันในช่วงปี 1990 เป็นข้อพิสูจน์ถึงความเฉื่อย

แนวคิดก็คือว่า binผู้ใช้เป็นเจ้าของไดเรกทอรีต่าง ๆ เช่น/binและ/usr/bin(และแน่นอนบางส่วนของไดเรกทอรีอื่น ๆ ที่กล่าวถึงที่https://unix.stackexchange.com/a/448799/5132เช่น/usr/mbinและ/usr/5bin) และ non-set-UID / ไม่ใช่ - ไฟล์ set-GID ที่อยู่ภายใน นอกจากนี้ยังเป็นเจ้าของไฟล์ doco และไดเรกทอรีเช่นหน้าคู่มือ

(ในกรณีที่รุนแรงมากขึ้นในบาง Unices มันเป็นเจ้าของ/และ/etcแม้ว่าหลังเป็นข้อผิดพลาดที่ได้รับการยอมรับในการสร้างอิมเมจระบบปฏิบัติการ SunOS ในอดีตเป็นเพียงการแยกออกจากกัน)

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

รายการบัญชีพิเศษอื่น ๆ ใน/etc/passwdไฟล์ของคุณต้องมีรหัสผ่าน เหล่านี้เป็นบัญชีผู้ดูแล - bin, daemon, sys, uucp,lpadmและ […] เหตุผลหลักสำหรับการมีอยู่ของบัญชีเหล่านี้คือการเป็นเจ้าของคำสั่งสคริปต์ไฟล์และอุปกรณ์ที่ปลอดภัย และผู้ดูแลระบบบางคนติดตั้งรหัสผ่านสำหรับบัญชีเหล่านี้และใช้งานจริง […] บัญชีที่ไม่มีรหัสผ่านbinมีประโยชน์อย่างยิ่งสำหรับระบบเบรกเกอร์
- Rebecca Thomas และ Rik Farrow (1989) UNIX คู่มือการดูแลระบบสำหรับระบบวี ศิษย์ฮอลล์. ไอ 9780139428890 452

NFS ถูกประดิษฐ์ขึ้นในช่วงต้นทศวรรษ 1980 และทำลายความคิดนี้โดยสิ้นเชิง

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

การถือกำเนิดของ NFS เน้นเรื่องนี้ แม้ว่า NFS มีกลไกในการแมปบัญชี superuser binไปยังบัญชีผู้ใช้ที่ไม่มีระบบธรรมดาก็ไม่ได้มีเหมือนกันสำหรับที่ไม่ใช่รากบัญชีเช่น ดังนั้นหากใครบางคนสามารถเข้าbinใช้งานไคลเอนต์ NFS ได้ก็จะทำให้พวกเขาbinสามารถเข้าถึงไฟล์ระบบปฏิบัติการบนเซิร์ฟเวอร์ NFS ได้ อันที่จริงมันเปิดใช้งาน superuser บนไคลเอนต์ NFS ซึ่งจะถูกแมปไปยังผู้ใช้ที่ไม่ใช่ระบบธรรมดาบนเซิร์ฟเวอร์เพื่อให้เจ้าของสามารถเข้าถึงไฟล์และไดเรกทอรีระบบปฏิบัติการของเซิร์ฟเวอร์ได้

นี่เป็นความรู้ทั่วไปในต้นปี 1990 และในเวลานั้นก็ได้รับปัญญาคือchownสิ่งที่เจ้าของbinเป็นผู้ใช้ superuser เสียบรูนี้ที่ได้กลายเป็นรายการรายงานมาตรฐานในเครื่องมือตรวจสอบความปลอดภัยของ Unix และเตือน ในไลค์ของ doco การติดตั้งสำหรับ Sendmail

เท่าที่คำถามเอ็มของเดิมที่มีความกังวลความคิดนี้ไม่เคยถูกนำมาใช้ใน Debian ซึ่งจะเข้ามาในปีที่ดำรงอยู่หลังจากที่มันถูกที่รู้จักกันเป็นความคิดที่ดีในโลกที่ใช้ระบบปฏิบัติการยูนิกซ์ซึ่งแน่นอนรู้ว่ามันจะเป็นความคิดที่ไม่ดีก่อนที่ลินุกซ์ตัวเองถูกคิดค้น ระบบปฏิบัติการ BSD ที่มีประวัติไม่กลับยืดเข้าไปในปี 1980 มีความยาวตั้งแต่ทำไปด้วยความเป็นเจ้าของที่แท้จริง แต่กระนั้นยังคงมีบัญชีผู้ใช้ในฐานข้อมูลบัญชี FreeBSD ที่แปลงแล้วbin: binความเป็นเจ้าของเป็นroot: wheelความเป็นเจ้าของย้อนกลับไปในปี 1998ตัวอย่างเช่น

อ่านเพิ่มเติม


1
ฉันเห็นไฟล์ทุกวันนี้เป็นของbinผู้ใช้และกลุ่มบนระบบ AIX เป็นไปได้ว่า IBM ใช้มันด้วยเหตุผล หนึ่ง AIX javaไฟล์เซ็ตที่อยู่ในใจคือ ฉันจะต้องกระโดดบนระบบ AIX ที่ทำงานเพื่อตรวจสอบเพิ่มเติม
Peschke

ยังคงมี bin จำนวนมาก: ไฟล์ที่เป็นเจ้าของถังขยะบนระบบ AIX ในปัจจุบัน ศูนย์ IBM AIX ความรู้ 7.2ในการรักษาความปลอดภัย - การรักษาความปลอดภัยระบบฐานปฏิบัติการ - ผู้ใช้กลุ่มและส่วนรหัสผ่านที่มีหน้าที่เชื่อมโยงอธิบายวัตถุประสงค์ของการต่างๆ "ระบบบัญชีผู้ใช้พิเศษ" binรวมทั้ง
Jeff Schaller

จากลิงก์ก่อนหน้าbinนี้ไม่ใช่หนึ่งในID ผู้ใช้เริ่มต้นทั่วไปที่คุณอาจลบได้ นอกจากนี้: binรายการรหัสผ่านของคือ:bin:!:2:2::/bin:
Jeff Schaller

-8

มีการใช้งาน 2 กรณีที่ฉันใช้ bin สำหรับปี 2018 1: ไฟล์ที่เรียกทำงานได้ - ส่วนใหญ่ใช้สำหรับไฟล์. exe ด้านเว็บเซิร์ฟเวอร์ที่ใช้ในการทำงานที่สมบูรณ์ และ 2: บันทึก - บางครั้งฉันใส่ไฟล์. log หรือ. dat ลงในโฟลเดอร์ bin


3
คุณกำลังพูดถึง/binไดเรกทอรีหรือไม่ หรือผู้ใช้ถังขยะ?
Sparhawk

6
คุณอยู่ในระบบ Unix หรือไม่? คุณกำลังพูดถึง.exeไฟล์
user2357112 รองรับ Monica

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