分享
 
 
 

Linux 用户(User)查询篇

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

一、用户查询工具的原理;

在用户管理中,用户查询是通过几个常用的工具来完成的,比如id 、finger、groups、users ... ... ,我们都知道用户的配置文件是/etc/passwd,用户组的配置文件是/etc/groups 文件,我们对用户的查询除了通过查询工具以外,我们还能直接查看用户和用户组的配置文件来达到查询的目的;

用户查询工具的原理也是读取与用户和用户组有关的配置文件,然后按一定的规则和条件输出,用户和用户组配置文件很重要,所以您有必要先读一下关有用户管理的文档:

《Linux 用户(user)和用户组(group)管理概述》

《用户(user)和用户组(group)配置文件详解》

二、用户(User)和用户组(Group)查询工具;

1、id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组;

id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和GID等;id 用法极为简单;我们举个例子说明一下;

语法格式: id [参数] [用户名]

至于有哪些参数,自己查一下 id --help 或man id ;如果id后面不接任何参数和任何用户,默认显示当前操作用户的用户名、所归属的用户组、UID和GID等;

实例一:不加任何参数和用户名;

[beinan@localhost ~] $ id

uid=500(beinan) gid=500(beinan) groups=500(beinan)

注解:在没有加任何参数的情况下,查询的是当前操作用户的用户名、UID 、GID 和所处的主用户组和附属用户组;在本例中,用户名是beinan,UID是500,所归属的主用户组是beinan,GID是500 ;

实例二: id 后面接用户名;

如果我们想查询系统中用户的UID和GID 相应的内容,可以直接接用户名,但用户名必须是真实的 ,能在/etc/passwd中查到的;

[beinan@localhost ~] $ id linuxsir

uid=505(linuxsir) gid=502(linuxsir) groups=502(linuxsir),0(root),500(beinan)

注解:查询用户linuxsir 的信息,用户linuxsir ,UID 为505,所归属的主用户组是linuxsir,主用户组的GID是502;同时linuxsir用户也是GID为0的root用户组成员,也是GID为500用户组beinan的成员;

这个例子和实例一在用户组方面有所不同,我们在 《Linux 用户(user)和用户组(group)管理概述》 中有提到;用户和用户组的对应关系,可以是一对一、一对多、多对一、或多对多的交叉关系,请参考之;另外您还需要掌握《用户(user)和用户组(group)配置文件详解》一文;

2、finger 工具:用来查询用户信息,侧重用户家目录、登录SHELL等;

finger 工具侧重于用户信息的查询;查询的内容包括用户名(也被称为登录名Login),家目录,用户真实的名字(Name)... ... 办公地址、办公电话;也包括登录终端、写状态、空闭时间等;

我们最常用finger 来查询用户家目录、用户真实名、所用SHELL 类型、以及办公地址和电话,这是以参数 -l 长格式输出的;而修改用户的家目录、真实名字、办公地址及办公电话,我们一般要能过chfn命令进行;

语法格式:

finger [参数选项] [用户名]

-l 采用长格式(默认),显示由-s选项所包含的所有信息,以及主目录、办公地址、办公电话、登录SHELL、邮件状态、.plan、.project和.forward;

-m 禁止对用户真实名字进行匹配;

-p 把.plan和.project文件中的内容省略;

-s 显示短格式,用户名(也被称为登录名Login)、真实名字(NAME)、在哪个终端登录(Tty)、写状态、空闲时间(Idle)、登录时间(Login Time)、办公地点、办公电话等;

至于finger 有哪些参数,您可以通过 finger --help 或man finger 来获取,我们在本文中以实例讲述最常用的参数;

实例一:不接任何参数,也不指定查询用户名;默认为加了-s参数;

[beinan@localhost ~] $ finger

Login Name Tty Idle Login Time Office Office Phone

beinan beinan sun tty1 1:39 Nov 2 08:27

linuxsir linuxsir open tty2 2 Nov 2 10:03 linuxsir o +1-389-866-771

等价命令

[beinan@localhost ~] $ finger -s

注解:不加任何参数,也没有指定查询哪个用户,finger 会以默认以短格-s 来输出登录本机的所有用户的用户名(也被称为登录名Login)、真实名字(NAME)、在哪个终端登录(Tty)、写状态、空闲时间(Idle)、登录时间(Login Time)、办公地点、办公电话等;

在这个例子中,有beinan用户登录,真实名字是beinan sun (这个名字是用户的真实名字,如果在添加用户时没有设置,是不会显示的),在tty1终端登录,空闭时间是1分39秒,登录时间是Nov /2/08:27 ,没有办公室名称,没有办公电话;

请对照本例中beinan用户记录的解说,我们来看看本例中的 linuxsir用户信息;应该不难。

关于写状态,如果在Tty 后面 没有任何输出,表示正在写入,如果有*出现,表示没有写入或被禁止,比如下面的例子,ftp用户没有通过终端登录系统,因为Tty是*,同时Tty后面还有一个* ,表示禁止写入或没有写入状态(当用户没有登录时);

[beinan@localhost ~] $ finger -s ftp

Login Name Tty Idle Login Time Office Office Phone

ftp FTP User * * No logins

我们可以以短格式的来查询某个用户信息以短格式输出,比如下面的例子;

[beinan@localhost ~] $ finger -s beinan

实例二:关于长格式的用户信息的输出 -l 参数的实例;

finger -l 如果不加用户名的情况下,可以列出所有通过tty登录的用户信息;如果您想查询某个用户,就直接指定用户,可以指定一个或多个;什么是tty登录?如果您在全屏文本界面操作的话,您可以通过按CTRL+F2或CTRL+F3 或CTRL+F4等, 以几个不同的用户登录到主机上,您就会看到,每个用户都有不同的tty;

[beinan@localhost ~] $ finger -l

[beinan@localhost ~] $ finger -l beinan linuxsir 注:可以同时查询几个用户信息,以长格式输出;

[beinan@localhost ~] $ finger beinan

Login: beinan Name: beinan sun

Directory: /home/beinan Shell: /bin/bash

On since Wed Nov 2 08:27 (CST) on tty1 2 hours 29 minutes idle

On since Wed Nov 2 10:50 (CST) on pts/0 from :0.0

No mail.

No Plan.

在本例中,所查询的用户是beinan,真实名字是beinan sun ,家目录位于 /home/beinan ,所用SHELL类型是bash ;然后就是通过哪个终端登录的,登录时间,是不是有mail ,有Plan 等;

实例三:参数组合的例子;

[beinan@localhost ~] $ finger -lp beinan

Login: beinan Name: beinan sun

Directory: /home/beinan Shell: /bin/bash

On since Wed Nov 2 08:27 (CST) on tty1 2 hours 36 minutes idle

On since Wed Nov 2 10:50 (CST) on pts/0 from :0.0

No mail.

注解:查询beinan用户信息,以长格式输出,并且不输出.Plan和.Project的内容;

实例四: finger -s 和w 及who的比较;

对于finger 就说这么多吧,极为简单的工具,当用到-s 参数时,您最好和w和who工具对照,看看finger -s 和w 及who的输出有什么异同,w和who是查询哪些用户登录主机的;而finger -s 呢,无论是登录还是不登录的用户都可以查;但所查到的内容侧重有所不同;自己看看例子;

[beinan@localhost ~] $ finger -s

Login Name Tty Idle Login Time Office Office Phone

beinan beinan sun tty1 3:03 Nov 2 08:27

beinan beinan sun pts/0 Nov 2 10:50 (:0.0)

linuxsir linuxsir open tty2 1:26 Nov 2 10:03 linuxsir o +1-389-866-771

[beinan@localhost ~] $ w

11:30:36 up 3:04, 3 users, load average: 0.30, 0.15, 0.10

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

beinan tty1 - 08:27 3:03m 2:52 0.00s /bin/sh /usr/X11R6/bin/startx

linuxsir tty2 - 10:03 1:26m 0.01s 0.01s -bash

beinan pts/0 :0.0 10:50 0.00s 0.16s 0.00s w

[beinan@localhost ~] $ who

beinan tty1 Nov 2 08:27

linuxsir tty2 Nov 2 10:03

beinan pts/0 Nov 2 10:50 (:0.0)

3、查询登录主机的用户工具:w 、who 、users

w、who和users工具,是查询已登录当前主机的用户;另外finger -s 也同样能查询;侧重点不一样;请自己对比着看;毕竟简单,这里只是介绍 ;

[beinan@localhost ~] $ w

12:09:56 up 3:43, 7 users, load average: 0.16, 0.10, 0.04

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

beinan tty1 - 08:27 3:42m 3:09 0.00s /bin/sh /usr/X11R6/bin/startx

linuxsir tty2 - 10:03 2:06m 0.01s 0.01s -bash

beinan pts/0 :0.0 11:36 1:09 0.15s 0.15s bash

beinan pts/1 :0.0 11:37 1:12 0.21s 0.21s bash

beinan pts/2 :0.0 12:02 6:52 0.09s 0.09s bash

beinan pts/3 :0.0 12:05 12.00s 0.11s 0.06s ssh xmbnnbdl@linuxsir.org -p 17007

beinan pts/4 :0.0 12:06 0.00s 0.21s 0.00s w

[beinan@localhost ~] $ who

beinan tty1 Nov 2 08:27

linuxsir tty2 Nov 2 10:03

beinan pts/0 Nov 2 11:36 (:0.0)

beinan pts/1 Nov 2 11:37 (:0.0)

beinan pts/2 Nov 2 12:02 (:0.0)

beinan pts/3 Nov 2 12:05 (:0.0)

beinan pts/4 Nov 2 12:06 (:0.0)

[beinan@localhost ~] $ users

beinan beinan beinan beinan beinan beinan linuxsir

4、groups 用户所归属的用户组查询;

groups 用法很简单,就是查询用户所归属哪个或哪些用户组;

语法格式: groups 用户名

实例:

[beinan@localhost ~] $ groups beinan 注:查询beinan所归属的用户组;

beinan : beinan 注:beinan 是beinan用户组下的成员;

[beinan@localhost ~] $ groups linuxsir 注:查询linuxsir用户所归属的用户组;

linuxsir : linuxsir root beinan 注:linuxsir用户是linuxsir用户组、beinan用户组、root用户组成员;

groups 主要是查询用户所归属的用户组名,最好和id命令相对比;这样对这两个工具都有所了解;

三、后记;

本文是很简单的文档,花十分钟就能看得完,但对我来说既然想写入门级系列文档了,再简单也得告诉初学者,不是吗?写本文的时候,我已经把查询用户的工具列为《Linux 用户及用户组管理工具介绍》的文档中,但写着写着发现文档太长了,所以只好把用户的查询做为独立的一篇先发出来;

我的下一篇文档计划是接着写用户管理的相关工具,比如用户的添加、删除、修改等工具;如果顺利的话,会在这两天完成,不过这仅仅是计划;因为在写超级权限控制的时候,我也说过用一到两天,而我却写十二天;

四、参与修正本文;

在以后本文档中,我想让大家来参与修正,毕竟一个人写的东西肯定会存在问题,几个脑袋总比一个脑袋要好的多吧;请大家多多指点;比如本文中关于用户查询工具工作原理可能表达不太准确或不足;另外w、who查询在线用户的原理没有提到,如果哪位弟兄有时间可以把查询在线用户的工具独列出来写成文档;谢谢;

五、致谢;

六、相关文档;

《Linux 用户(user)和用户组(group)管理概述》

《用户(user)和用户组(group)配置文件详解》

《Linux 用户(User)查询篇》

《Linux 用户管理工具介绍》

《Linux 系统中的超级权限的控制》

《在Linux系统中,批量添加用户的操作流程》

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有