Tại sao quản trị viên chính UID 501?


11

Tôi hiểu người dùng * Quản trị viên chính được đưa ra một ID người dùng của 501và người sử dụng tiếp theo có được con số gia tăng ( 502, 503, ...). Nhưng tại sao 501? Điều gì đặc biệt 50x, lý do lịch sử / kỹ thuật cho sự lựa chọn này là gì?

* Tôi bắt đầu xem xét vấn đề này khi tôi tò mò về lý do tại sao ổ cứng ngoài của tôi có tất cả các tệp bị hỏng bên trong .Trashes/501. Tìm kiếm của tôi đưa tôi đến kết luận 501là ID người dùng cho quản trị viên chính trong các hệ thống * nix (tôi đang dùng macOS), nhưng không hiểu tại sao .


7
Tôi nghĩ UID của quản trị viên chính là 0!
Jeff Schaller

Câu trả lời:


21

Nhiều hệ thống Unix bắt đầu phân phát UID cho người dùng ở một số cụ thể. Solaris sẽ cung cấp cho người dùng mục đích chung đầu tiên UID 100, trên OpenBSD là 1000 và trên macOS, có vẻ như UID 501 sẽ là UID cho người dùng tương tác được tạo đầu tiên, cũng có khả năng là người dùng quản trị viên macOS (không giống với là người dùng root).

Các tài khoản có số thấp hơn là tài khoản người dùng hệ thống cho daemon, v.v ... Điều này giúp dễ dàng phân biệt tài khoản "người" tương tác với tài khoản dịch vụ hệ thống. Điều này cũng có thể làm cho việc quản lý người dùng, xác thực, vv dễ dàng hơn trong các phần mềm khác nhau. YP / NIS , một hệ thống hơi lỗi thời để giữ tài khoản người dùng (và thông tin khác) trên máy chủ trung tâm mà không phải tạo người dùng cục bộ trên nhiều máy khách, ví dụ, có MINUIDMAXUIDcài đặt phạm vi tài khoản người dùng cần xử lý.

Trên một số Unices, một loạt các tài khoản dịch vụ hệ thống có thể được phân bổ cho phần mềm của bên thứ ba, chẳng hạn như UID 50 đến 999 trên FreeBSD hoặc 500 đến 999 trên OpenBSD.

Tất cả các phạm vi này được lựa chọn bởi các nhà sản xuất và bảo trì của các Unice riêng lẻ theo nhu cầu dự kiến ​​của hệ điều hành của họ. Tiêu chuẩn POSIX không nói gì về những điều này. UID phân bổ thấp nhất và cao nhất (và GID) thường được cấu hình bởi quản trị viên cục bộ (xem adduserhướng dẫn của bạn ).

Hầu hết các unices dành UID 0 cho root, các siêu người dùng, và chuyển nhượng các UID cao nhất có thể (hoặc ít nhất là một số giá trị cao) cho người sử dụng nobody(Solaris sử dụng UID 60001, OpenBSD sử dụng 32768, nhưng UID có thể nhiều lớn hơn).

(Xem bình luận về UID 0 luôn luôn root(hoặc không), đó là một sự lạc quan nhẹ từ chủ đề này)


Cập nhật: Dự án OpenBSD gần đây đã từ chối ý tưởng ngẫu nhiên phân bổ UID / GID.


Cũng lưu ý rằng đây chỉ là những ĐIỀU KIỆN. Trong các hệ thống giống như Unix và Unix, vốn dĩ không có gì kỳ diệu về một UID. Root có thể được tùy ý cung cấp UID là 65535 và người dùng tương tác đầu tiên có thể được chỉ định là UID 0.
Doug R.

@DougR. Có thể, nhưng nó hoàn toàn có khả năng phá vỡ một số phần mềm hiện có. POSIX có xu hướng nói rằng một quy trình cần "đặc quyền phù hợp", chứ không phải người dùng . Xem thêm định nghĩa về "đặc quyền phù hợp" (trong đó đề cập đến UID 0 là "siêu người dùng" trên một số hệ thống): pubs.opengroup.org/onlinepub/9699919799/xrat/ trộm
Kusalananda

Đặc quyền đối với người dùng là điểm nhận xét của tôi, ngay cả khi tôi không nêu rõ như bạn vừa làm. Phần mềm duy nhất nên phá vỡ là phần mềm dựa trên UID của nó nằm trong một phạm vi cụ thể. Không chắc chắn những gì, nếu bất cứ điều gì, làm điều đó.
Doug R.


8

Đối với các bản phân phối tuân theo LSB , họ phân bổ UID và GID 0-99 tĩnh. UID 100-499 được phân bổ động, nhưng chúng cũng dành cho hệ thống và không dành cho tài khoản đăng nhập.

Ví dụ, in daemon như cupscó xu hướng được phân bổ tài khoản người dùng của riêng họ. Vì vậy, nếu một lỗ hổng trong daemon bị khai thác, daemon không chạy như rootvới toàn bộ sức mạnh trên hệ thống. (Nó cũng không nhất thiết phải có khả năng can thiệp vào các daemon khác).

Trên các bản phân phối Linux gần đây hơn, phạm vi hệ thống được mở rộng lên tới 999.

Điều này sẽ để lại UID 500 trở lên (hoặc 1000 trở lên) cho các tài khoản đăng nhập.

Debian cũng có phân bổ tĩnh choUIDGID 100, mặc dù tôi không thể tưởng tượng rằng độ lệch gây ra bất kỳ vấn đề cụ thể nào.

Thật dễ dàng để tưởng tượng một hệ thống khác có độ lệch từng bước, dự trữ thêm UID 500. (Tôi cho rằng điều này vẫn tuân thủ; tôi không thể tưởng tượng tất cả các Linux đã vi phạm LSB từ lâu, mà không nó đang được cập nhật).

Tài khoản đăng nhập đầu tiên không phải là tài khoản quản trị viên hay tài khoản quản trị viên chính. Các hệ thống không nhất thiết phải sử dụng sudo(đặc biệt nếu chúng có trước ngày đó :). Bạn có thể nói "tài khoản quản trị viên chính" nằm roottrong trường hợp đó. Ngoài ra, các bản phân phối Linux * * chung và đa mục đích không nhận ra một "tài khoản quản trị chính" cụ thể.


Không chắc chắn lý do tại sao bạn nói về Linux, khi OP hỏi cụ thể về Mac OS X.
CVn

> đã chỉnh sửa 7 giờ trước> trong các hệ thống * nix
sourcejedi

4
On more recent Linux distributions, the system range is extended up to 999.- Tôi luôn có id người dùng từ 1000 trở lên và tôi bắt đầu sử dụng Linux vào năm 2005. Tôi sẽ không gọi nó là "gần đây".
Mirek Długosz

Điều gì khiến bạn nghĩ 100 là tĩnh trên Debian? Nhìn vào một vài hệ thống của tôi, nó trông có vẻ năng động đối với tôi (trên một hệ thống là systemd-timesync, trên hệ thống khác là sshd).
cắm vào

Khi câu hỏi được chỉnh sửa 12:22 UTC, OP đã thêm thẻ [osx] cùng với việc đề cập đến OS X trong phần thân câu hỏi. Câu trả lời của bạn đã được đăng mười phút sau và dường như không tính đến điều này.
một CVn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.