Как создать сценарий оболочки user_create.sh для синтаксического анализа файла csv и создания учетных записей пользователей. Разрешения по умолчанию для каждой учетной записи пользователя должны быть доступными для чтения - записи - исполняемыми для владельца, доступными для чтения - исполняемыми для членов группы и запрещать доступ другим пользователям. CSV-файл разделен запятыми и содержит следующие столбцы:
Задание Cron, которое записывает использование диска каждого пользователя системы в 23:59 каждый день, и добавлять эти записи в файл журнала /var/log/storage.log
.
Ниже представлено то, что у меня есть сейчас, но по какой-то причине это не работает.
Ниже представлено то, что у меня есть сейчас, но по какой-то причине это не работает.
#!/bin/bash
INPUT=data.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read accountname username password groupname
do
useradd -p $password -g groupname -c $accountname -s /bin/sh $username
done < $INPUT
IFS=$OLDIFS
Вот одна часть моего файла cvs:
AMELIA SMITH,asmith,AeMga7du,seniormanagement
OLIVIA JOHNSON,ojohnson,AhBob0e0,helpdesk
EMILY WILLIAMS,ewilliams,Ees3uiW0,products
AVA BROWN,abrown,rooyie8G,R&D
ISLA JONES,ijones,aeN6bohp,operations
JESSICA MILLER,jmiller,Eiqu3voh,R&D
POPPY DAVIS,pdavis,Eed3teiv,R&D
ISABELLA GARCIA,igarcia,eeNgi30h,sales
Из того, что я увидел в вашем собственном сценарии, для создания пользователей вам будет работать что-то подобное:
-p password
, пароль должен быть зашифрован первым. script.sh:
#!/bin/bash
file="data"
IFS=","
while read name user pass group
do
getent group $group >/dev/null || groupadd $group
useradd -m -g $group $user -s /bin/bash
chpasswd <<< "$user:$pass"
# force user to change his/her password after login
passwd -e $user
done < "$file"
для мониторинга дискового пространства, я предлагаю что-то подобное в файле /etc/crontab
:
59 23 * * * root bash -c "echo ----; date; du -hd1 /home;" >> /var/log/storage.log