52

Интересно: почему в Debian Linux есть две эти команды с очень похожими именами и функциональностью? Это всегда смущало меня.

  • Кто-то из них превосходит другого?
  • Почему они не объединены в один?
  • Есть ли существенная разница между ними?
  • Какой я должен использовать? Или это зависит от варианта использования?

3 ответа3

61

useradd - это собственный двоичный файл, скомпилированный с системой. Но, adduser - это Perl-скрипт, который использует бинарный файл useradd в бэк-энде.

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

9

Основное преимущество adduser перед useradd - работа с пользователями системного уровня. С помощью adduser учетная запись пользователя системного уровня при создании помещает каталог пользователя в домашний каталог для системного пользователя, где useradd не работает автоматически. Если вы читаете человека, они по существу одинаковы, за исключением пользователей системного уровня, и связанные домашние каталоги являются автоматическими. adduser автоматически создает каталог /home /user для пользователей системного уровня, где в useradd нет положения, за исключением случаев, указанных в опции -m. В других чтениях, с которыми я сталкивался, в общем утверждается, что UID и GUID назначаются в adduser принятыми конформными стандартами Debian.

0

В нескольких экземплярах 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 - их не существует) также может работать. Но это было бы немного более неловко (по причине, которую я не могу выразить ясно в данный момент :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .