任何人都可以告诉我:x:用于什么?

时间:2014-09-10 15:05:33

标签: bash shell grep

谁能告诉我什么:x:用于?我在网上搜索的结果并不多。一个例子如下:

`grep $USER:x: /etc/passwd'

谢谢, 戴夫

1 个答案:

答案 0 :(得分:4)

$USER:x:是您grep/etc/passwd中搜索的模式。它将返回包含$USER:x:的行,其中$USER是您当前在shell中使用的用户。因此,该命令将返回定义用户的/etc/passwd行。

如果您检查/etc/passwd文件的存储方式,那么您会看到第二个块通常是x,这意味着密码已加密并存储在/etc/shadow文件中。在旧机器中,密码可以存储在/etc/passwd中,但它已被更改,因为此文件对任何用户都是可读的,而/etc/shadow只是root用户。

也就是说,使用$USER:x,您确保只是恰好匹配此用户。事实上,^$USER:就足够了,因为:不能出现在用户名中。

另一种方法是使用awk例如:

awk -F: -v user=$USER '$1==user' /etc/passwd

请参阅/etc/passwd的图形说明(对不起,它有点大!!找不到任何其他较小的英文版):

  

enter image description here