Apa perbedaan antara "adduser" dan "useradd"?

61

Saya bertanya-tanya: Mengapa ada dua perintah di Debian Linux, dengan nama dan fungsi yang sangat mirip? Ini selalu membingungkan bagi saya.

  • Apakah ada di antara mereka yang lebih unggul dari yang lain?
  • Mengapa mereka tidak digabung menjadi satu?
  • Apakah ada perbedaan yang signifikan di antara mereka?
  • Yang mana yang harus saya gunakan? Atau apakah itu tergantung pada use case?
Petr Pudlák
sumber
1
Catatan yang useraddtersedia di semua platform mirip Unix; adduserhanya untuk Debian dan turunannya.
Franklin Yu

Jawaban:

68

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.

Apple II
sumber
1
adduser tidak tersedia di semua distro (mis. berbasis suse), dan pada beberapa yang lain itu hanya symlink ke useradd (berbasis redhat).
ychaouche
12

Keuntungan utama untuk adduser daripada useradd adalah berurusan dengan pengguna tingkat sistem. Dengan adduser , akun pengguna tingkat sistem ketika dibuat menempatkan direktori pengguna di rumah untuk pengguna sistem di mana useradd tidak secara otomatis. Jika Anda membaca pria itu pada dasarnya mereka sama kecuali untuk pengguna tingkat sistem dan direktori home terkait otomatis. adduser membuat direktori / home / user secara otomatis untuk pengguna tingkat sistem di mana tidak ada ketentuan dalam useradd , kecuali jika ditentukan oleh opsi -m . Bacaan lain yang saya temui secara umum menyatakan bahwa UID dan GUID ditugaskan oleh standar Debian konformal yang diterima dalam adduser.

pengguna517969
sumber
1
adduser memiliki opsi --no-create-home.
ychaouche
1

Dalam beberapa contoh Redhat yang saya periksa (4,9 dari 2011 dan 6,9 dari 2017), adduser hanyalah sebuah alias untuk useradd, bukan skrip Perl. Ini dia di Redhat 6.9:

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

Cara saya ingat bahwa useradd adalah program yang 'benar' adalah ini: menambahkan pengguna hanyalah satu operasi dalam spektrum CRUD. Anda juga perlu operasi 'modifikasi' dan 'hapus' ('baca' mungkin dicakup dengan melihat / etc / passwd). Maka, program-program tersebut dinamai user * (useradd, usermod dan userdel masing-masing). Saya kira konvensi penamaan pengguna * alternatif (adduser, moduser dan deluser - ini tidak ada) juga bisa berfungsi. Tapi itu akan sedikit lebih canggung (karena suatu alasan saya tidak dapat mengungkapkan dengan jelas saat ini :)

Happyblue
sumber
tidak dapat menemukan moduserdi Debian, tetapi deluserpasti ada di sana.
ychaouche
0

Di dalam raspian (saya perlu memeriksa OS lain), 'adduser USER' memulai dialog (TUI) sementara 'useradd USER' TIDAK.

Rupanya, menggunakan adduser, setelah dialog muncul, perintah 'useradd' penuh sudah dijalankan. Bahkan jika Anda CTRL-C pengguna Anda ada di sana.

Seperti dalam sistem baru mereka membuat grup "pribadi", untuk menghapus pengguna yang baru dibuat Anda perlu:

  • vi / etc / passwd
  • vi / etc / group
  • rm -rf / home / USER

Saya berasumsi bahwa karena adduser "menggunakan" useradd, sisanya adalah metadata tentang pengguna. Jadi secara teknis tidak ada perubahan dalam "skel", "file mask", atau sejenisnya, yaitu sistem Anda default.

Di sisi lain, karena useradd tidak memunculkan TUI, mungkin lebih bermanfaat dalam skrip.

Sejujurnya saya mengujinya hanya dalam rasbian, karena itulah alasan saya menginjak pertanyaan.

Saya bisa membayangkan bahwa OS lain mungkin menerapkan versi adduser yang berbeda.

mariotti
sumber