首页 > 编程知识 正文

find查找某个用户的文件(shell脚本判断文件是否存在)

时间:2023-05-06 10:01:12 阅读:82390 作者:3537

编译来源: https://www.2日geek.com/6 -能源之路-检查-用户名称-和其他信息/

作者: Prakash Subramanian

译者: mj七人

这是一个非常基本的话题,在Linux上,每个人都知道如何使用id搜索用户信息。 一些用户从/etc/passwd文件中过滤用户信息。

使用其他命令获取用户信息。

你可能会想,为什么要讨论这个基础话题? 我也这么认为。 因为除了这两个没有更好的方法了。 但是,我们也有很好的选择。

这些命令提供了比这些命令更详细的信息,对初学者非常有用。

这是允许管理员在Linux上搜索用户信息的基本命令之一。 所有Linux都是文件,甚至用户信息都存储在一个文件中。

请阅读:

如何显示在Linux上创建用户的日期如何在Linux上显示用户属于哪个组Linux上强制用户在下次登录时更改密码的所有用户都将添加到/etc/passwd文件中。 此处保留用户名和其他详细信息。 在Linux上创建用户时,用户的详细信息会存储在/etc/passwd文件中。 passwd文件将各用户的详细信息保存在一行中,包含7个字段。

有六种方法可以显示用户信息:

id打印指定用户名的用户和组信息。 getent :从nameserviceswitch库中检索条目。 /etc/passwd :文件包含每个用户的详细信息。 每个用户的详细信息是包含七个字段的一行。 finger :用户信息查询程序lslogins :显示系统中现有用户的信息compgen :是bash内置命令,显示用户可用的所有命令。

1) 使用 id 命令

id表示身份(identity )。 输出实际有效的用户和组ID。 也可以输出指定用户或当前用户的用户和组的信息。

# #每日geek

GID=1000 (每天) GID=1000 )每天组=1000 )每天组),4 ) ADM (,24 )光驱,27 )仿真,30 )芯片)

上述输出的详细情况如下所示。

uID (1000 /日geek ) :用户ID和用户名GID ) 1000 /日geek ) :显示用户的组id和名称组。 显示用户的其他组id和名称

2) 使用 getent 命令

getent命令。 在name service交换机库支持的数据库中的

getent命令会显示用户详细信息(如/etc/passwd文件),并将每个用户的详细信息组合成一行,由七个字段组成。

# #通用密码

root : x :0:0336003360 root :/root : /俊逸之犬/bash

俊逸的狗: x : x : 13360 13360俊逸的狗:/俊逸的狗:/s俊逸的狗/nologin

Daemon : x : x :2336023: Daemon :/s俊逸的狗:/s俊逸的狗/nologin

ADM : x : x :4: ADM :/var/ADM :/s俊逸的狗/nologin

LP : x 33604336073360 LP :/var/Spool/LPD :/s俊逸之犬/诺罗格in

sync : x :5:03360 sync :/s俊逸的狗:/俊逸的狗/sync

shut down : x :633600: shut down :/s俊逸的狗:/s俊逸的狗/shutdown

halt : x :73:0: halt :/s俊逸的狗:/s俊逸的狗/halt

mail : x :8336012: mail :/var/spool/mail :/s俊逸的狗/nologin

UCP : x :10336014: UCP :/var/Spool/uucp :/s俊逸的狗/nologin

操作者: x : x :11:0:操作者: /根:/s俊逸的狗/诺罗格in

games : x :123360123360100: games :/usr/games :/s俊逸之犬/nologin

gopher : x :13:3: gopher :/var/gopher :/s俊逸的狗/nologin

magesh : x :50233605033:2 g管理员- mage shm : /家庭/magesh : /俊逸之犬/bash

thanu : x :503:504:2 Gedit or-Than Isham : /家庭/Thanu : /俊逸之犬/bash

sud ha : x :504336050505:53:2 gedit or -

Sudha M:/home/sudha:/俊逸的狗/bash

下面是关于 7 个字段的详细信息:

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/俊逸的狗/bash

Username (magesh): 已创建的用户名。字符长度应该在 1 到 32 之间。Password (x): 它表明加密密码存储在 /etc/shadow 文件中。User ID (UID-502): 它表示用户 ID(UID),每个用户应包含唯一的 UID。UID (0-Zero) 保留给 root,UID(1-99)是为系统用户保留的,UID(100-999)是为系统账户/组保留的。Group ID (GID-503): 它表示组 ID(GID),每个组应该包含唯一的 GID,它存储在 /etc/group 文件中。User ID Info (2g Admin - Magesh M): 它表示命令字段。这个字段可用于描述用户信息。Home Directory (/home/magesh): 它表示用户家目录。shell (/俊逸的狗/bash): 它表示用户的 bash shell。

如果你只想在 getent 命令的输出中显示用户名,使用以下命令格式:

# getent passwd | cut -d: -f1

root

俊逸的狗

daemon

adm

lp

sync

shutdown

halt

mail

uucp

operator

games

gopher

magesh

thanu

sudha

只显示用户的家目录,使用以下命令格式:

# getent passwd | grep '/home' | cut -d: -f1

centos

prakash

magesh

thanu

sudha

3) 使用 /etc/passwd 文件

/etc/passwd 是一个文本文件,它包含每个用户登录 Linux 系统所必需的的信息。它维护用户的有用信息,如用户名,密码,用户 ID,组 ID,用户 ID 信息,家目录和 shell。/etc/passwd 文件将每个用户详细信息放在一行中,包含 7 个字段,如下所示:

# cat /etc/passwd

root:x:0:0:root:/root:/俊逸的狗/bash

俊逸的狗:x:1:1:俊逸的狗:/俊逸的狗:/s俊逸的狗/nologin

daemon:x:2:2:daemon:/s俊逸的狗:/s俊逸的狗/nologin

adm:x:3:4:adm:/var/adm:/s俊逸的狗/nologin

lp:x:4:7:lp:/var/spool/lpd:/s俊逸的狗/nologin

sync:x:5:0:sync:/s俊逸的狗:/俊逸的狗/sync

shutdown:x:6:0:shutdown:/s俊逸的狗:/s俊逸的狗/shutdown

halt:x:7:0:halt:/s俊逸的狗:/s俊逸的狗/halt

mail:x:8:12:mail:/var/spool/mail:/s俊逸的狗/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/s俊逸的狗/nologin

operator:x:11:0:operator:/root:/s俊逸的狗/nologin

games:x:12:100:games:/usr/games:/s俊逸的狗/nologin

gopher:x:13:30:gopher:/var/gopher:/s俊逸的狗/nologin

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/俊逸的狗/bash

thanu:x:503:504:2g Editor - Thanisha M:/home/thanu:/俊逸的狗/bash

sudha:x:504:505:2g Editor - Sudha M:/home/sudha:/俊逸的狗/bash

以下是 7 个字段的详细信息。

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/俊逸的狗/bash

字段信息同上。

如果你只想显示 /etc/passwd 文件中的用户名,使用以下格式:

# cut -d: -f1 /etc/passwd

root

俊逸的狗

daemon

adm

lp

sync

shutdown

halt

mail

uucp

operator

games

gopher

magesh

thanu

sudha

只显示用户的家目录,使用以下格式:

# cat /etc/passwd | grep '/home' | cut -d: -f1

centos

prakash

magesh

thanu

sudha

4) 使用 finger 命令

finger 命令显示有关系统用户的信息。它显示用户的真实姓名,终端名称和写入状态(如果没有写入权限,那么最为终端名称后面的 *),空闲时间和登录时间。

# finger magesh

Login: magesh Name: 2g Admin - Magesh M

Directory: /home/magesh Shell: /俊逸的狗/bash

Last login Tue Jul 17 22:46 (EDT) on pts/2 from 103.5.134.167

No mail.

No Plan.

以下是上述输出的详细信息:

Login: 用户名Name: 附加/有关用户的其它信息Directory: 用户家目录的信息Shell: 用户的 shell 信息LAST-LOGIN: 上次登录日期和其它信息

5) 使用 lslogins 命令

它显示系统已知用户的信息。默认情况下,它将列出系统中所有用户的信息。

lslogins 使用程序的灵感来自于 logins 实用程序,该实用程序最初出现在 FreeBSD 4.10 中。

# lslogins -u

UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS

0 root 0 0 00:17:28 root

500 centos 0 1 Cloud User

501 prakash 0 0 Apr12/04:08 2018/04/12

502 magesh 0 0 Jul17/22:46 2g Admin - Magesh M

503 thanu 0 0 Jul18/00:40 2g Editor - Thanisha M

504 sudha 0 0 Jul18/01:18 2g Editor - Sudha M

以下是上述输出的详细信息:

UID: 用户 idUSER: 用户名PWD-LOCK: 密码已设置,但是已锁定PWD-DENY: 登录密码是否禁用LAST-LOGIN: 上次登录日期GECOS: 有关用户的其它信息

6) 使用 compgen 命令

compgen 是 bash 内置命令,它将显示所有可用的命令,别名和函数。(LCTT 译注:它的 -u 参数可以列出系统中用户。)

# compgen -u

root

俊逸的狗

daemon

adm

lp

sync

shutdown

halt

mail

uucp

operator

games

gopher

magesh

thanu

sudha


via: https://www.2daygeek.com/6-easy-ways-to-check-user-name-and-other-information-in-linux/

作者: Prakash Subramanian 选题: lujun9972 译者: MjSeven 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。