Що робить adduser, що useradd не робить?


71

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

Більшість відповідей по суті говорять про те, що adduserзабезпечує приємніший інтерфейс для інтерактивного додавання користувачів, але не дайте багато деталей щодо того, що відбувається при adduserзапуску, що не відповідає useradd. Тому:

  1. Що це adduserне useraddробить?
  2. Які команди мені потрібно використовувати для отримання еквівалентних результатів?

Відповіді:


79

По-перше, відповідні фрагменти чоловічої сторінки підкреслюють відмінності між двома командами та дають певну ознаку того, що відбувається. Для adduser:

adduser та addgroup додають користувачів та групи до системи відповідно до параметрів командного рядка та інформації про конфігурацію в /etc/adduser.conf. Вони дружніші передні цілі до інструментів низького рівня, таких як програми useradd, groupadd та usermod, за замовчуванням вибирають відповідні значення UID та GID політики Debian, створюють домашній каталог зі скелетною конфігурацією, запускають користувальницький сценарій та інші функції.

Тоді для useradd:

useradd - це утиліта низького рівня для додавання користувачів. У Debian адміністратори зазвичай замість цього використовують adduser (8).

Подальше дослідження adduserвиявляє, що це сценарій perl, що забезпечує інтерфейс високого рівня та, таким чином, пропонує деякі функції наступних команд:

  • useradd
  • groupadd
  • passwd - використовується для додавання / зміни паролів користувачів.
  • gpasswd - використовується для додавання / зміни групових паролів.
  • usermod - використовується для зміни різних параметрів, пов'язаних з користувачем.
  • chfn - використовується для додавання / зміни додаткової інформації, що зберігається у користувача.
  • chage - використовується для зміни інформації про термін дії пароля.
  • edquota - використовується для зміни квот використання диска.

Основний запуск adduserкоманди:

adduser username

Ця проста команда виконає ряд речей:

  1. Створіть користувача на ім'я username.
  2. Створіть домашній каталог користувача (за замовчуванням - /home/usernameскопіюйте файли з /etc/skelнього).
  3. Створіть групу з тим самим іменем, що і користувач, і помістіть її в ній.
  4. Попросити користувача ввести пароль.
  5. Запросити додаткову інформацію про користувача.

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

useradd -m -U username
passwd username
chfn username

Зауважте, що adduserгарантується, що створені UID та GID відповідають політиці Debian . Створювати нормальних користувачів із, useraddздається, нормально, за умови UID_MIN/ UID_MAXу /etc/login.defsвідповідності з політикою Debian. Проблема, однак, полягає в тому, що Debian задає певний діапазон для системних UID користувачів, який, здається, підтримується /etc/adduser.conf, тому наївне додавання користувачем системи з useraddі не вказати UID / GUID у правильному діапазоні залишає можливість виникнення серйозних проблем.

Ще одне поширене використання для adduserспрощення процесу додавання користувача до групи. Ось наступна команда:

adduser username newgroup

замінює більш складну usermodкоманду, яка вимагає вказати групи, до яких користувач вже є членом (і які ви хочете, щоб користувач залишався членом):

usermod -G all,other,groups,user,is,in,newgroup

Одним із мінусів використання adduserтут є те, що ви можете вказати лише одну групу за один раз.


Це круто! Я навіть не знав, що це питання. Чи приймає хешовані паролі, як це робить useradd? Це, до речі, дуже гарна робота.
mikeserv

Я не знаю, чи я повністю згоден із заявою "адміністратори повинні ...", хоча ... Особисто я вважаю, що адміністратор, ймовірно, повинен збирати свою власну adduserвідповідно до загальносистемної політики, але це просто крісло. квотербек в кращому випадку.
mikeserv

@mikeserv, немає хешованих паролів. Існує ще одна програма, про яку ви повинні знати, хоча - chpasswd- вона може приймати хешовані паролі stdin. Я зачекаю завтра, перш ніж оновити цю іншу відповідь, хоча думаю.
Graeme

приємний пост. Для мене трохи занадто багато деталей. Я найбільше сумую за тим, що adduserспочатку було створено для адміністраторів сервера, яким часто потрібно було створювати / змінювати / обмежувати реальних користувачів, таких як сервер електронної пошти в університеті. З допомогою adduserвас можна автоматизувати процес. За роки цього це мало змінилося, і сьогодні це useraddможе стати важким для багатьох адміністраторів, і для них adduserстало інструментом вибору.

У моєму Ubuntu 16.04, -U/ --user-groupздається, за замовчуванням.
Франклін Ю

2

Команда adduser за замовчуванням також створює каталог / home / user для системних користувачів, що ви не можете зробити з командою useradd . useradd додає домашні каталоги лише для звичайних користувачів, а не для користувачів системи.


1

Системний адміністратор може робити що завгодно з useradd, що можна зробити з аддусером. Тут було зазначено, що ви не можете створити каталог / home / user для користувачів системи з useradd, і ви абсолютно можете, змінивши файли, що містяться в / etc / skel. / etc / skel містить набір файлів, які спочатку використовувались для заповнення домашнього каталогу нового користувача.

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