对于取证比赛,我需要生成系统中存在的服务帐户列表。我的想法是使用位于/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
答案 0 :(得分:1)
您可以使用cut
删除第二列以外的所有内容,以便grep
无法匹配用户名。
cut -d 'delimiter' -f 2
将返回由'分隔符'分隔的第二个字段。默认分隔符是TAB。