Mengapa admin utama UID 501?

11

Saya mengerti * user admin utama diberikan user ID 501dan pengguna berikutnya mendapatkan nomor tambahan ( 502, 503, ...). Tapi mengapa 501? Apa yang istimewa tentang 50x, apa alasan historis / teknis untuk pilihan ini?

* Saya mulai melihat ini ketika saya ingin tahu mengapa hard drive eksternal saya memiliki semua file yang rusak di dalamnya .Trashes/501. Pencarian saya membawa saya pada kesimpulan 501adalah ID pengguna untuk admin utama dalam sistem * nix (saya menggunakan macOS), tetapi tidak mengapa .

pengguna137369
sumber
7
Saya pikir UID admin utama adalah 0!
Jeff Schaller

Jawaban:

21

Banyak sistem Unix mulai membagikan UID kepada pengguna di beberapa nomor tertentu. Solaris akan memberikan pengguna tujuan umum pertama UID 100, pada OpenBSD 1000, dan pada macOS tampaknya adalah UID 501 yang akan menjadi UID untuk pengguna interaktif pertama yang dibuat, yang juga kemungkinan merupakan pengguna admin macOS (yang tidak sama sebagai pengguna root).

Akun dengan angka lebih rendah adalah akun pengguna sistem untuk daemon dll. Ini membuatnya lebih mudah untuk membedakan akun "manusia" interaktif dari akun layanan sistem. Ini juga dapat membuat manajemen pengguna, otentikasi, dll. Lebih mudah di berbagai perangkat lunak. YP / NIS , sistem yang agak ketinggalan jaman untuk menjaga akun pengguna (dan informasi lainnya) di server pusat tanpa harus membuat pengguna lokal di beberapa mesin klien, misalnya, memiliki MINUIDdan MAXUIDpengaturan untuk rentang akun pengguna yang harus ditangani.

Pada beberapa Unices, serangkaian akun layanan sistem dapat dialokasikan ke perangkat lunak pihak ketiga, seperti UID 50 hingga 999 pada FreeBSD atau 500 hingga 999 pada OpenBSD.

Semua rentang ini dipilih oleh pembuat dan pemelihara dari masing-masing Unit sesuai dengan kebutuhan yang diharapkan dari sistem operasi mereka. Standar POSIX tidak mengatakan apa-apa tentang hal-hal ini. UID dengan alokasi terendah dan tertinggi (dan GID) seringkali dapat dikonfigurasi oleh admin lokal (lihat addusermanual Anda ).

Sebagian besar Unites menyimpan UID 0 untuk root, pengguna super, dan memberikan UID setinggi mungkin (atau setidaknya beberapa nilai tinggi) kepada pengguna nobody(Solaris menggunakan UID 60001, OpenBSD menggunakan 32768, tetapi UID mungkin jauh lebih besar dari itu).

(Lihat komentar tentang UID 0 selalu menjadi root(atau tidak), yang merupakan sedikit penyimpangan dari topik ini)


Pembaruan: Proyek OpenBSD baru-baru ini menolak gagasan pengacakan alokasi UID / GID.

Kusalananda
sumber
Perhatikan juga bahwa ini hanyalah KONVENSI. Dalam sistem seperti Unix dan Unix, tidak ada yang pada dasarnya magis tentang UID. Root dapat secara sewenang-wenang diberi UID 65535 dan pengguna interaktif pertama dapat ditetapkan sebagai UID 0.
Doug R.
@DougR. Mungkin saja, tetapi kemungkinan besar akan merusak sejumlah perangkat lunak yang ada. POSIX cenderung mengatakan suatu proses membutuhkan "hak istimewa yang sesuai", bukan pengguna . Lihat juga definisi "hak istimewa yang sesuai" (yang menyebutkan UID 0 sebagai "pengguna super" pada beberapa sistem): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Kusalananda
Hak istimewa atas pengguna adalah poin dari komentar saya, bahkan jika saya tidak menyatakannya sejelas yang Anda lakukan. Satu-satunya perangkat lunak yang harus rusak adalah perangkat lunak yang bergantung pada UID-nya berada dalam rentang tertentu. Tidak yakin apa, jika ada, yang melakukannya.
Doug R.
@DougR. Terkait: superuser.com/questions/626843/…
Kusalananda
8

Untuk distribusi yang mengikuti LSB , mereka mengalokasikan UID dan GID 0-99 secara statis. UID 100-499 dialokasikan secara dinamis, tetapi ini juga untuk sistem, dan bukan untuk akun login.

Misalnya, mencetak daemon seperti cupscenderung dialokasikan ke akun pengguna mereka sendiri. Jadi jika kerentanan dalam daemon dieksploitasi, daemon tidak berjalan seperti rootdengan kekuatan penuh atas sistem. (Juga tidak memiliki kekuatan untuk mengganggu daemon lain).

Pada distribusi Linux yang lebih baru, jangkauan sistem diperpanjang hingga 999.

Ini akan membuat UID 500 ke atas (atau 1000 ke atas) untuk akun login.

Debian juga memiliki alokasi statis untukUIDGID 100, meskipun saya tidak bisa membayangkan penyimpangan itu menyebabkan masalah tertentu.

Sangat mudah untuk membayangkan sistem lain dengan deviasi satu per satu, yang juga cadangan UID 500. (Saya menganggap ini masih sesuai; Saya tidak bisa membayangkan semua Linux telah melanggar LSB selama ini, tanpa sedang diperbarui).

Akun login pertama tidak harus berupa akun admin maupun akun admin utama. Sistem tidak perlu menggunakan sudo(terutama jika mereka pra-date :). Anda mungkin mengatakan "akun admin primer" rootdalam hal itu. Selain itu, * nix dan distribusi Linux serba guna tidak mengenali "akun admin primer" tertentu.

sourcejedi
sumber
Tidak yakin mengapa Anda berbicara tentang Linux, ketika OP secara khusus bertanya tentang Mac OS X.
a CVn
> diedit 7 jam yang lalu> dalam * nix systems
sourcejedi
4
On more recent Linux distributions, the system range is extended up to 999.- Saya selalu memiliki id pengguna dari 1000 ke atas dan saya mulai menggunakan Linux pada tahun 2005. Saya tidak akan menyebutnya "baru-baru ini".
Mirek Długosz
Apa yang membuat Anda berpikir 100 statis di Debian? Melihat beberapa sistem saya itu terlihat dinamis bagi saya (yang satu itu systemd-timesync, yang lain itu sshd).
plugwash
Ketika pertanyaan diedit 12:22 UTC OP menambahkan tag [osx] bersama dengan menyebutkan OS X di badan pertanyaan. Jawaban Anda diposting sepuluh menit kemudian dan tampaknya tidak mempertimbangkannya sama sekali.
CVn