Useradd / Adduser: в чем разница

Thank you for reading this post, don't forget to subscribe!

Краткое резюме

Useradd – это встро­ен­ная коман­да Linux, кото­рую мож­но най­ти в любой систе­ме Linux. Одна­ко созда­ние новых поль­зо­ва­те­лей с таким низ­ким уров­нем явля­ет­ся уто­ми­тель­ной задачей.

Adduser не явля­ет­ся стан­дарт­ной коман­дой Linux. По сути, это сце­на­рий Perl, кото­рый исполь­зу­ет коман­ду useradd в фоно­вом режи­ме. Эта высо­ко­уров­не­вая ути­ли­та более эффек­тив­на для пра­виль­но­го созда­ния новых поль­зо­ва­те­лей в Linux. Пара­мет­ры по умол­ча­нию для всех новых поль­зо­ва­те­лей так­же мож­но уста­но­вить с помо­щью коман­ды adduser.

Давай­те рас­смот­рим обе эти коман­ды и то, как они созда­ют поль­зо­ва­те­лей в Linux.

 

Команда useradd

Во-пер­вых, давай­те посмот­рим на пове­де­ние коман­ды useradd по умол­ча­нию. Вы когда-нибудь запус­ка­ли сле­ду­ю­щую команду?

 

Мы еще не виде­ли дис­три­бу­тив, где эта коман­да созда­ла пол­ную учет­ную запись поль­зо­ва­те­ля. Даже после уста­нов­ки паро­ля для ново­го поль­зо­ва­те­ля вам потре­бу­ет­ся исполь­зо­вать допол­ни­тель­ные параметры.

Напри­мер, в нашей систе­ме ука­зан­ная выше коман­да доба­ви­ла сле­ду­ю­щую запись в файл /etc/passwd.

Если вы чита­ли ста­тью о пере­чис­ле­нии поль­зо­ва­те­лей в Linux, вы, веро­ят­но, уже зна­ко­мы с содер­жа­ни­ем фай­ла /etc/passwd. Сна­ча­ла это выгля­дит хоро­шо, но если вы нач­не­те копать, вы ско­ро заме­ти­те, что неко­то­рые вещи не совсем правильные.

Во-пер­вых, вто­рое поле содер­жит «х». Это озна­ча­ет, что запол­ни­тель для инфор­ма­ции о паро­ле нахо­дит­ся в /etc/shadow. Но мы не уста­но­ви­ли пароль. Это озна­ча­ет, что тесто­вый поль­зо­ва­тель не смо­жет вой­ти в систему.

Во-вто­рых, домаш­ний ката­лог. Дело в том, что /home/test не суще­ству­ет. Даже после того, как вы уста­но­ви­ли пароль, про­изой­дет ошиб­ка, если поль­зо­ва­тель вой­дет в систе­му. В зави­си­мо­сти от дру­гой кон­фи­гу­ра­ции ваша систе­ма Linux может запре­тить поль­зо­ва­те­лю вхо­дить без дей­стви­тель­но­го домаш­не­го ката­ло­га. Ско­рее все­го, поль­зо­ва­тель test поз­во­лит вой­ти в систе­му, по край­ней мере, в тек­сто­вом режи­ме. Но поль­зо­ва­тель test не смо­жет создать свой домаш­ний каталог.

В-тре­тьих, обо­лоч­кой по умол­ча­нию явля­ет­ся sh, а не bash. Мы не исполь­зу­ем sh как обо­лоч­ку. Вы, веро­ят­но, тоже не зна­е­те, пото­му что bash явля­ет­ся обо­лоч­кой по умол­ча­нию в боль­шин­стве дис­три­бу­ти­вов Linux.

В то вре­мя как useradd-х пове­де­ние мож­но немно­го изме­нить, отре­дак­ти­ро­вав /etc/login.defs, суще­ству­ет мало шан­сов, что при­ве­ден­ная выше коман­да создаст пол­ную учет­ную запись поль­зо­ва­те­ля. Useradd явля­ет­ся низ­ко­уров­не­вая ути­ли­та. Тем не менее, про­смотр настро­ек в /etc/login.defs может быть полезен.

 

Команда Adduser

Adduser недо­сту­пен. в неко­то­рых дис­три­бу­ти­вах Linux. На дру­гих это мяг­кая ссыл­ка на useradd. В то вре­мя как на неко­то­рых дру­гих, это сце­на­рий Perl.

Adduser – это интер­ак­тив­ная ути­ли­та высо­ко­го уров­ня. В каче­стве бэк­эн­да исполь­зу­ет­ся ути­ли­та низ­ко­го уров­ня useradd. Настрой­ки в /etc/login.defs будут исполь­зо­вать­ся при исполь­зо­ва­нии adduser. На дис­три­бу­ти­вах, осно­ван­ных на Debian, даже стра­ни­ца man реко­мен­ду­ет исполь­зо­вать его с помо­щью коман­ды useradd.

Вызов adduser толь­ко с име­нем поль­зо­ва­те­ля про­ве­дет вас через ряд вопросов.

После отве­та на несколь­ко вопро­сов будет созда­на пол­ная учет­ная запись поль­зо­ва­те­ля. Новый поль­зо­ва­тель готов вой­ти через ваш мене­джер вхо­да в систе­му или в тек­сто­вом режиме.

Что­бы достичь почти того же резуль­та­та с помо­щью низ­ко­уров­не­вой ути­ли­ты useradd, коман­да долж­на выгля­деть при­мер­но так:

 

В опции -с могут быть уда­ле­ны без про­блем, то раз­де­лен­ный запя­ты­ми спи­сок, кото­рый сле­ду­ет будут добав­ле­ны ком­мен­та­рии к /etc/passwd. Но даже тогда adduser сохра­ня­ет две допол­ни­тель­ные команды.

У Adduser есть спи­сок доступ­ных вам опций. Вот корот­кий спи­сок, кото­рый, я думаю, будет наи­бо­лее полез­но узнать. Обра­ти­тесь к справ­ке или спра­воч­ной стра­ни­це для полу­че­ния более подроб­ной информации.

  • –system: доба­вить систем­но­го поль­зо­ва­те­ля. По умол­ча­нию систем­ные поль­зо­ва­те­ли поме­ща­ют­ся в груп­пу nogroup. Что­бы доба­вить систем­но­го поль­зо­ва­те­ля в суще­ству­ю­щую груп­пу, ука­жи­те пара­метр –gid или –ingroup.
  • –home DIR: исполь­зо­вать DIR в каче­стве домаш­не­го ката­ло­га вме­сто стан­дарт­но­го. При необ­хо­ди­мо­сти будет создан ката­лог и ско­пи­ро­ва­ны фай­лы скелета.
  • –shell SHELL: исполь­зуй­те SHELL вме­сто зна­че­ния по умолчанию.
  • –ingroup GROUP: уста­но­вить пер­вич­ную груп­пу поль­зо­ва­те­ля на GROUP
  • –add_extra_groups: доба­вить ново­го поль­зо­ва­те­ля в допол­ни­тель­ную груп­пу, опре­де­лен­ную в фай­ле конфигурации.

Файл кон­фи­гу­ра­ции AddUser поз­во­ля­ет уста­но­вить зна­че­ния по умол­ча­нию, кото­рые будут исполь­зо­вать­ся при созда­нии учет­ной запи­си. Файл хоро­шо доку­мен­ти­ро­ван и поз­во­ля­ет уста­нав­ли­вать зна­че­ния по умол­ча­нию, такие как:

  • Обо­лоч­ка по умолчанию
  • Домаш­ний каталог
  • Допол­ни­тель­ные группы
  • Доба­вить допол­ни­тель­ные группы

Заключение

По лич­но­му опы­ту, adduser намно­го луч­ше созда­ет новых поль­зо­ва­те­лей в Linux.