Nextcloud后台每次添加用户都需要一行行输入信息然后点击添加新用户,那么有没有什么更优雅高效的方式来添加呢?甚至批量添加几十个几百个用户?当然是可以的!
通过查阅官网资料发现了一些有用信息,下面链接是官网的user管理页面,有能力的自行去探索。User management — Nextcloud latest Administration Manual latest documentation
1、ssh连接你的服务器,如何操作参考我前一篇文章
将nextcloud与onlyoffice相结合实现协作办公(可多人同时编辑文档表格等)-CSDN博客
2、添加用户的命令(建议完整复制我的命令去修改,不要自己一个个敲!)
curl -X POST http://admin:123456@10.180.5.218/ocs/v2.php/cloud/users -d userid="test4" -d password="123456" -H "OCS-APIRequest: true" -d groups[]="研发"
命令解释:admin:123456表示你nextcloud管理员的登录账户密码(必须以管理员账号登录才有权限添加用户);test4表示要创建的用户名;password="123456"表示用户的密码;-d group[ ]="研发"表示将这个用户加入到研发这个组里,不加组的话开源直接去掉"-d group......"。
执行结果返回了个200的状态码,说明创建成功。
登录后台用户管理页面可以看到test4用户已经创建成功,如果想创建多个用户只要复制这条命令修改要创建的用户名和密码即可,是不是优雅且高效。
2、删除用户
curl -X DELETE http://admin:123456@10.180.5.218/ocs/v2.php/cloud/users/test4 -H "OCS-APIRequest: true"
删除test4这个用户
3、禁用用户
curl -X PUT http://admin:123456@10.180.5.218/ocs/v2.php/cloud/users/test4/disable -H "OCS-APIRequest: true"
禁用test4用户
4、启用用户
curl -X PUT http://admin:123456@10.180.5.218/ocs/v2.php/cloud/users/test4/enable -H "OCS-APIRequest: true"
启用这个test4用户
5、将用户添加到某个组
curl -X POST http://admin:123456@10.180.5.218/ocs/v2.php/cloud/users/test4/groups -d groupid="研发" -H "OCS-APIRequest: true"
将test4这个用户加入研发组
6、通过脚本批量创建用户
①将要创建的用户名和密码放入一个txt文件里,一行放一个用户,以逗号隔开。
逗号左侧是用户名,右侧是密码。
按图中位置可以修改密码长度!!!创建的密码是几位数,“禁用常见密码”和“检查密码是否在。。。。。。”这两项也可以关掉。
②编写脚本
sudo -i #切换到root用户
cd /home/ #切换到家目录,将前面创建的nextcloud2.txt文件放到这个目录下。
vim add_users.sh 创建add_users.sh这个脚本,脚本内容如下。
#!/bin/sh
# txt文件
txt_file="nextcloud2.txt"
# 读取文件并循环遍历每一行
while IFS=, read -r userid password
do
# 在这里处理userid和password
echo "用户ID: $userid, 密码: $password"
# 创建用户
curl -X POST http://admin:123456@10.180.5.218/ocs/v2.php/cloud/users -d userid="$userid" -d password="$password" -H "OCS-APIRequest: true"
done < "$txt_file"
③给脚本执行的权限
chmod +x add_users.sh
④执行脚本
./add_users.sh
add_users.sh前面的点和斜杠一定要加上!!!这是执行脚本的一种方式。并且要保证存放用户名密码的txt文件和脚本在同一级目录下!!!