Вопрос: В чем разница между adduser и useradd?


В чем разница между командами adduser а также useradd на Ubuntu?


358
2017-09-15 20:32


Источник


Тот же вопрос на суперпользователя а также по ошибке сервера - ændrük
а также Unix stackexchange (довольно подробный ответ) - xealits


Ответы:


useradd является встроенным двоичным кодом, скомпилированным в системе. Но, adduser является   скрипт perl, который использует useradd двоичный.

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

Источник: В чем разница между «adduser» и «useradd»?


311
2017-09-15 20:56



добавьте команду useradd, не создавайте каталог «/ home / username», но команда adduser будет - Deepen
useradd с -m опция создаст домашний каталог. - richsinn
Экспериментация не так интересна, семантика. подобно adduser(8) более удобен для пользователя и создает и настраивает пользователя по умолчанию так, как вы ожидаете. А также useradd(8) только делайте то, что вы просите, так что вы хотите создать домашний каталог, вы должны сказать ему, чтобы создать его для вас. - Anders
Я должен каждый раз это делать в google ... Как я могу помочь себе вспомнить, что это такое? - Quentin Skousen
@kkhugs для меня «adduser» чувствует себя наиболее интуитивно понятным, потому что это команда, которая звучит как английский, а другая - не семантически. Если вы помните, что это «самый интуитивный» из двух, вы также можете попытаться запомнить его как предпочтительный / более простой. - pzkpfw


Всегда используйте adduser (а также deluser при удалении пользователей) при создании новых пользователей из командной строки. (Если вы пишете сценарий, особенно если вы нацелены на переносимость, вы можете вместо этого использовать утилит низкого уровня - и adduser/deluser может быть недоступна на всех дистрибутивах, например. на SuSE.)

useradd, userdel а также usermod команды - это низкоуровневые утилиты, которые существуют по историческим причинам, в то время как adduser/deluser Делать правильные вещи. (Я помню, что использовать, думая, что user* идет после adduser/deluser в алфавите, и поэтому «хуже».)

Согласно соответствующим manpages (на Ubuntu 12.04 Precise Pangolin, то есть на производной системе Debian).

Manpage для adduser говорит:

(Акцент добавлен.)

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

Manpage для useradd говорит:

useradd это утилита низкого уровня для добавления пользователей. В Debian администраторы должны   обычно используют adduser(8) вместо.

Смотрите также: В чем разница между «adduser» и «useradd»? (на SuperUser)


129
2017-11-24 17:42



Я никогда не помню, какой из них, так что это моя глупая мнемоника, если она кому-то помогает :) «Пользователь» рифмуется с «проигравшим», а «неудачник» наступает последним. Таким образом: adduser, deluser. - Mads Skjern
я вообще-то не соглашаться на "Всегда пользователь adduser»: Для автоматизированных скриптов я бы предпочел useradd потому что это всегда там, не интерактивно, а не Дистрибутив конкретных, - Wernight
Я пытался adduser на openSUSE, и его там нет (13.2) - cst1992
@ cst1992 Вы правы, я отредактировал ответ, чтобы отразить это. Любопытно, когда я попытался locate adduser на системе SuSE 11, я обнаружил, что существует adduser manpage, но не двоичный (и ни один deluser manpage или команда). - zrajm
useradd лучше, если вы настоящий администратор sys. Невозможность использовать adduser в автономном скрипте - настоящий облом. - answerSeeker


adduser: добавить пользователя с полным профилем и информацией (пропуск, квота, разрешение и т. д.)

useradd: добавьте пользователя только с его именем (если вы хотите добавить временного пользователя только с именем, другая информация не требуется)


14
2017-07-02 11:00



+1 и Добро пожаловать! Я проголосовал за человека, который не мог объяснить свой предыдущий голос. Так держать! Хорошие программисты всегда поднимаются на вершину - (и не голосуют без объяснения причин). :) - Ricalsin


adduser более дружелюбен тем, что он устанавливает домашние папки учетной записи и другие настройки (например, автоматически загружает системные статистические данные и уведомления при входе в систему), тогда как useradd просто создает пользователя.


7
2017-09-15 21:05



Неправильно. useradd может создать домашний каталог с -m, установить пароль с -p, создать скелетные файлы с -k и добавить пользователя в группу (-и) с -G. - ychaouche


Еще пара различий, которые приводят к конкретным сценариям, где useradd может быть предпочтительнее.

  1. В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser будет запрашивать информацию, такую ​​как пароль и «gecos» (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминается в комментарии Wernight).

    Запросы могут быть подавлены путем передачи нулевых аргументов:

    adduser --disabled-password --gecos "" USER
    
  2. useradd позволяет передавать несколько дополнительных групп, чтобы добавить пользователя с помощью -G вариант. adduser кажется, требует, чтобы вы вызывали команду один раз для каждой добавляемой группы.


7
2017-09-29 21:38



Не работает на ubuntu 16.04. - answerSeeker


Основное отличие - «adduser» создаст домашний каталог и добавит файлы скелета в этот каталог, где «useradd» не будет создавать файлы домашней директории и скелета!

adduser try:

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#

3
2017-10-26 14:10



Неправильно. Видеть предыдущий комментарий - ychaouche