如何在不使用“用户名”的情况下 grep 查找密码文件条目

如何在不使用“用户名”的情况下 grep 查找密码文件条目

可以集成 who 命令来查找当前登录用户的密码文件条目吗?

答案1

是的,你可以制作这样的脚本:

for who_user in $(who|cut -f1 -d' '|uniq)
do
    getent passwd|grep ${who_user}
done

如果您有足够的权限,您可以在影子文件中查找密码,如下所示:

for who_user in $(who|cut -f1 -d' '|uniq)
do
    cat /etc/passwd|grep ${who_user}
    cat /etc/shadow|grep ${who_user}
done

正如@John WH Smith 所提到的,不需要 grep:

for who_user in $(who|cut -f1 -d' '|uniq)
do
    getent passwd ${who_user}
done

谢谢约翰

答案2

也许是这样的:

who | awk '{print $1}' | grep -f - /etc/passwd

awk '{print $1}'将输出用户名,使用-f -告诉它从标准输入获取 grep 模式的选项将其传递给 grep。这将打印出/etc/passwd登录用户的条目:

别名@主机:~$WHO
别名 tty7 2015-03-10 13:02
根tty1 2015-03-10 18:19
别名 pts/0 2015-03-10 14:39 (:0)
别名@主机:~$谁| awk '{print $1}' | grep -f - /etc/passwd
根:x:0:0:根:/根:/bin/bash
aliaa:x:1000:1001:Alaa Ali,,,:/home/aliaa:/bin/bash

相关内容