使用egrep排除系统用户

时间:2015-01-21 00:17:06

标签: bash grep solaris

我尝试排除所有系统用户并尝试在Solaris 10中获得真实用户列表。我尝试了两种方法:

 egrep -v "root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd" /etc/passwd

cat /etc/passwd | egrep -v "root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd"

但两者都产生了空输出。 (没有错误信息)。那么这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

问题是passwd条目包含一个shell字段,通常看起来像/bin/sh/usr/bin/bash等。您已将序列bin包含在排除列表中(尝试排除bin用户)并排除每个条目。

尝试限制过滤,例如要求匹配从行的开头开始:

egrep -v "^(root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd)" /etc/passwd