热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux用户(User)查询篇

文章标题:Linux用户(User)查询篇。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

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

    在用户管理中,用户查询是通过几个常用的工具来完成的,比如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 用户及用户组管理工具介绍》的文档中,但写着写着发现文档太长了,所以只好把用户的查询做为独立的一篇先发出来;


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了使用SSH免密登录的步骤,包括生成公私钥、传递公钥给被登录机、修改文件权限的操作。同时提醒用户注意私钥的传递方式,建议使用U盘等离线方式传递。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • linux 禁止指定ip访问
    linux中如何禁止指定的ip访问呢?比如被别人暴力破解,被别人使用不同的密码尝试登录:所以我想直接禁用这些ip的访问.怎么办呢?解决方案:修改配置文件etchosts.deny把 ... [详细]
author-avatar
手机用户2502896641
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有