··if ["$(id −un)"!= "root"]; then
····echo "Error: You must be root to run this command." >&2
····exit 1
··fi
··echo "Add new user account to $(hostname)"
··/bin/echo −n "login: "; read login
··# Следующая строка ограничивает максимальный числовой идентификатор
··#·· пользователя значением 5000, скорректируйте это значение,
··#·· чтобы оно соответствовало верхней границе вашего диапазона
··#·· числовых идентификаторов пользователей.
········ $pwfile)"
··homedir=$hdir/$login
··# Для каждого пользователя создается собственная группа.
··gid=$uid
··/bin/echo −n "full name: "; read fullname
··/bin/echo −n "shell: "; read shell
··echo "Setting up account $login for $fullname…"
··echo ${login}:x:${uid}:${gid}:${fullname}:${homedir}:$shell >> $pwfile
··echo ${login}:*:11647:0:99999:7::: >> $shadowfile
··echo "${login}:x:${gid}:$login" >> $gfile
··mkdir $homedir
··cp −R /etc/skel/.[a-zA-Z]* $homedir
··chmod 755 $homedir
··chown −R ${login}:${login} $homedir
··# Установка начального пароля
··exec passwd $login
Как это работает
Самая замысловатая команда в этом сценарии находится в строке
Сценарий добавляет учетную запись с новым числовым идентификатором. Затем создает домашний каталог для нового пользователя и копирует в него содержимое каталога
Запуск сценария
Этот сценарий не имеет аргументов и должен запускаться с привилегиями root.
Результаты
В нашей системе уже есть учетная запись для tintin, поэтому мы решили создать отдельную учетную запись для snowy[4] (как показано в листинге 5.15).
Листинг 5.15. Тестирование сценария adduser
$ sudo adduser
Add new user account to aurora
login: snowy
full name: Snowy the Dog
shell: /bin/bash
Setting up account snowy for Snowy the Dog…
Changing password for user snowy.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Усовершенствование сценария