Путь к Linux. Руководство по установке и настройке

         

Добавление пользователей: useradd


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

Вначале проверим текущее состояние этих настроек:

useradd -D

В результате вы получите, например, следующее:

GROUP=1

HOME=/home

INACTIVE=0

EXPIRE=0

SHELL=

SKEL=/etc/skel

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

Например, введем следующие ограничения:

·



группа, присваиваемая пользователям по умолчанию — 100;

·

пароли обновляются каждые 60 дней;

·

нет нужды блокировать счет до того, как срок действия пароля будет исчерпан;

·

оболочка по умолчанию устанавливается в /bin/bash;

Для внесения этих изменений достаточно одной единственной строки:

useradd -D -g100 -e60 -f0 -s/bin/bash

И теперь после повторного запуска

#useradd -D

GROUP=100

HOME=/home

INACTIVE=0

EXPIRE=60

SHELL=/bin/bash

SKEL=/etc/skel

На всякий случай, если это вам интересно — все эти значения сохраняются в файле:  /etc/default/useradd.

Теперь вы можете вводить в систему новых пользователей. Например, добавим пользователя Fred с использованием значений по умолчанию:

useradd -m -c "Fred Flintstone" fred

В результате будет созадана следующая запись в файле паролей /etc/passwd:

fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash

А в файл /etc/shadow будет помещена следующая строка:

fred:!:0:0:60:0:0:0:0

При этом будет автоматически создан домашний каталог /home/fred и туда будет скопировано содержимое каталога /etc/skel[6].

Но вот что забавно! Счет у Флинтстоуна вроде бы есть, но зарегистрироваться в системе он пока не может. Поэтому нам необходимо установить ему пароль для регистрации в системе. Для этого используем новуюверсию программы passwd.

#passwd fred

Changing password for fred

Enter the new password (minimum of 5 characters)


Please use a combination of upper and lower case letters and numbers.

New Password: *******

Re-enter new password: *******

Теперь запись, соответствующая Фреду в /etc/shadow изменится и приобретет вид:

fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0

Теперь вход в систему для Фреда разрешен!

Настоятельно рекомендуется использовать команды useradd и passwd, а не заниматься непосредственнфм редактированием файлов  /etc/passwd и /etc/shadow. Связано это с тем, что эти программы обеспечивают изменение файлов паролей на уровне транзакций, что обеспечивает возможность изменения своих паролей нескольким пользователям одновременно без потери данных.

Если же вам все-таки лень запомнить целых две команды, можете воспользоваться небольшим скриптом, написанным Майком Джексоном[7]:

  #!/bin/bash

  #

  # /sbin/newuser - Скрипт для добавления новых пользователей

  #                           в систему, использующую Shadow Suite

  #

  # Written my Mike Jackson <mhjack@tscnet.com> as an example for the Linux

  # Shadow Password Howto.  Permission to use and modify is expressly granted.

  #

  # Скрипт может модифицироваться с целью создания интерфейса

  # подобного программе Adduser из дистрибутива Slackware.

  # Кроме того, имеет смысл блокировать ошибки ввода.

  #

  ##

  #  Умолчания для команды useradd

  ##

  GROUP=100        # Группа по умолчанию

  HOME=/home       # заголовок домашнего каталога location (/home/username)

  SKEL=/etc/skel   # Каталог шаблонов

  INACTIVE=0       # Количество дней блокировки

                   # счета после окончания срока действия пароля (0=никогда)

  EXPIRE=60        # Days that a passwords lasts

  SHELL=/bin/bash  # полный путь оболочки пользователя

  ##

  #  Умолчания для команды passwd

  ##

  PASSMIN=0        # Минимальное количество дней до смены пароля

  PASSWARN=14      # За сколько дней начинается предупреждение?

  ##

  # Убеждаемся, что скрипт запущен пользователем root

  ##

  WHOAMI=`/usr/bin/whoami`

  if [ $WHOAMI != "root" ]; then



          echo " Новых пользователей может вводить только root!"

          exit 1

  fi

  ##

  #  Запрос регистрационного и полного имен пользователя.

  ##

  echo ""

  echo -n "Регистрационноое имя: "

  read USERNAME

  echo -n "Полное имя пользователя: "

  read FULLNAME

  #

  echo "Добавляю пользователя: $USERNAME."

  #

  # Обратите внимание на "" вокруг $FULLNAME, которые необходимы из за того,что

  # почти всегда полное имя содержит хотя бы один пробел, и без кавычек

  # useradd автоматически перейдет к разбору следующего параметра,

  # как только достигнет символа пробела..

  #

  /usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \

          -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME

  ##

  #  Установка параметров команды passwd

  ##

  /bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1

  ##

  #  Теперь запросим у root-а пароль для этого пользователя

  ##

  /bin/passwd $USERNAME

  ##

  #  И, наконец посмотрим, что у нас получилось.

  ##

  echo ""

  echo "Запись из файла /etc/passwd:"

  echo -n "   "

  grep "$USERNAME:" /etc/passwd

  echo "Запись из файла /etc/shadow:"

  echo -n "   "

  grep "$USERNAME:" /etc/shadow

  echo "Результат запроса по команде  passwd:"

  echo -n "   "

  passwd -S $USERNAME

  echo ""


Содержание раздела