You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Linux bash脚本批量添加用户并分配到对应用户组

问题原因
  • 文本格式兼容问题:你的Usernames.txt是Windows/DOS编码的文本文件,每行末尾携带不可见的\r回车符,读取到的用户组字段末尾会附带该字符,错误提示里的$'[visitor\r'就是该字符导致的。
  • 条件语法错误:bash中[是独立的测试命令,其后必须跟随空格,你写的[${arrIN[1]} = "visitor" ]缺少空格,会被系统判定为不存在的命令。
  • 配置不一致错误:你文件中标注的访客组标识是visitor,但脚本里添加组的语句写的是visitors,运行时会出现找不到用户组的报错。
修复方案
  1. 优先执行dos2unix Usernames.txt将文件转为Unix兼容格式,也可以直接使用下方优化后的脚本,无需提前修改原文件。
  2. 修正后的脚本省去了冗余的判断逻辑,直接读取文件内的用户组信息操作,兼容性更强:
#!/bin/bash
# 读取时按逗号拆分字段,自动处理空行和换行符兼容问题
while IFS=, read -r username group || [ -n "$username" ]; do
    # 清除字段中可能残留的DOS回车符
    group=${group%$'\r'}
    sudo useradd "$username"
    sudo usermod -a -G "$group" "$username"
done < Usernames.txt

内容的提问来源于stack exchange,提问作者Mikail Nicholas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:15:03