如何将所有 FreeIPA 用户导出到 csv 文件?
答案1
这个命令对我有用:
ipa user-find --all | grep -E "User Login|First|Last|UID|Email" > IPA_RAW.txt
之后,使用此 perl 行转换格式:
perl -ne 'chomp; print $_ . (($. % 8) ? "," : "\n")' IPA_RAW.txt | awk "Add your filters here" > users-list.csv
谢谢
答案2
迟来的但完整的“复制/粘贴”答案(基于以前的答案 - 谢谢 - 我本可以在写完 ipa2json 后退出);满足现在和将来的需求。
导出用户:
ipa user-find --all > ipa.txt
如果输出被截断,请使用以下命令调整限制并重试:
ipa config-mod --searchrecordslimit=######
要使用此方法,您需要在打算处理 ipa.txt 的机器(或容器)上安装 nodejs;为此,我建议使用 nvm:
# install nodejs version manager (nvm) for the current user (not root!)
wget https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
# install the latest nodejs long time support (lts) version for the current user
nvm install --lts
为当前用户安装所需的脚本作为命令行工具:
npm i -g ipa2json # to convert ipa output to json
npm i -g equalizejson # to spread missing fields in every record
npm i -g json2csv # to convert the json to csv
使用以下方法将 ipa 输出转换为 json:
ipa2json ipa.txt > ipa.json
均衡 json (您需要所有实例中的所有字段才能正确进行 csv 转换)并转换为 csv:
equalizejson ipa.json | json2csv > ipa.csv
要卸载 nvm、nodejs 和脚本,您只需删除$NVM_DIR
文件夹(通常是~/.nvm
),如在终端中输入“nvm”时所记录的那样。