一、用户查询工具的原理;
在用户管理中,用户查询是通过几个常用的工具来完成的,比如id 、finger、groups、users ... ... ,我们都知道用户的配置文件是/etc/passwd,用户组的配置文件是/etc/groups 文件,我们对用户的查询除了通过查询工具以外,我们还能直接查看用户和用户组的配置文件来达到查询的目的;
用户查询工具的原理也是读取与用户和用户组有关的配置文件,然后按一定的规则和条件输出,用户和用户组配置文件很重要,所以您有必要先读一下关有用户管理的文档:
二、用户(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 的基础操作。
内容概要:本文档提供了 CentOS 7、8 和 9 操作系统的常用命令集锦。主要包括内核版本和发布日期,文件操作命令(如文件创建、查看、修改、删除、查找、权限修改等),别名和链接创建,登录失败锁定机制,用户权限...
本博客主要是用于记录自己平时遇见或者涉及到的知识点,主要是用于扩展自己的知识点,防止遗漏丢失。许多是转载收集其他大佬的思想及技术,若有冒犯,请及时联系本人,收到消息后,我会及时改正。
命令行是Linux系统中最常用的操作方式之一,掌握常用的命令行操作对于提高工作效率非常关键。例如,`ls`用于列出目录内容,`cd`用于切换目录,`pwd`显示当前工作目录等。此外,还应该学习如何使用文本编辑器(如vi或...
知识点: mcserv 是一个 Midnight Commander 服务进程,能够提供文件管理器服务,允许远程机器上的用户通过 Midnight Commander 文件管理器操作本机文件。 20. Mysql:提供了 SQL 数据库引擎服务。 知识点: Mysql...
这些都是Linux系统管理中常用的基本命令,对于熟悉Linux操作的用户来说至关重要。 6. 对文章的转述及尊重原创: 文章最后提到了作者转载了青龙一笑的文章,并表达了尊重原创的态度。这不仅体现了网络内容共享的道德...
Linux Shell编程是Linux系统中非常重要的一个环节,它允许用户通过命令行接口执行各种操作,进行自动化任务处理。shell作为用户与操作系统之间的桥梁,提供了一系列强大的功能,包括脚本编写、文件管理、进程控制等...
- 提供关于`/alidata`目录下的软件配置及常用命令的详细介绍。 #### 五、关键技术细节 - **Nginx**: - 版本: 1.4.4 - 作为高性能的Web服务器和反向代理服务器,在处理静态内容方面表现出色。 - **Apache**: - ...
常用的是通过JVM进程ID连接,使用`./as.sh --port 3658 --telnet`命令,然后在另一个终端窗口中使用`telnet localhost 3658`,输入进程ID连接。 三、主要命令介绍 1. `help`:显示所有可用的命令。 2. `asciitable...
写在前面: 这是我学习的Linux入门笔记,我会分三篇写出,最后我还会总结Linux的常用命令,这个系列可以让你入门学会Linux命令,手写笔记。本套笔记使用了:xshell,xftp,Vm,CentOS6 (分三篇) 若你喜欢点赞支持^ _...
而“工具”则可能涵盖了一些常用的Linux工具,如`nohup`、`screen`、`systemd`等,用于后台运行服务、保持服务在异常情况下的存活,或者用作服务管理。 根据提供的压缩包子文件名,`start-service-cmb.sh`和`stop-...
BusyBox 是一个集成了一百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux...
- **别名和函数**:用户可以定义别名简化常用命令,编写函数执行复杂任务。 - **主题和提示符**:Zsh支持丰富的主题定制,提供可自定义的提示符样式。 - **增强的通配符处理**:Zsh的通配符匹配规则比Bash更为...
BusyBox 是一个集成了一百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux...
本文概述了Linux操作系统的基础知识,汇集了众多经过实践检验的常用命令。内容详实丰富,对每个命令都进行了深入的解释,并提供了实例说明。目前,官方尚未提供v2版本的下载链接。 在整理Linux复习资料的过程中,我...
CrackLib可以很容易的在Internet上找到, 我现在使用的版本是2.7, 跑在我的i586/RedHat Linux和i386/Slackware Linux上. 如果你无法找到它的话, 赶紧去补一补如何在Internet 上查找特定的软件吧, 因为这是一项非常...
注: 1、以下测试在ubuntu 9.10上进行,...简单解释:shell命令执行时的环境变量默认是 $PATH ,即到 $PATH 下找命令该如何运行,shell常用的命令在 $PATH 都有,所以可以直接运行。用户新建的文件所在的路径不在 $PA