Яка різниця між "adduser" і "useradd"?


61

Цікаво: Чому на Debian Linux існують ці дві команди з дуже схожими назвами та функціональністю? Це завжди мене бентежить.

  • Хтось із них вищий за іншого?
  • Чому вони не злиті в одне?
  • Чи є якась істотна різниця між ними?
  • Який я повинен використовувати? Або це залежить від випадку використання?

1
Зауважте, що useraddвін доступний на всій Unix-подібній платформі; adduserє лише для Debian та його похідних.
Франклін Ю

Відповіді:


68

useraddє рідним двійковим файлом, складеним із системою. Але, adduserце сценарій perl, який використовує useraddбінарний в бек-енді.

adduserє більш зручним для користувача та інтерактивним, ніж його бек-енд useradd. Немає різниці в наданих функціях.


1
adduser доступний не у всіх дистрибутивах (наприклад, на основі suse), а в деяких інших - це лише посилання на useradd (на основі redhat).
ychaouche

12

Основна перевага аддусера перед useradd - це робота з користувачами системного рівня. За допомогою adduser обліковий запис користувачів на рівні системи при створенні додає в домашній каталог користувачеві користувач системи, де useradd не відбувається автоматично. Якщо ви читаєте людину, вони по суті такі самі, за винятком користувачів системи та пов'язаних з ними домашніх каталогів, є автоматичними. adduser створює каталог / home / user автоматично для користувачів системного рівня, де немає положення у useradd , за винятком випадків, коли вказано параметр -m . Інші показання, з якими я стикався загалом, стверджують, що UID та GUID призначаються прийнятими відповідними стандартами Debian у adduser.


1
adduser має варіант --no-create-home.
ychaouche

1

У декількох екземплярах Redhat я перевірив (4,9 з 2011 і 6,9 з 2017), що adduser - це просто псевдонім для useradd, а не сценарій Perl. Ось це в 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

Наскільки я пам’ятаю, що Useradd є «правильною» програмою, це таке: додавання користувача - це лише одна операція в спектрі CRUD. Вам також потрібні операції "модифікувати" та "видалити" ("читання", імовірно, охоплюється переглядом / etc / passwd). І так, програми мають ім’я user * (useradd, usermod та userdel відповідно). Я припускаю, що альтернативна умова іменування користувача (adduser, moduser і deluser - таких не існує) також може працювати. Але це було б трохи незручніше (чомусь я не можу чітко висловитись на даний момент :)


не вдається знайти moduserна Debian, але deluser, безумовно, є.
ychaouche

0

У межах raspian (мені потрібно перевірити інші ОС), "adduser USER" запускає діалогове вікно (TUI), а "useradd USER" НЕ.

Мабуть, за допомогою adduser, як тільки з'явиться діалогове вікно, повна команда 'useradd' вже виконується. Навіть якщо ви CTRL-C, ваш користувач там.

Як і в нових системах, вони створюють "особисті" групи, щоб видалити новоствореного користувача, вам потрібно:

  • vi / etc / passwd
  • vi / тощо / група
  • rm -rf / home / USER

Я припускаю, що оскільки аддусер "використовує" useradd, решта - це метадані про користувача. Таким чином, технічно немає змін у "skel", "масках файлів" тощо), тобто за замовчуванням у вашій системі.

З іншого боку, оскільки useradd не приносить ніякого TUI, він може бути кориснішим при написанні сценаріїв.

Якщо чесно, я перевірив це лише на Rasbian, тому що це було причиною того, що я перейшов до цього питання.

Я можу собі уявити, що інші ОС можуть реалізувати іншу версію аддудера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.