В чем разница между "adduser" и "useradd"?

27567
Petr Pudlák

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

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

3 ответа на вопрос

60
Apple II

useradd is native binary compiled with the system. But, adduser is a perl script which uses useradd binary in back-end.

adduser is more user friendly and interactive than its back-end useradd. There's no difference in features provided.

adduser доступен не во всех дистрибутивах (например, на основе suse), а на некоторых других это просто символическая ссылка на useradd (на основе redhat). ychaouche 6 лет назад 0
9
user517969

The main advantage to adduser over useradd is dealing with system level users. With adduser the system level users account when created puts a user directory in home for the system user where useradd does not automatically. If you read the man they are essentially the same except for system level users and associated home directories are automatic. adduser creates a /home/user directory automatically for system level users where there is not a provision in useradd, except if specified by -m option. The other readings I have come across generically state that UID and GUID are assigned by accepted conformal Debian standards in adduser.

У adduser есть опция --no-create-home. ychaouche 6 лет назад 1
0
Happyblue

В нескольких экземплярах 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 6 лет назад 0

Похожие вопросы