gpt4 book ai didi

linux - 我如何使用 shell 脚本在 linux 中获取所有用户及其 authorize_key?

转载 作者:太空狗 更新时间:2023-10-29 12:00:38 26 4
gpt4 key购买 nike

我正在使用以下脚本来获取键数。但它不起作用,还有其他方法吗?或者我应该如何修复错误?

#!/bin/bash
for i in `cat /etc/passwd` ; do\
echo $i |\
awk -F: { print `grep -o "ssh-rsa" <<< (cat /home/"$1"/ .ssh/authorized_keys ) | wc -l` }
done

最佳答案

如果只想显示按键数,可以这样做:

for homedir in $(awk -F':' '{print $6}' /etc/passwd); do
[[ -f "${homedir}/.ssh/authorized_keys" ]] && cat "${homedir}/.ssh/authorized_keys"
done

显示每个文件的计数:

for homedir in $(awk -F':' '{print $6}' /etc/passwd); do
[[ -f "${homedir}/.ssh/authorized_keys" ]] && wc -l "${homedir}/.ssh/authorized_keys"
done

按用户名显示计数:

while IFS='' read -r line || [[ -n "$line" ]]; do
USERNAME="$(echo "$line" | awk -F: '{print $1}')"
HOMEDIR="$(echo "$line" | awk -F: '{print $6}')"

if [[ -f "${HOMEDIR}/.ssh/authorized_keys" ]]; then
COUNT="$(grep -c 'ssh-' "${HOMEDIR}/.ssh/authorized_keys")"
else
COUNT=0
fi

echo "${USERNAME} has ${COUNT} keys."
done < "/etc/passwd"

关于linux - 我如何使用 shell 脚本在 linux 中获取所有用户及其 authorize_key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38300933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com