Пользователь создает сценарий из файла CSV [закрыто]

Как создать сценарий оболочки 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
-2
задан 22 May 2017 в 12:46

1 ответ

Из того, что я увидел в вашем собственном сценарии, для создания пользователей вам будет работать что-то подобное:

  • Помните
    • Имя группы не должно содержать пробелов [ 1113]
    • Вы просто не можете использовать -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
0
ответ дан 22 May 2017 в 12:46

Другие вопросы по тегам:

Похожие вопросы: