
Интересно: Почему в Debian Linux есть эти две команды с очень похожими названиями и функционалом? Это всегда сбивало меня с толку.
- Превосходит ли кто-либо из них другой?
- Почему они не объединены в один?
- Есть ли между ними существенная разница?
- Какой из них мне использовать? Или это зависит от варианта использования?
решение1
useradd
является собственным бинарным файлом, скомпилированным с системой. Но adduser
является скриптом perl, который использует useradd
бинарник в бэкэнде.
adduser
более удобен для пользователя и интерактивен, чем его бэкэнд useradd
. Нет никакой разницы в предоставляемых функциях.
решение2
Главное преимуществоДобавить пользователянаддобавить пользователяимеет дело с пользователями системного уровня.Добавить пользователяучетная запись пользователя системного уровня при создании помещает каталог пользователя в домашнюю папку для системного пользователя, гдедобавить пользователяне автоматически. Если вы прочитаете man, они по сути одинаковы, за исключением пользователей системного уровня и связанных домашних каталогов, которые являются автоматическими.Добавить пользователяавтоматически создает каталог /home/user для пользователей системного уровня, если вдобавить пользователя, за исключением случаев, указанных-мвариант. В других чтениях, с которыми я сталкивался, в общем утверждается, что UID и GUID назначаются принятыми конформными стандартами Debian вДобавить пользователя.
решение3
В паре экземпляров 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). Итак, программы называютсяпользователь*(useradd, usermod и userdel соответственно). Я полагаю, что альтернатива*пользовательСоглашение об именовании (adduser, moduser и deluser -- их не существует) также может работать. Но это будет немного более неловко (по причине, которую я не могу четко выразить в данный момент :)
решение4
В Raspian (мне нужно будет проверить другие ОС) «adduser USER» запускает диалоговое окно (TUI), а «useradd USER» — НЕТ.
Видимо, при использовании adduser, как только появляется диалоговое окно, полная команда 'useradd' уже выполняется. Даже если вы нажмете CTRL-C, ваш пользователь там.
Поскольку в новых системах создаются «персональные» группы, чтобы удалить вновь созданного пользователя, вам необходимо:
- vi /etc/passwd
- vi /etc/группа
- rm -rf /home/ПОЛЬЗОВАТЕЛЬ
Я предполагаю, что поскольку adduser "использует" useradd, остальное - метаданные о пользователе. Так что технически никаких изменений в "skel", "file masks" или т. п., т. е. ваши системные значения по умолчанию.
С другой стороны, поскольку useradd не вызывает никакого TUI, он может быть более полезен при написании скриптов.
Честно говоря, я проверял это только на расбианском языке, потому что именно поэтому я и задал этот вопрос.
Я могу себе представить, что в других ОС может быть реализована другая версия adduser.