分页: 1 / 1

如何枚举账户

发表于 : 2012-02-20 23:41
自由建客
所有 UID 满 1000 的。不要告诉我用 grep 过滤 /etc/passwd 云云。

Re: 如何枚举账户

发表于 : 2012-02-21 8:46
b33e
有什么要求呢?这个算不算?

代码: 全选

ls  /home/
或者用

代码: 全选

lastlog
命令?

Re: 如何枚举账户

发表于 : 2012-02-21 8:58
YeLee
糟糕的是,我除了知道那个文件储存用户列表之外,真的找不到其它文件了。 :em20 :em20 :em20
这个还是交给楼下解答吧。 :em02 :em02 :em02

Re: 如何枚举账户

发表于 : 2012-02-21 9:34
自由建客

代码: 全选

sed -n '/^nobody:/d;s/^\([^:]*\):[^:]*:[0-9]\{4,\}:[^:]*:[^:]*:\([^:]*\):.*/\1 \2/p' /etc/passwd
这个命令太酷了!

Re: 如何枚举账户

发表于 : 2012-02-21 10:27
自由建客
再补一条

代码: 全选

awk -F: '$3>=1000 && $1 !="nobody" {print $1,$6}' /etc/passwd
感谢网友帮忙!

Re: 如何枚举账户

发表于 : 2012-02-21 11:14
枫叶饭团
结果还是/etc/passwd里找

Re: 如何枚举账户

发表于 : 2012-02-21 11:25
YeLee
其实,我关注的是建客这条命令准备用来干什么的? :em09 :em09 :em09

Re: 如何枚举账户

发表于 : 2012-02-21 11:37
自由建客
YeLee 写了:其实,我关注的是建客这条命令准备用来干什么的? :em09 :em09 :em09
每个账户主目录下可建立一个文件,保证关机的时候会被调用,以保证将内存盘的数据存盘。
其实 ~/.bash_logout 在注销时会被 bash 调用,但关机未必会发生注销事件。

不过仔细想想,还是不要这功能的好,这样灵活的机制会给用户有阻断关机的机会。
我还是继续使用我以前的脚本算了,存盘工作完全交由系统服务负责。

Re: 如何枚举账户

发表于 : 2016-10-23 22:52
自由建客
这回我是要确认一个帐户是否存在,难道只能自己过滤 /etc/passwd? :em25

Re: 如何枚举账户

发表于 : 2016-10-24 9:52
qy117121
过滤吧

Re: 如何枚举账户

发表于 : 2016-10-24 11:01
susbarbatus
自由建客 写了:这回我是要确认一个帐户是否存在,难道只能自己过滤 /etc/passwd? :em25
id(1) 不行吗?

Re: 如何枚举账户

发表于 : 2016-10-24 11:15
lilydjwg
自由建客 写了:这回我是要确认一个帐户是否存在,难道只能自己过滤 /etc/passwd? :em25
理论上来说,你过滤 /etc/passwd 也不行。

什么叫「帐户存在」呢?它能登录到系统中?那你得问 PAM。getent passwd USER/UID 可以获取用户的 passwd 条目。
如果能够拥有自己 UID、文件和进程,那么 uid_t、pid_t 的所有可能的值都存在。

Re: 如何枚举账户

发表于 : 2016-10-24 12:50
自由建客
lilydjwg 写了:
自由建客 写了:这回我是要确认一个帐户是否存在,难道只能自己过滤 /etc/passwd? :em25
理论上来说,你过滤 /etc/passwd 也不行。

什么叫「帐户存在」呢?
给定一个帐户名,看是否有对应 >=1000 的 uid

Re: 如何枚举账户

发表于 : 2016-10-24 14:28
lilydjwg
自由建客 写了: 给定一个帐户名,看是否有对应 >=1000 的 uid
那你用 getent passwd 吧。

Re: 如何枚举账户

发表于 : 2016-10-25 11:56
YeLee
楼主好,又来挖自己啊 :Adore