计算一下 /etc/passwd 中没有密码的条目的数量?

计算一下 /etc/passwd 中没有密码的条目的数量?

我如何计算/etc/password没有密码的条目数?

答案1

思考要查找未设置密码的条目,您必须使用/etc/shadow

sudo grep -Ec '\!|\*' /etc/shadow

!字符*表示用户没有 Unix 密码,例如:

root:!:17092:0:99999:7:::
colord:*:17086:0:99999:7:::

中的条目/etc/shadow/etc/passwd

您可以获得仅包含用户名的干净列表,而不是计数:

sudo grep -E '\!|\*' /etc/shadow | grep -o '^[^:]*'

您可以使用-v反转匹配并计数或列出用户当然是密码:

sudo grep -vE '\!|\*' /etc/shadow | grep -o '^[^:]*'

笔记:

  • -E使用 ERE,这样我们就可以|交替使用
  • -c返回行数,而不是行本身
  • -o只打印匹配的部分
  • '^[^:]*'从行首到第一个:

答案2

echo $(($(cat /etc/passwd | egrep "^*:x" | wc | awk '{print $1}')-$(cat /etc/passwd | wc | awk '{print $1}')))

这只计算没有密码的条目

相关内容