我尝试排除所有系统用户并尝试在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"
但两者都产生了空输出。 (没有错误信息)。那么这样做的正确方法是什么?
答案 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