gpt4 book ai didi

linux - 如何找到密码为空的 "real user"帐号?

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:25 26 4
gpt4 key购买 nike

希望扩大提问的范围here ,关于查找密码为空的用户。我想要的是过滤掉该行的系统帐户

sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

当我运行它时打印出来。

我的问题是我希望能够只显示由脚本或通过终端在我的系统中添加的密码为空的用户帐户,也就是“真实”的人,以及我创建的帐户我自己。

深度:

现在会发生什么:

~$ sudo useradd bob

~$ sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Sudo password for user: [pw]
daemon
bin
sys
[...]
rtkit
saned
usbmux
bob
~$

什么是想要的:

~$ sudo useradd bob

~$ sudo [getent command for the problem]
Sudo password for user: [pw]
bob
~$

换句话说,当我在没有密码的情况下添加 Bob 时,我希望只能看到他。

这可能措辞不当,所以请要求进一步说明。

这样做的目的是找到所有具有上述属性的用户并将其删除。因此,我不想删除系统创建的帐户。


更新 1:更正了拼写错误。


更新 2: 我发现我可以通过 ID 过滤掉所有用户,这是 getent 收到的第三个字段。

因此,通过管道运行 2 grep,如下所示:

sudo getent shadow | grep '^[^:]*:.\?:' | grep (regex) | cut -d: -f1

将完成工作。

现在,我知道我应该使用的正则表达式是 '.:.:[^(17212)]:.:.:.:.:.:.',但它只是不会带回任何匹配项。

有人可以建议任何替代方案吗?


我使用的是 Ubuntu 16.04。

感谢您的帮助。


最佳答案

用户帐号id从1000开始,低id属于系统帐号,所以需要过滤掉-id是输出的第三个字段

> getent passwd

关于linux - 如何找到密码为空的 "real user"帐号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42953248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com