生成系统上的服务帐户列表

时间:2016-05-17 15:42:08

标签: bash scripting

对于取证比赛,我需要生成系统中存在的服务帐户列表。我的想法是使用位于/etc/login.defs中的SYS_UID_MIN和SYS_UID_MAX参数,然后使用grep来查找该范围内的所有值。

但是,我不知道如何防止用户名匹配。有没有办法只在第二列上grep?

这是我现在的代码:

sudo -v
sysmin=$(grep ^SYS_UID_MIN /etc/login.defs | awk '{print $2}')
sysmax=$(grep ^SYS_UID_MAX /etc/login.defs | awk '{print $2}')
awk -F: '{printf $1, printf " ", print $3}' /etc/passwd | grep /[$sysmin-$sysmax]/ > sysuserslist.temp

1 个答案:

答案 0 :(得分:1)

您可以使用cut删除第二列以外的所有内容,以便grep无法匹配用户名。

cut -d 'delimiter' -f 2

将返回由'分隔符'分隔的第二个字段。默认分隔符是TAB。

http://linux.die.net/man/1/cut