如何创建 shell 脚本 user_create.sh 来解析 csv 文件并创建用户帐户。每个用户帐户的默认权限应为所有者可读 - 可写 - 可执行,组成员可读 - 可执行,其他人不允许访问。CSV 文件以逗号分隔,包含以下列:
- 真正的名字
- 用户名
- 默认密码(首次登录需更改)
- 团队名字
Cron 作业每天晚上 11: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
这是我的简历文件的一部分:
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
答案1
从我在您自己的脚本中看到的内容来看,为了创建用户,类似这样的操作对您有用:
- 记住
- 组名不应包含空格
- 你根本不能使用
-p password
,密码应该先加密。
脚本.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