【发布时间】:2015-09-27 17:06:20
【问题描述】:
假设:
我有一个名为 users.txt
的文件username:password:groups
user1:password:group1,group2,group3
user2:password:group3
user3:password:group1,group3
user4:password:group2,group3
代码
#!/bin/bash
FILENAME="users.txt"
while IFS=':' read USERNAME PASSWORD GROUPS
do
echo "USERNAME" $USERNAME "PASSWORD" $PASSWORD "GROUPS" $GROUPS
done < "$FILENAME"
我希望能够添加一组用户来进行 samba 共享。我有完整的用户列表要输入。我主要是在团体方面遇到困难。
两个最大的问题是,如何将组作为一个字符串以及如何加密密码。
我已经浏览了这个网站上的所有教程,但没有一个是有效的。
简单易懂的代码真的很有帮助。谢谢。
更新完成的工作示例
#!/bin/bash
# set filename
FILENAME="users.txt"
# loop through file
while IFS=':' read USERNAME PASSWORD GROUPNAMES
do
# add user and assign groups
echo " "
echo "ADDING USER: " $USERNAME
useradd $USERNAME -G $GROUPNAMES
# add password
echo -e "$PASSWORD\n$PASSWORD\n" | passwd $USERNAME
# add user to samba
echo -e "$PASSWORD\n$PASSWORD\n" | smbpasswd -a $USERNAME
done < "$FILENAME"
【问题讨论】:
-
避免使用全部大写的变量,你可能会与内置变量发生冲突。
-
谢谢,我得到了它的工作,但我会知道的未来。
标签: bash multiple-users