#!/bin/bash ########## Создание нового пользователя ########## ###### Основные переменные ###### # c - Комментарий # n - Имя пользователя # PASS - Пароль # q - Количество подключений пользователя # e -Адрес электронной почты, куда отправлять логин/пасс homedir='/var/data' # Корневой каталог FTP-сервера logdir='/var/log/usergen' # Каталог, в котором будут храниться протоколы работы скрипта g='ftpusers' # g - Основная группа s='/usr/sbin/nologin' # s - Шелл пользователя. По умолчанию /usr/sbin/nologin basedir='/root/ftp/users' # Каталог с базой пользователей basename='users' ###### Проверка наличия директорий и файлов ###### # Проверка наличлия корневой директории FTP-сервера if ! [ -d /var/data ]; then echo 'No ftp-root directory!' fi # Проверка наличия директории лог-файлов #if ! [ -d /var/log/usergen ]; then # echo 'No log directory!' #fi ###### Создание пользователя ###### # Генерируется пароль PASS=`pwgen -n1 -A` # Текстовое меню echo 'Введите имя пользователя' read n ###### Проверка существования пользователя ###### grep "$n:" /etc/passwd # >/dev/null if [ $? -ne 1 ]; then echo 'User exist!' exit 0 fi echo 'ВНИМАНИЕ! Пользователь будет добавлен в группу ftpusers' echo 'Shell по умолчанию /usr/sbin/nologin' echo 'Введите описание пользователя' read c echo 'Количество подключений' read q echo 'Адерс электронной почты Организации' read e # -b - базовый каталог. В нем будет создан каталог пользователя # -g - основная группа. Для пользователей FTP основной группой явзялется ftpusers # -G - Дополнительные группы # -m - Создать каталог пользователя # -s - оболочка пользователя # -N - Не создавать группу с таким же именем, что и у пользователя useradd -b $homedir -c "$c" -g $g -G users -m -N -s $s $n #Изменение пароля пользователя echo "$n:$PASS"| chpasswd #Установка корректных прав на каталог chown root.ftpusers $homedir/$n chmod g+w $homedir/$n #Удаление скрытых файлов rm -rf $homedir/$n/.* #Запись в базу tme=`date +%H:%M:%S` dte=`date +%d.%m.%Y` echo "$n $PASS $q $e $tme $dte comment: $c" >> /tmp/users2.txt #echo "$n $PASS $q $e $tme dte comment: $c " >> $basedir/basename exit 0