egrep,从/ etc / shadow获取Salt

时间:2016-03-22 14:54:04

标签: bash grep

我正在尝试从/ etc / shadow中为用户测试grep salt。

egrep -o "test:(.*$){1}" /etc/shadow --color

返回给我:

test:$6$zy513.E6$ae7nXcZnVFb0f2H.x9I7xXTwJLZJzQtTzsdfkOSnZ7KiFxR.slWFPogXcnwZdGI9AW1n9EhFtBmozfxPebXbB0:16882:0:99999:7:::

其实我想要以下,盐:

test:$6$zy513.E6$

有谁知道如何解决我的egrep?我无法找到解决方案。

感谢。

2 个答案:

答案 0 :(得分:1)

这个怎么样:

egrep -o 'test:(\$[^$]+){2}\$' /etc/shadow --color

答案 1 :(得分:0)

您可以像这样使用awk

awk -F: '{gsub(/\$[^$]+$/, "$",$2);print $1,$2}' OFS=: /etc/shadow

-F:将字段分隔符设置为:,这样可以轻松访问字段2中的密码部分($2)。

gsub()使用的正则表达式正在替换最后一美元之后的所有内容,直到字符串结束为止。

输出:

test:$6$zy513.E6$

顺便说一下,$6部分不是盐,它是用于散列密码的散列算法类型,6代表SHA-512。盐是zy513.E6

查看Wikipedia了解详情。

更新

如果您只搜索某个用户,则在这种情况下testawk命令更改为:

awk -F: '$1=="test" {gsub(/\$[^$]+$/, "$",$2);print $1,$2}' OFS=: /etc/shadow