Sự khác biệt giữa người dùng bình thường và người dùng hệ thống là gì?


124

Một số tài liệu tôi sắp thực hiện có một công tắc boolean về việc người dùng là người dùng 'hệ thống' hay người dùng 'bình thường' (mặc định là 'bình thường').

Sự khác biệt giữa hai chế độ của tàu người dùng là gì? Tôi không cần tìm hiểu người dùng là gì hoặc tại sao bạn cần họ (thậm chí là 'giả'), nhưng sự khác biệt đặc biệt này không trực quan với tôi.

Câu trả lời:


85

Đó không phải là một sự khác biệt kỹ thuật mà là một quyết định của tổ chức. Ví dụ: hiển thị người dùng bình thường trong hộp thoại đăng nhập (để bạn có thể nhấp vào họ thay vì phải nhập tên người dùng) nhưng sẽ không hiển thị tài khoản hệ thống (các UID mà trình nền và các quy trình tự động khác chạy ở đó) .

Do đó, một đường viền được xác định hoặc đúng hơn là hai phạm vi cho UID cho hai nhóm. Trong openSUSE, tệp /etc/login.defschứa các dòng này:

# Giá trị tối thiểu / tối đa cho lựa chọn uid tự động trong useradd
#
Bao gồm # SYS_UID_MIN đến SYS_UID_MAX là phạm vi cho
# UID cho các tài khoản hệ thống và quản trị được phân bổ động.
Bao gồm # UID_MIN đến UID_MAX là phạm vi UID động
# tài khoản người dùng được phân bổ.
#
UID_MIN 1000
UID_MAX 60000
# Tài khoản hệ thống
SYS_UID_MIN 100
SYS_UID_MAX 499

# Giá trị tối thiểu / tối đa cho lựa chọn gid tự động trong groupadd
#
Bao gồm # SYS_GID_MIN đến SYS_GID_MAX là phạm vi cho
# GID cho các nhóm hệ thống và hành chính được phân bổ động.
Bao gồm # GID_MIN đến GID_MAX là phạm vi GIDs động
# nhóm được phân bổ.
#
GID_MIN 1000
GID_MAX 60000
# Tài khoản hệ thống
SYS_GID_MIN 100
SYS_GID_MAX 499

3
Điều đáng chú ý là Debian và những người khác sẽ ẩn hầu hết các quy tắc hệ thống (chẳng hạn như trong quy tắc PAM điều chỉnh các lựa chọn xác thực hệ thống), điều này phân biệt dựa trên việc liệu UID có cao hơn 1000 hay ít hơn. Chọn UID của bạn một cách cẩn thận.
Dave

38

Sự khác biệt chính là mục đích của tài khoản, do đó, đây chủ yếu là một sự phân biệt hữu ích cho các quản trị viên và kiểm toán viên. Có một vài khác biệt về kỹ thuật - từ addusertài liệu:

Người dùng hệ thống sẽ được tạo mà không có thông tin cũ /etc/shadow, và số nhận dạng số của họ được chọn trong phạm vi SYS_UID_MIN- SYS_UID_MAX, được xác định trong /etc/login.defs, thay vì UID_MIN- UID_MAX(và đối tác GID của họ để tạo nhóm).

Theo như tôi có thể nói (tôi không biết Puppet), sự khác biệt từ quan điểm của Puppet là liệu nó có vượt qua -rtùy chọn này không adduser.

Để có góc nhìn rộng hơn, hãy xem Có thể "ẩn" tài khoản khỏi / etc / passwd không?


Trên CentOS: Mặc dù useradd --system foouserkhông tạo thư mục chính cho người dùng đó theo trang man của useradd(8)(có ghi: Lưu ý rằng useradd sẽ không tạo thư mục chính cho người dùng đó, bất kể cài đặt mặc định trong /etc/login.defs (CREATE_HOME) . Bạn phải chỉ định các tùy chọn -m nếu bạn muốn tạo một thư mục chính cho tài khoản hệ thống. ), Thư mục chính của người dùng mới foouserđược cung cấp là không tồn /home/foousertại /etc/passwd.
David Tonhofer

Ngoài ra, UID được chọn bằng cách đếm ngược từ SYS_UID_MAX, thường là 1000, vì vậy chúng tôi có UID 998 chẳng hạn foouser.
David Tonhofer
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.