`

Linux 用户(User)查询篇

阅读更多

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

在用户管理中,用户查询是通过几个常用的工具来完成的,比如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用户(User)查询篇[收集].pdf

    Linux用户(User)查询篇[收集].pdf

    Linux下配置FTP_最全面,最准确

    1.安装vsftpd 1.rpm -ivh vsftpd-2.0.5-16.el5_4.1.x86_64.rpm 2.#使用用户列表 3.echo "userlist_deny=NO" >> /etc/vsftpd/vsftpd.conf 2.加用户 1.useradd yifangyou 2.passwd...上一篇:linux下的压缩和解压 .

    linux内核调试分析指南

    linux内核调试分析指南--上篇 本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:...

    Linux操作系统基础教程

    网路上查询状况的指令.................................................................................................17 八. 网路指令.....................................................................

    mysql 8.0.16 winx64及Linux修改root用户密码 的方法

    select host, user, authentication_string from mysql.user ; host:允许用户登录的ip‘位置’%表示可以远程; user:当前数据库的用户名; authentication_string:用户密码(后面有提到此字段); 二、 设置(或...

    cmd操作命令和linux命令大全收集

    net user 查看有哪些用户 net user 帐户名 查看帐户的属性 net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限 net start 查看开启了哪些服务 net start 服务名 开启服务...

    linux wine中文手册

    在easywine论坛上已经找到新版的翻译文档,但是很多地方不怎么满意,我这几天正好需要这方面的知识,就对着现在的《wine user guide》翻译和参考easywine论坛上那篇已经翻译好的文章修改了一下,自己花了一点时间,...

    Linux萌新自学笔记

    Linux基础篇 1.Linux的目录结构 /bin(重点)是Binary的缩写,这个目录存放一些经常使用的命令 /sbin s就是Super User的意思,这里存放的是系统管理员使用的命令 /home(重点)存放普通用户的主目录,在Linux中每一...

    [14本经典Android开发教程]-8-Linux内核阅读心得体会

    [14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup...

    [14本经典Android开发教程]-9-Android2.3用户手册

    [14本经典Android开发教程] 9 Android2 3用户手册 已上传8本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    Oracle数据库常用命令整理(实用方法)

    这篇文章主要介绍了oracle查询语句,有助于新手迅速熟悉ORACLE基本语法有助于新手迅速熟悉ORACLE基本语法,需要的朋友可以收藏下 oracle查看用户状态 select username,account_status from dba_users; 查看所有...

    MySQL命令大全

    MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    MYSQL常用命令大全

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    Git权威指南PDF完整版

    第1篇 初识Git 第1章 版本控制的前世和今生/ 2 1.1 黑暗的史前时代/ 2 1.2 CVS—开启版本控制大爆发/ 5 1.3 SVN—集中式版本控制集大成者/ 7 1.4 Git—Linus 的第二个伟大作品/ 9 第2章 爱上 Git 的理由/ 11 2.1 ...

    Centos 7安装Tex Live 2019

    TEXLive是TEX的一个发行版,它是由TUG(TEX User Group,TEX用户组)发布的,可以在类UNIX/Linux、Mac OS X和Windows等不同的操作系统平台下安装使用,并且提供相当可靠的工作环境。 镜像下载 选用清华镜像源中的Tex...

    在 Rust 中实现的 Kubernetes 操作符示例

    如果您使用 /etc/rancher/k3s/k3s.yaml 中的/etc/rancher/k3s/k3s.yaml以非 root 用户身份访问 Kubernetes 集群,请确保sudo chown $USER /etc/rancher/k3s/k3s.yaml 。此外,export KUBECONFIG=/etc/rancher/k3s/k3...

    PhotoFun-图趣超轻图片网站系统 图片网站源码 自适应图片网站源码

    不过,麻雀虽小,五脏俱全,PhotoFun-图趣除了具有图片管理的功能之外,还有用户管理、社交点评、在线消息等功能,特别适合小型摄影师团体或个人搭建作品展览网站;当然,PhotoFun-图趣简单大气的风格也适合一些企业...

    32位嵌入式实验设备与配套模组

    │ │ │ eCos User Guide.pdf │ │ │ Embedded Software Development with eCos.pdf │ │ │ The eCos Component Writer's Guide.pdf │ │ │ │ │ ├─跟我学eCos嵌入式操作系统在SPCE3200上的应用——环境...

Global site tag (gtag.js) - Google Analytics