Показать статистику
+2 голосов
от (2.5тыс. баллов)

 В Debian Linux есть эти две команды с очень похожими именами и функциональностью? Есть ли существенная разница между ними? Какую из них нужно использовать? Или это зависит от варианта использования? Какие команды мне нужно использовать для получения эквивалентных результатов?

3.5тыс. просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

useradd - это родной двоичный файл, скомпилированный с системой. 

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

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

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

Прежде всего, соответствующие фрагменты справочной страницы подчеркивают различия между двумя командами и дают некоторое представление о том, что происходит. 

adduser:

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

 useradd:

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

Дальнейшее исследование adduser показывает, что это скрипт на Perl, обеспечивающий высокоуровневый интерфейс и, следовательно, предлагающий некоторые функциональные возможности следующих команд:

  • useradd
  • groupadd
  • passwd - используется для добавления / изменения паролей пользователей.
  • gpasswd - используется для добавления / изменения групповых паролей.
  • usermod - используется для изменения различных пользовательских параметров.
  • chfn - используется для добавления / изменения дополнительной информации, хранящейся у пользователя.
  • chage - используется для изменения срока действия пароля.
  • edquota - используется для изменения квот использования диска.

Основной прогон adduser команды выглядит следующим образом:

adduser username

Вы можете при помощи этой простой команды сделать несколько вещей:

  • Создайте пользователя с именем username.
  • Создайте домашний каталог пользователя (по умолчанию - /home/username и скопируйте в него файлы) /etc/skel.
  • Создайте группу с тем же именем, что и пользователь, и поместите в нее пользователя.
  • Подскажите пароль для пользователя.
  • Запрашивайте дополнительную информацию о пользователе.
useradd

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

useradd -m -U username
passwd username
chfn username

Стоит обратить внимание, что это adduser гарантирует, что созданные UID и GID соответствуют политике Debian. useradd кажется, что создание нормальных пользователей в порядке, если UID_MIN/ UID_MAXв /etc/login.defs соответствует политике Debian. Однако проблема заключается в том, что Debian задает определенный диапазон для UID системных пользователей, который, по-видимому, поддерживается /etc/adduser.conf, поэтому наивное добавление системного пользователя useradd без указания UID / GUID в правильном диапазоне оставляет возможность для серьезных проблем.

Другое распространенное использование для adduser - упрощения процесса добавления пользователя в группу. Здесь следующая команда:

adduser username newgroup

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

usermod -G all,other,groups,user,is,in,newgroup

У adduser здесь есть один недостаток - вы можете указывать только одну группу за раз

от (2.5тыс. баллов)
0

Подскажите, существует ли альтернативный метод добавления пользователя в систему без использования useradd / adduser?

от (26.4тыс. баллов)
0

Полагаю, что один из возможных способов  осуществить это выглядит так:

  • Добавить запись для пользователя в /etc/passwd файле.
  • Добавить запись для группы в /etc/group файле.
  • Создать домашний каталог для добавленного пользователя.
  • Установить новый пароль пользователя с помощью passwd команды.

Это должно работать.

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

Вам нужно отредактировать /etc/passwdс vipw и добавить новую строку для новой учетной записи. Будьте внимательны с синтаксисом. Не редактируйте напрямую с помощью редактора. vipw блокирует файл, так что другие команды не будут пытаться обновить его одновременно. Вам нужно сделать поле пароля `* ', чтобы было невозможно войти в систему.

  • Аналогичным образом отредактируйте /etc/group при помощи  vigr, если Вам нужно также создать новую группу.
  • Создайте домашний каталог пользователя с помощью mkdir.
  • Скопируйте файлы из /etc/skel в новый домашний каталог.
  • Исправьте права собственности и разрешения с помощью chown и chmod. -R вариант является наиболее полезным. Правильные разрешения немного отличаются между сайтами, но обычно следующие команды исправляют и приводят к норме:
cd /home/newusername
chown -R username.group .
chmod -R go=u,go-w .
chmod go= .
  • Установите пароль с помощью passwd.

После того, как вы установили пароль на последнем шаге, учетная запись будет работать. Вы не должны устанавливать его, пока все остальное не будет сделано, иначе пользователь может случайно войти в систему, пока вы все еще копируете файлы.

...