Je suis un débutant en scripts, mais j’ai créé un fichier texte appelé text.dat qui ne contient que les noms d’utilisateur figurant dans l’emplacement /home/daniel/text.dat et je tente d’exécuter un script (appelé addusers.sh) qui affiche le les noms de ce fichier texte et créera un nouveau compte utilisateur sur le système pour chaque nouveau compte utilisateur spécifié dans le fichier text.dat. Pour chaque compte d'utilisateur créé, ajoutez une ligne au fichier /home/daniel/logs/useraccounts.log. L'entrée de ligne contiendra les informations suivantes: added | <user account name> | <day and time of creation>
.
C'est ce que j'ai jusqu'ici:
#!/bin/bash
echo “cat text.dat”
newuser= grep /home/daniel/text.dat
Sudo adduser $newuser
#!/bin/bash
LANG=C
myuser="/home/george/text.dat"
# create logs directory
mkdir -p ~/logs
# create log file
touch ~/logs/useraccounts.log
# make sure admin is running the script
[ "$(whoami)" != "root" ] && exec Sudo -- "$0" "$@"
# check if log file is empty, if not don't add a new header
file="~/logs/useraccounts.log"
# Add header in logs file if one isn't already there.
if [[ -s $file ]]
then
# log file header
printf "%s %12s %s %18s %s %32s %s\n" "|" "Added" "|" "User Account Name" "|" "Day and Time of Creation" "|" >> ~/logs/useraccounts.log
printf "%50s\n" "========================================================================" >> ~/logs/useraccounts.log
fi
# remove any whitespaces and blank lines from file input
# before passing it to 'while command'
sed '/^[ \t]*$/d' $myuser | while read -r line
do
name="$line"
adduser --disabled-login --gecos "" $name
# check if user was successfully added
isthere=$(cut -d: -f1 /etc/passwd | grep "$name")
# if user was added then make insert record into log file
if [[ "$isthere" == "$name" ]]
then
printf "%s %10s %s %17s %s %33s %s\n" "|" "Yes" "|" "$name" "|" "$(date)" "|" >> ~/logs/useraccounts.log
else
printf "%s %10s %s %17s %s %33s %s\n" "|" "No" "|" "$name" "|" "$(date)" "|" >> ~/logs/useraccounts.log
fi
done
Plusieurs choses à noter ici:
printf
devra être modifié pour correspondre à votre propre style.