基于CSV/Excel通过Bash脚本生成指定LDIF文件需求
批量生成LDIF移除脚本指南
输入表格准备
请填写Excel或CSV表格,表格需包含以下两列:
- uiddn列(Excel中对应A1单元格):填写用户的完整区分名(DN)
- nIds列(Excel中对应B1单元格):填写需要移除的nIds属性值
示例表格数据
| uiddn | nIds |
|---|---|
| uid=uid12345,cn=abc,cn=def,dc=xyx | 7_54321 |
| uid=uid6789,cn=abc,cn=def,dc=xyx | 5_9876 |
Bash脚本实现
将填写好的表格另存为CSV格式(建议命名为input.csv),使用以下脚本读取数据并生成目标LDIF文件:
#!/bin/bash # 配置文件路径 INPUT_FILE="input.csv" OUTPUT_REMOVE_NID="removenid.ldif" OUTPUT_GROUP_REMOVE="groupremoval.ldif" # 初始化输出文件 > "$OUTPUT_REMOVE_NID" > "$OUTPUT_GROUP_REMOVE" # 跳过表头,循环处理每一行数据 tail -n +2 "$INPUT_FILE" | while IFS=, read -r user_dn nid_value; do # 写入removenid.ldif内容 cat >> "$OUTPUT_REMOVE_NID" <<-EOF dn: $user_dn changetype: modify delete: nIds nIds: $nid_value - EOF # 写入groupremoval.ldif内容 cat >> "$OUTPUT_GROUP_REMOVE" <<-EOF dn: cn=ghk,cn=klm,cn=opu,dc=xyx changetype: modify delete: member member: $user_dn EOF done echo "LDIF文件生成成功:$OUTPUT_REMOVE_NID、$OUTPUT_GROUP_REMOVE"
生成的LDIF文件说明
1. removenid.ldif
用于批量删除用户的nIds属性,最终内容格式如下:
dn: uid=uid12345,cn=abc,cn=def,dc=xyx changetype: modify delete: nIds nIds: 7_54321 - dn: uid=uid6789,cn=abc,cn=def,dc=xyx changetype: modify delete: nIds nIds: 5_9876 -
2. groupremoval.ldif
用于批量将用户从指定LDAP组中移除,最终内容格式如下:
dn: cn=ghk,cn=klm,cn=opu,dc=xyx changetype: modify delete: member member: uid=uid12345,cn=abc,cn=def,dc=xyx dn: cn=ghk,cn=klm,cn=opu,dc=xyx changetype: modify delete: member member: uid=uid6789,cn=abc,cn=def,dc=xyx
内容的提问来源于stack exchange,提问作者Satyajit
相关产品推荐
相关产品推荐

