Untuk apa pengguna bin?

27

Seperti yang saya tulis di /unix//a/484626/5132 ini layak untuk Tanya Jawab sendiri.

Di sistem operasi Linux ...

% getw passwd bin
bin: x: 2: 2: bin: / bin: / usr / sbin / nologin
%
... dan di FreeBSD ...

% getw passwd bin
bin: *: 3: 7: Perintah dan Sumber Binari: /: / usr / sbin / nologin
%
... dan di OpenBSD ...

$ getent passwd bin
bin: *: 3: 7: Perintah dan Sumber Binari: /: / sbin / nologin
$
... orang masih dapat menemukan binakun hari ini. Tapi itu cukup tidak berdokumen. The Linux Standard Base versi 5 mengatakan hanya ...

Catatan: binID Pengguna / ID Grup disertakan untuk kompatibilitas dengan aplikasi lawas. Aplikasi baru seharusnya tidak lagi menggunakan binID Pengguna / ID Grup.
... tanpa menjelaskan sifat mekanisme kompatibilitas. Seperti Joey Hess memasukkannya kembali pada tahun 2001 :

bin:

BANTUAN : Tidak ada file di sistem saya yang dimiliki oleh pengguna atau grup bin. Apa bagusnya mereka? Secara historis mereka mungkin pemilik binari /bin? Itu tidak disebutkan dalam FHS, kebijakan Debian, atau changelog dari base-passwd atau file-base.

Pertanyaan M. Hess tetap tidak terjawab dalam dokumen Debian untuk paket base-passwd hingga hari ini , 17 tahun kemudian.

Jadi untuk apa binakun itu?

JdeBP
sumber
Pertanyaan terkait adalah unix.stackexchange.com/questions/244989 .
JdeBP

Jawaban:

34

bin belum benar untuk apa pun selama seumur hidup Linux.

Seperti run-level dan initpemijahan gettykarena catatan /etc/inittab, binakun itu usang di dunia Unix sebelum Linux bahkan diciptakan. Itu adalah ide dari tahun 1980-an yang rusak oleh penemuan dan adopsi NFS (Network File System) dan nobodypenggunanya. Kehadirannya yang terus-menerus dalam basis data akun pengguna pada akhir 2010-an ketika orang-orang di dunia komersial Unix secara aktif menghentikan penggunaannya pada 1990-an merupakan bukti inersia.

Idenya adalah bahwa binpengguna memiliki berbagai direktori seperti /bindan /usr/bin(dan memang beberapa yang lain disebutkan di /unix//a/448799/5132 seperti /usr/mbindan /usr/5bin) dan non-set-UID / non- set-GID file di dalamnya. Itu juga memiliki file dan direktori dokumen, seperti halaman manual.

(Dalam kasus yang lebih ekstrem pada beberapa Unites, ia bahkan memiliki /dan /etc, meskipun yang terakhir adalah kesalahan yang diakui dalam pembuatan citra sistem operasi SunOS. Yang pertama hanya dikepalai.)

Dengan demikian izin untuk membuat pembaruan perangkat lunak, berjalan sebagai pengguna bin, bukan izin selimut, berjalan sebagai pengguna super, untuk melakukan tindakan apa pun terhadap sistem. Pembaruan perangkat lunak tidak dapat membaca / menulis file pengguna pribadi, mengakses kotak surat, dan sebagainya; yang memperbarui perangkat lunak sebagai superuser tentu saja bisa.

Beberapa entri akun khusus lainnya dalam /etc/passwdfile Anda harus memiliki kata sandi. Ini adalah rekening administratif - bin, daemon, sys, uucp, lp, dan adm. [...] Alasan utama untuk keberadaan akun ini adalah kepemilikan perintah, skrip, file, dan perangkat yang aman. Dan beberapa administrator memasang kata sandi untuk akun ini dan benar-benar menggunakannya. [...] binAkun bebas kata sandi sangat berguna untuk pemecah sistem.
- Rebecca Thomas dan Rik Farrow (1989). UNIX Administrasi Panduan untuk Sistem V . Prentice Hall. ISBN 9780139428890. hlm. 452.

NFS ditemukan pada awal 1980-an, dan mematahkan ide ini sepenuhnya.

Itu sudah di tanah yang goyah, sebagaimana kutipan yang disinggung sebelumnya menyinggung. Ini karena kemampuan untuk memperbarui file gambar program untuk utilitas dasar yang dijalankan superuser sebagai hal yang biasa, seperti /bin/lsmisalnya, adalah vektor langsung untuk mendapatkan hak pengguna superuser, dan pembagian akses dalam menggunakan binakun hanya dicegah secara tidak sengaja memodifikasi direktori yang salah alih-alih mencegah malefactor mendapatkan akses pengguna super.

Munculnya NFS menyoroti ini. Meskipun NFS memiliki mekanisme untuk memetakan ulang akun superuser ke akun pengguna non-sistem biasa, NFS tidak memiliki yang sama untuk akun non-root-like bin. Jadi jika seseorang bisa mendapatkan binakses pada klien NFS itu memberi mereka binakses ke file sistem operasi pada server NFS. Memang, itu memungkinkan pengguna super pada klien NFS, yang sebaliknya akan dipetakan kembali ke pengguna non-sistem biasa di server, untuk mendapatkan akses pemilik ke file sistem operasi dan direktori.

Ini adalah pengetahuan umum pada awal 1990-an, dan pada saat itu menerima kebijaksanaan adalah untuk chownhal-hal yang dimiliki oleh binyang dimiliki oleh pengguna super, untuk memasang lubang ini yang sudah menjadi item pelaporan standar dalam alat audit keamanan Unix dan diperingatkan di suka dari dokumen instalasi untuk Sendmail.

Sejauh menyangkut pertanyaan M. Hess, ide ini tidak pernah diadopsi pada Debian, yang baru muncul bertahun-tahun setelah dikenal sebagai ide buruk di dunia Unix, yang memang tahu itu adalah ide yang buruk sebelum Linux sendiri ditemukan. Sistem operasi BSD yang sejarah tidak kembali peregangan ke tahun 1980-an sudah lama dilakukan jauh dengan kepemilikan yang sebenarnya, tapi tetap mempertahankan akun pengguna dalam database akun. FreeBSD dikonversi bin: binkepemilikan menjadi root: wheelkepemilikan kembali pada tahun 1998 , misalnya.

Bacaan lebih lanjut

JdeBP
sumber
1
Saya telah melihat file hari ini dimiliki oleh binpengguna dan grup di sistem AIX. Ada kemungkinan bahwa IBM menggunakannya karena suatu alasan. Satu file AIX yang terlintas dalam pikiran adalah java. Saya harus menggunakan sistem AIX di tempat kerja untuk memverifikasi lebih lanjut.
Peschke
Masih ada sejumlah besar bin: file milik bin pada sistem AIX hari ini. The IBM Knowledge Center untuk AIX 7.2 , di Keamanan - Mengamankan sistem operasi dasar - Pengguna, kelompok, dan password bagian memiliki dikaitkan halaman yang menjelaskan tujuan dari berbagai "Sistem account pengguna khusus", termasuk bin.
Jeff Schaller
Dari link sebelumnya, binadalah bukan salah satu default user umum ID yang Anda mungkin bisa menghapus . Juga: bin's entri kata sandi adalah:bin:!:2:2::/bin:
Jeff Schaller
-8

Ada 2 penggunaan case yang saya gunakan bin untuk 2018. 1: executable's - terutama untuk file .exe sisi server web yang digunakan untuk menyelesaikan fungsi. Dan 2: log - terkadang saya menaruh file .log atau .dat saya di folder bin saya.

jehov
sumber
3
Apakah Anda berbicara tentang /bindirektori? Atau pengguna bin?
Sparhawk
6
Apakah Anda bahkan menggunakan Unix? Anda sedang berbicara tentang .exefile.
user2357112 mendukung Monica
5
Dan mengapa Anda meletakkan file konfigurasi atau file dalam direktori "bin"?
Lightness Races with Monica