Sự khác biệt giữa adduser và useradd là gì?


441

Sự khác biệt giữa các lệnh adduseruseraddtrên Ubuntu là gì?


17
Câu hỏi tương tự về Siêu người dùngLỗi máy chủ
ændrük

5
và cũng trên Unix stackexchange (câu trả lời khá chi tiết)
xealits

và nó là và vẫn là một câu hỏi tốt, hợp lệ. Vấn đề không phải là mọi người hỏi nó trong bối cảnh tương ứng, đó là câu hỏi này cần phải được hỏi ở tất cả.
foo

Câu trả lời:


387

useraddlà nhị phân nguyên gốc được biên dịch với hệ thống. Nhưng, adduserlà một tập lệnh perl sử dụng useraddnhị phân trong back-end.

adduserthân thiện với người dùng và tương tác hơn so với back-end của nó useradd. Không có sự khác biệt trong các tính năng được cung cấp.

Nguồn: Sự khác biệt giữa người dùng cộng đồng và người dùng khác là gì?


59
thêm lệnh useradd sẽ không tạo thư mục '/ home / username' nhưng lệnh adduser sẽ
Deepen

65
useradd với -mtùy chọn sẽ tạo thư mục chính.
richsinn

10
Ý nghĩa không phải là thú vị, ngữ nghĩa là. Like thân thiện adduser(8)hơn và tạo và thiết lập người dùng theo mặc định theo cách bạn mong đợi. Và useradd(8)chỉ làm những gì bạn yêu cầu, vì vậy bạn muốn có một thư mục chính được tạo, bạn phải nói với nó để tạo nó cho bạn.
Anders

23
Tôi phải google cái này mỗi lần ... Làm thế nào tôi có thể giúp mình nhớ cái nào là cái nào?
Quentin Skousen

11
@kkhugs đối với tôi "adduser" cảm thấy trực quan nhất bởi vì đó là một lệnh nghe giống như tiếng Anh, trong khi cái kia thì không, về mặt ngữ nghĩa. Nếu bạn nhớ nó là "trực quan nhất" của cả hai, bạn cũng có thể cố gắng nhớ nó là ưu tiên / dễ dàng hơn.
pzkpfw

146

Luôn sử dụngadduser (và deluserkhi xóa người dùng) khi bạn đang tạo người dùng mới từ dòng lệnh. (Nếu bạn đang viết một tập lệnh, đặc biệt là nếu bạn nhắm đến tính di động, bạn có thể muốn sử dụng các tiện ích lowlevel thay thế - và adduser/ delusercó thể không có sẵn trên tất cả các bản phát hành, ví dụ như trên SuSE.)

Các useradd, userdelusermodlệnh là tiện ích lowlevel mà ở đó vì những lý do lịch sử, trong khi adduser/deluserĐỗ The Right Thing ™. (Tôi nhớ sử dụng cái nào bằng cách suy nghĩ user*xuất hiện adduser/delusertrong bảng chữ cái và do đó "tệ hơn".)

Theo các trang tương ứng (trên Ubuntu 12.04 Precolin Pangolin, tức là hệ thống phái sinh Debian).

Manpage cho adduserbiết:

(Nhấn mạnh thêm.)

adduseraddgroupthêm người dùng và nhóm vào hệ thống theo các tùy chọn dòng lệnh và thông tin cấu hình trong /etc/adduser.conf. Họ là phía trước thân thiện hơn kết thúc các công cụ ở mức độ thấp như useradd, groupaddusermodcác chương trình , theo mặc định lựa chọn chính sách Debian UID tuân thủ QTI và giá trị GID, tạo ra một thư mục home với cấu hình xương, chạy một kịch bản tùy chỉnh, và các tính năng khác. adduseraddgroupcó thể chạy ở một trong năm chế độ:

Manpage cho useraddbiết:

useraddlà một tiện ích cấp thấp để thêm người dùng. Trên Debian, quản trị viên thường nên sử dụng adduser(8)thay thế.

Xem thêm: Sự khác biệt giữa người dùng cộng đồng và người dùng khác là gì? (trên SuperUser)


6
Tôi không bao giờ có thể nhớ cái nào, vì vậy đây là bản ghi nhớ ngu ngốc của tôi nếu nó giúp bất cứ ai :) "người dùng" vần với "kẻ thua cuộc", và "kẻ thua cuộc" đến sau cùng. Như vậy: người nghiện, người dùng.
Mads Skjern

26
Tôi thực sự không đồng ý với " Luôn luôn là người dùngadduser ": Đối với các tập lệnh tự động tôi thích useraddvì nó luôn ở đó, không tương tác và không cụ thể .
Wernight

2
Tôi đã thử addusertrên openSUSE và không có ở đó. (13.2)
cst1992

1
@ cst1992 Bạn nói đúng, tôi đã chỉnh sửa câu trả lời để phản ánh điều này. Thật kỳ lạ, khi tôi thử locate adduserhệ thống SuSE 11 tại nơi làm việc, tôi thấy rằng có một addusertrang web, nhưng không có nhị phân (và không phải là một delusertrang web cũng như một lệnh).
zrajm

2
Trên Mũ Đỏ/usr/sbin/adduser -> useradd
Levon

17

adduser: thêm người dùng với hồ sơ và thông tin đầy đủ (đạt, hạn ngạch, cho phép, v.v.)

useradd: chỉ thêm người dùng với tên của anh ấy (nếu bạn muốn thêm người dùng tạm thời chỉ có tên, thông tin khác không bắt buộc)


1
+1 và Chào mừng! Tôi đã bỏ phiếu cho người không có khả năng giải thích việc bỏ phiếu trước đó của họ. Giữ nó lên! Những lập trình viên giỏi luôn vươn lên dẫn đầu - (và không bỏ phiếu mà không có lời giải thích). :)
Ricalsin

11

Một vài sự khác biệt khác, dẫn đến các kịch bản cụ thể mà người dùng có thể thích hợp hơn.

  1. Trong một số bản phát hành mới hơn, bao gồm Ubuntu 14.4, adduser sẽ nhắc thông tin như mật khẩu và "gecos" (dữ liệu cho lệnh ngón tay). Điều này có nghĩa là nó có thể ít phù hợp hơn để gọi từ một kịch bản (tín dụng: đã được đề cập trong một nhận xét của Wernight).

    Các lời nhắc có thể được loại bỏ bằng cách chuyển các đối số null:

    adduser --disabled-password --gecos "" USER
    
  2. useraddcho phép bạn vượt qua nhiều nhóm bổ sung để thêm người dùng bằng phương tiện -Gtùy chọn. adduserdường như yêu cầu bạn gọi lệnh một lần cho mỗi nhóm để thêm.


Không hoạt động trên Ubuntu 16.04.
answerSeeker

8

adduserthân thiện hơn ở chỗ nó thiết lập các thư mục nhà của tài khoản và các cài đặt khác (ví dụ: tự động tải các thống kê và thông báo hệ thống khi đăng nhập), trong khi useraddchỉ tạo người dùng.


2
Sai lầm. useradd có thể tạo thư mục chính với -m, đặt mật khẩu với -p, tạo tệp bộ xương với -k và thêm người dùng vào nhóm với -G.
ychaouche

5

Sự khác biệt cơ bản là "adduser" sẽ tạo thư mục chính và thêm tệp bộ xương vào thư mục đó trong đó "useradd" sẽ không tạo bất kỳ thư mục chính & tệp bộ xương nào!

người dùng thử

Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

người dùng thử1:

# ll /home/
total 20
drwxr-xr-x  5 root    root    4096 Oct 26 15:52 ./
drwxr-xr-x 22 root    root    4096 Oct 26 15:47 ../
drwx------  8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x  3 root    root    4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x  2 try     try     4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#


0

Tôi cũng sẽ chỉ ra rằng adduserkhông phải lúc nào cũng có -Mtùy chọn và cũng không tôn trọng --systemcờ có ghi cụ thể :

Lưu ý rằng useradd sẽ không tạo thư mục chính cho người dùng như vậy, 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 được tạo.

Nếu bạn đang cố gắng tạo người dùng hệ thống mà không có thư mục chính thì hãy sử dụng useradd --system -M.

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.