我有一个名为user.txt
的文件,其中大约有一百个条目采用以下格式:user:password:group:shellToUse
离。 :
martin:pwd123:photo:bash
marc:pwd321:devel:c-shell
...
如何通过使用Bash脚本读取此文件中的条目来创建用户?
此外,用户的主目录必须如/home/group/user
,默认shellToUse
为Bash。
答案 0 :(得分:1)
如果您的用户拥有必要的权限,您可以使用以下内容
filename="$1"
while IFS=: read uName pw group shell; do
shell=${shell:-bash}
# if shell is the empty string, set $shell to bash
shell_path=$(which $shell)
useradd -d /home/$group/$uName $uName -g $group -s $shell_path
echo -e "$pw\n$pw\n | passwd $uName
done < "$filename"
unset IFS
以下列方式调用脚本: ./script_name user.txt
并且不要忘记使脚本可执行,即
chmod u + x script_name
正如mklement0所暗示的那样,这应该加快脚本速度。
我不理解有关shell = $ {shell:-bash}
的评论答案 1 :(得分:0)
如果使用bash,伪代码看起来像这样
Open file and read lines
for eachline in lines:
Split the line using awk. Take hints from https://viewsby.wordpress.com/2012/09/14/awk-split-string-using-a-delimiter/
use 'adduser' command to create user with password. Take hints from http://www.tecmint.com/add-users-in-linux/