Apa perbedaan antara adduser dan useradd?

441

Apa perbedaan antara perintah adduserdan useradddi Ubuntu?

Joe Cabezas
sumber
17
Pertanyaan yang sama pada Pengguna Super dan pada Server Fault
ændrük
5
dan juga pada Unix stackexchange (jawaban yang cukup terperinci)
xealits
dan itu adalah dan tetap menjadi pertanyaan yang baik dan valid. Masalahnya bukan orang-orang yang menanyakannya dalam konteks masing-masing, tetapi pertanyaan ini perlu ditanyakan sama sekali.
foo

Jawaban:

387

useraddadalah biner asli yang dikompilasi dengan sistem. Tapi, adduseradalah skrip perl yang menggunakan useraddbiner di back-end.

adduserlebih ramah pengguna dan interaktif daripada back-end useradd. Tidak ada perbedaan dalam fitur yang disediakan.

Sumber: Apa perbedaan antara "adduser" dan "useradd"?

Radu Rădeanu
sumber
59
tambahkan perintah useradd tidak akan membuat direktori '/ home / username' tetapi perintah adduser akan
Memperdalam
65
useradd dengan -mopsi akan membuat direktori home.
richsinn
10
Penindasannya tidak semenarik itu, semantiknya begitu. Suka adduser(8)lebih ramah pengguna dan membuat serta mengatur pengguna secara default seperti yang Anda harapkan. Dan useradd(8)hanya lakukan apa yang Anda minta, jadi Anda ingin direktori home dibuat, Anda harus mengatakannya untuk membuatnya untuk Anda.
Anders
23
Saya harus google ini setiap kali ... Bagaimana saya bisa mengingat yang mana?
Quentin Skousen
11
@kkhugs bagiku "adduser" terasa paling intuitif karena ini perintah yang terdengar seperti bahasa Inggris, sementara yang lain tidak, secara semantik. Jika Anda mengingatnya sebagai "yang paling intuitif" dari keduanya, Anda juga dapat mencoba mengingatnya sebagai yang paling disukai / lebih mudah.
pzkpfw
146

Selalu gunakanadduser (dan delusersaat menghapus pengguna) saat Anda membuat pengguna baru dari baris perintah. (Jika Anda menulis skrip, terutama jika Anda bertujuan untuk portabilitas, Anda mungkin ingin menggunakan utilitas tingkat rendah sebagai gantinya - dan adduser/ delusermungkin tidak tersedia di semua distro, misalnya di SuSE.)

The useradd, userdeldan usermodperintah adalah utilitas tingkat rendah yang ada karena alasan historis, sedangkan adduser/deluserDo The Right Thing ™. (Saya ingat yang harus digunakan dengan berpikir yang user*muncul setelah adduser/deluserdalam alfabet, dan karena itu "lebih buruk".)

Menurut halaman manual masing-masing (pada Ubuntu 12,04 Precise Pangolin, yaitu sistem turunan Debian).

Manpage untuk addusermengatakan:

(Penekanan ditambahkan.)

adduserdan addgroupmenambahkan pengguna dan grup ke sistem sesuai dengan opsi baris perintah dan informasi konfigurasi di /etc/adduser.conf. Mereka adalah ujung depan yang ramah untuk alat tingkat rendah seperti useradd, groupadddan usermodprogram , secara default memilih nilai UID dan GID sesuai kebijakan Debian, membuat direktori home dengan konfigurasi kerangka, menjalankan skrip kustom, dan fitur lainnya. adduserdan addgroupdapat dijalankan dalam satu dari lima mode:

Manpage untuk useraddmengatakan:

useraddadalah utilitas tingkat rendah untuk menambahkan pengguna. Di Debian, administrator biasanya menggunakan adduser(8)sebagai gantinya.

Lihat juga: Apa perbedaan antara "adduser" dan "useradd"? (di SuperUser)

zrajm
sumber
6
Saya tidak pernah bisa mengingat yang mana, jadi ini adalah mnemonic bodoh saya jika itu membantu siapa pun :) "pengguna" berima dengan "pecundang", dan "pecundang" datang terakhir. Jadi: adduser, deluser.
Mads Skjern
26
Saya sebenarnya tidak setuju pada " Selalu penggunaadduser ": Untuk skrip otomatis saya lebih suka useraddkarena selalu ada, non-interaktif, dan tidak khusus distro .
Wernight
2
Saya mencoba adduseropenSUSE, dan itu tidak ada di sana (13.2)
cst1992
1
@ cst1992 Anda benar, saya sudah mengedit jawaban untuk mencerminkan ini. Anehnya, ketika saya mencoba locate addusersistem SuSE 11 di tempat kerja saya menemukan ada adduserhalaman manual, tetapi tidak ada biner (dan bukan deluserhalaman manual atau perintah).
zrajm
2
On Red Hat/usr/sbin/adduser -> useradd
Levon
17

adduser: tambahkan pengguna dengan profil dan info lengkap (lulus, kuota, izin, dll.)

useradd: tambahkan pengguna dengan namanya saja (jika Anda ingin menambahkan pengguna sementara dengan hanya nama, info lain tidak diperlukan)

mandm
sumber
1
+1 dan Selamat Datang! Saya memilih orang yang tidak mampu menjelaskan suara mereka sebelumnya. Teruskan! Pemrogram yang baik selalu naik ke atas - (dan jangan memilih tanpa penjelasan). :)
Ricalsin
11

Beberapa perbedaan lain, yang mengarah ke skenario tertentu di mana useradd mungkin lebih disukai.

  1. Di beberapa distro yang lebih baru, termasuk Ubuntu 14.4, adduser akan meminta informasi seperti kata sandi dan "gecos" (data untuk perintah jari). Ini berarti kurang cocok untuk menelepon dari skrip (kredit: sudah disebutkan dalam komentar oleh Wernight).

    Prompt dapat ditekan dengan memberikan argumen nol:

    adduser --disabled-password --gecos "" USER
    
  2. useraddmemungkinkan Anda melewati beberapa grup tambahan untuk menambahkan pengguna melalui -Gopsi. addusertampaknya mengharuskan Anda memanggil perintah satu kali untuk setiap kelompok untuk ditambahkan.

AdamS
sumber
Tidak berfungsi di ubuntu 16.04.
answerSeeker
8

adduserlebih bersahabat karena mengatur folder beranda akun dan pengaturan lainnya (mis. memuat statistik sistem dan pemberitahuan saat masuk secara otomatis), sedangkan useraddhanya menciptakan pengguna.

Paul
sumber
2
Salah. useradd dapat membuat direktori home dengan -m, mengatur kata sandi dengan -p, membuat file kerangka dengan -k, dan menambahkan pengguna ke grup dengan -G.
ychaouche
5

Perbedaan mendasar adalah "adduser" akan membuat direktori home & menambahkan file kerangka ke direktori itu di mana "useradd" tidak akan membuat direktori home & file kerangka!

adduser coba:

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

useradd try1:

# 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#
Ashish Karpe
sumber
Salah. Lihat komentar sebelumnya
ychaouche
0

Saya juga akan menunjukkan bahwa addusertidak selalu memiliki -Mopsi dan juga tidak menghormati --systembendera yang secara khusus mengatakan :

Perhatikan bahwa useradd tidak akan membuat direktori home untuk pengguna seperti itu, terlepas dari pengaturan default di /etc/login.defs (CREATE_HOME). Anda harus menentukan opsi -m jika Anda ingin direktori home untuk akun sistem dibuat.

Jika Anda mencoba membuat pengguna sistem tanpa direktori home, maka gunakan useradd --system -M.

blockloop
sumber