BASH脚本获取潜在用户的数量

时间:2013-11-13 11:00:13

标签: linux bash unix

我需要帮助编写Bourne / BASH脚本,通过获取系统密码文件中包含的密码数来确定系统的潜在用户数。

我试过/ etc / passwd。总是说“权限被拒绝”。我改变自己作为root用户,同样的问题。我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:0)

对于普通用户,文件/etc/passwd通常不受读保护,因此您需要调查系统中出现这种情况的原因。但即使您可以阅读它,它也会包含许多技术用户(例如lpsyslogbindaemon等等;我不确定你想要包括那些。要过滤掉这些,您需要一个已知技术用户的名称列表,例如: 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}'

下一步:

  1. 计算高ID“无人”帐户的数量(例如,“nfsnobody”)。这是从上述命令返回的任何用户,看起来像是虚拟帐户。

  2. | wc -l附加到上面使用的命令中,并从步骤1中减去计数。

  3. 这应该提供系统上非系统帐户的数量(例如,“潜在”用户)。