本文目录导读:

- 方法一:通过 MySQL 数据库批量添加(最推荐,适用于 FreeRADIUS + Daloradius 或纯数据库存储)
- 方法二:通过 FreeRADIUS 的
users文件批量添加(适用于简单文件存储) - 辅助:生成随机密码的脚本(配合方法一使用)
- 重要提示
批量添加 RADIUS 用户通常需要操作 RADIUS 的后端数据库(常见的是 MySQL/MariaDB),或者直接修改其配置文件(如 users 或 clients.conf,取决于你的 RADIUS 软件和配置)。
以下提供两种最常见场景的批量添加脚本方法,请根据你的实际情况选择。
通过 MySQL 数据库批量添加(最推荐,适用于 FreeRADIUS + Daloradius 或纯数据库存储)
大多数现代 RADIUS 系统(如 FreeRADIUS 配合 MySQL)的用户认证信息存储在数据库的 radcheck、raduser 等表中。
以下是一个 Shell 脚本 示例,从 CSV 文件中读取用户名和密码,批量插入到 radcheck 表。
准备用户 CSV 文件 (users.csv)
user1,password123 user2,password456 user3,password789
Shell 批量添加脚本 (add_radius_users.sh)
#!/bin/bash
# 数据库连接信息 (根据你的环境修改)
DB_HOST="localhost"
DB_USER="radius"
DB_PASS="your_db_password"
DB_NAME="radius"
# CSV 文件路径
CSV_FILE="users.csv"
# 检查 CSV 文件是否存在
if [ ! -f "$CSV_FILE" ]; then
echo "错误: 文件 $CSV_FILE 不存在"
exit 1
fi
# 读取每一行并插入数据库
while IFS=',' read -r username password; do
# 跳过空行或格式错误的行
if [ -z "$username" ] || [ -z "$password" ]; then
echo "跳过无效行: $username,$password"
continue
fi
# 清理可能的空格
username=$(echo "$username" | xargs)
password=$(echo "$password" | xargs)
echo "正在添加用户: $username"
# 插入用户名和密码到 radcheck 表
# 注意:这里假设密码使用 Cleartext-Password (明文),生产环境建议使用 MD5 或 NT-Password
mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" <<EOF
INSERT INTO radcheck (username, attribute, op, value)
VALUES ('$username', 'Cleartext-Password', ':=', '$password');
EOF
# 检查插入是否成功
if [ $? -eq 0 ]; then
echo "成功: $username"
else
echo "错误: 插入 $username 失败"
fi
done < "$CSV_FILE"
echo "批量添加完成"
运行脚本
# 给脚本执行权限 chmod +x add_radius_users.sh # 运行 ./add_radius_users.sh
通过 FreeRADIUS 的 users 文件批量添加(适用于简单文件存储)
如果你的 RADIUS 使用传统的 /etc/freeradius/3.0/users 文件(或 /etc/raddb/users),你可以通过脚本生成文件内容。
准备用户列表文件 (user_list.txt)
user1 Cleartext-Password := "password123"
user2 Cleartext-Password := "password456"
脚本:生成并追加到 users 文件
#!/bin/bash
# users 文件路径 (根据你的发行版调整)
USERS_FILE="/etc/freeradius/3.0/users"
# 用户列表文件
LIST_FILE="user_list.txt"
# 安全备份原文件
cp "$USERS_FILE" "$USERS_FILE.bak.$(date +%Y%m%d%H%M%S)"
echo "已备份原文件"
# 逐行读取并追加
while IFS= read -r line; do
# 跳过空行和注释行
[[ -z "$line" || "$line" =~ ^# ]] && continue
echo "$line" >> "$USERS_FILE"
echo "添加: $line"
done < "$LIST_FILE"
echo "批量添加完成,请重启 RADIUS 服务生效"
注意:修改 users 文件后,必须重启 RADIUS 服务:
sudo systemctl restart freeradius
或者
sudo service freeradius restart
辅助:生成随机密码的脚本(配合方法一使用)
如果你想批量生成随机密码,可以使用以下命令:
#!/bin/bash
for i in $(seq 1 10); do
username="user$(printf "%03d" $i)"
password=$(openssl rand -base64 12 | tr -dc 'a-zA-Z0-9' | head -c12)
echo "$username,$password"
done > new_users.csv
这将生成 10 个用户名(如 user001)并附带随机 12 位密码,输出到 new_users.csv。
重要提示
- 密码加密:示例中使用的是
Cleartext-Password(明文密码),出于安全考虑,生产环境建议使用加密方式:- 在 SQL 插入时使用
MD5-Password或NT-Password(SMB 哈希)。 - 或者使用 FreeRADIUS 的
radcrypt工具生成密码哈希。
- 在 SQL 插入时使用
- 权限问题:如果你使用
users文件,确保脚本以root或freerad用户运行,否则无法写入。 - 测试:在大规模添加前,先添加一个测试用户验证配置是否正确。
- 日志检查:添加后检查 RADIUS 日志(常见位置:
/var/log/radius/radutmp或/var/log/freeradius/radius.log)确保没有错误。
如果你使用的是其他 RADIUS 软件(如 Windows NPS、Cisco ACS),实现方式完全不同,请提供更多细节以便给出针对性建议。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播