如何在Bash中从文件创建用户?

时间:2016-07-09 19:11:03

标签: linux bash shell

我有一个名为user.txt的文件,其中大约有一百个条目采用以下格式:user:password:group:shellToUse

离。 :

martin:pwd123:photo:bash
marc:pwd321:devel:c-shell
...

如何通过使用Bash脚本读取此文件中的条目来创建用户?

此外,用户的主目录必须如/home/group/user,默认shellToUse为Bash。

2 个答案:

答案 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}

的评论

useradd manpage

passwd manpage

答案 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/