我需要帮助编写Bourne / BASH脚本,通过获取系统密码文件中包含的密码数来确定系统的潜在用户数。
我试过/ etc / passwd。总是说“权限被拒绝”。我改变自己作为root用户,同样的问题。我无法弄清楚如何做到这一点。
答案 0 :(得分:0)
对于普通用户,文件/etc/passwd
通常不受读保护,因此您需要调查系统中出现这种情况的原因。但即使您可以阅读它,它也会包含许多技术用户(例如lp
,syslog
,bin
,daemon
等等;我不确定你想要包括那些。要过滤掉这些,您需要一个已知技术用户的名称列表,例如: G:
egrep -v '^(daemon|bin|sys|sync|games|man|lp|mail|news|uucp|proxy|nobody|syslog)' /etc/passwd
答案 1 :(得分:0)
假设您的非系统用户帐户开始编号为500:
getent passwd | awk -F':' '{ if ($3 >= 500) print $1}'
如果他们从1000开始:
getent passwd | awk -F':' '{ if ($3 >= 1000) print $1}'
下一步:
计算高ID“无人”帐户的数量(例如,“nfsnobody”)。这是从上述命令返回的任何用户,看起来像是虚拟帐户。
将| wc -l
附加到上面使用的命令中,并从步骤1中减去计数。
这应该提供系统上非系统帐户的数量(例如,“潜在”用户)。