当前位置:首页>Linux>Linux用户组管理和用户密码管理

Linux用户组管理和用户密码管理

  • 2026-04-20 23:01:24
Linux用户组管理和用户密码管理

Linux用户组管理和用户密码管理

一、用户组管理详解

1、用户组和用户关系介绍

在 Linux 系统中,用户组是具有相同特征或权限需求的用户集合,用户与用户组之间存在多对多的关系,一个用户可以属于多个用户组,一个用户组也可以包含多个用户。#用户组的作用1.简化权限管理:通过将用户加入到不同的用户组,并为用户组设置相应的权限,可以方便地对一组用户进行统一的权限管理。例如,在一个开发项目中,将所有开发人员加入到“developers”用户组,然后为该用户组赋予对项目代码目录的读写权限,这样组内的所有用户都能获得相应的权限,而无需逐个为每个用户设置权限。2.资源共享与访问控制:用户组可以用于控制对系统资源的访问。不同的用户组可以具有不同的访问权限,例如,“admin”用户组的成员可能具有对系统管理工具的完全访问权限,而“普通用户”组的成员则只能访问自己的主目录和一些公共的应用程序。#用户与用户组多对多关系示例一个用户属于多个用户组:比如用户“testuser”,他既属于“developers”用户组,又属于“testers”用户组。这样“testuser”就可以同时获得这两个用户组所拥有的权限,既能够访问开发相关的资源,又可以参与测试工作。一个用户组包含多个用户:“developers”用户组可能包含“user1”“user2”“user3”等多个用户,这些用户都具有开发相关的权限,可以共同对开发资源进行操作。#总结1.一个用户必须至少属于一个用户组2.一个用户可以属于多个用户组3.一个用户组可以包含多个用户4.用户组用于定义一组特征相同的用户

2、用户组的种类介绍

在 Linux 系统中,primary group(主组)、private group(私有组)和 attached group(附加组)是与用户账户相关的不同类型的组概念。primary group(主组)定义:每个用户都有一个主组,它在用户创建时被指定,是用户的默认组。当用户创建文件或目录时,默认情况下,这些文件或目录的所属组就是用户的主组。private group(私有组)定义:私有组是一种特殊的组设置,当采用这种模式时,系统会为每个用户创建一个与用户名相同的私有组,用户作为该组的唯一成员。作用:这种设置增强了用户文件的安全性和隔离性。因为用户的文件默认属于其私有组,只有该用户自身对这些文件有完全的控制权限,其他用户即使属于同一系统,也无法轻易访问该用户的文件,除非被明确授予权限。例如,用户user1创建的文件默认属于user1私有组,其他用户没有该组的权限,就无法随意访问这些文件。attached group(附加组)也可以叫做Secondary group定义:附加组是用户除主组之外所属的其他组。用户可以同时属于多个附加组,这允许用户根据不同的工作任务和资源访问需求,获得多个组的权限。作用:通过将用户添加到不同的附加组,系统管理员可以灵活地控制用户对各种资源的访问权限。例如,用户user1除了属于developer主组外,还被添加到database附加组,那么user1就可以访问database组有权访问的数据库相关资源,同时保留developer主组赋予的其他权限,方便用户在不同的工作场景中使用相应的资源。

3、创建一个用户组

#创建用户组在 Linux 系统中,可使用 groupadd 命令创建用户组,若不使用任何选项,groupadd 会以默认配置创建一个新的用户组。groupadd developers使用-g选项能为新创建的用户组指定一个特定的 GID。groupadd-g1010 admins使用-r选项可创建一个系统组。系统组的 GID 通常小于 1000。groupadd-rsystemgroup#将用户加入用户组1.添加用户的时候指定指定用户组2.使用 usermod 命令为已经创建的用户加到新的用户组3.使用 gpasswd 命令将已经创建的用户加到新的用户组4.编辑 /etc/group 文件可以将用户添加到用户组。不过这种方法要求你对文件内容有清晰的认识,操作时要格外谨慎,以免破坏文件结构。

4、用户组配置文件/etc/group详解

/etc/group 是 Linux 系统中用于存储用户组信息的重要配置文件,每行代表一个用户组,通过冒号(:)分隔为多个字段。组名:用户组的名称,是用户组的标识,在系统中必须唯一,且遵循特定命名规则,只能包含字母、数字、下划线、连字符等,不能以连字符开头,长度有限制(通常不超过 32 个字符)。密码:该字段目前通常为占位符“x”。在早期,它存储的是组密码的加密值,用户使用 newgrp 命令临时切换到该组时需输入此密码。组 ID(GID):每个用户组都有唯一的组 ID,系统使用它来识别用户组。在 /etc/group 文件中,系统组的 GID 一般小于 1000,而普通用户组的 GID 通常从 1000 开始。组内成员:该字段列出了属于这个用户组的所有用户,多个用户之间用逗号分隔。但存在特殊情况,若某个组是某个用户的主要组(主组),在该文件的组内成员列表里不会显示这个用户。这是因为在 Linux 系统中,用户的主组信息存储在 /etc/passwd 文件中,/etc/group 文件主要用于记录附加组的成员情况。

5、查看一个用户属于哪些用户组

1.id功能:用于显示用户的身份信息,包括用户 ID、组 ID、用户名、主组名以及用户所属的附加组等。使用示例:在终端中输入id username(将username替换为实际的用户名),如id testuser,会输出类似uid=1000(testuser)gid=1000(testgroup)groups=1000(testgroup),4(adm),24(cdrom),27(sudo)的信息。其中groups后面列出的就是该用户所属的主组和附加组。2.groups功能:专门用于查看用户所属的组。如果不指定用户名,则显示当前登录用户所属的组;如果指定了用户名,则显示指定用户所属的组。使用示例:直接输入groups,会显示当前用户所属的组。输入groups testuser,则会显示testuser用户所属的组,如testuser : testgroup adm cdrom sudo。3./etc/group功能:是系统中用于存储用户组信息的配置文件,包含了所有用户组的相关信息,如组名、组密码、组 ID 以及属于该组的用户列表等。使用示例:可以使用文本编辑器打开该文件进行查看,也可以使用grep命令来搜索特定用户所属的组。例如,要查看testuser所属的组,可以使用grep testuser /etc/group,会输出包含testuser的组信息行,如testgroup:x:1000:testuser,表示testuser属于testgroup组。不过,如果用户属于多个组,需要通过多次搜索来确定其所属的所有组。

6、修改和删除一个用户组

1.groupmodgroupmod 命令用于修改已有用户组的属性,如组名、GID 等。(1)使用-n选项可以将一个用户组的名称修改为新的名称。groupmod-nnewgroupname oldgroupname(2)使用-g选项可以为用户组指定一个新的 GID。需要注意的是,新的 GID 必须在系统中是唯一的,否则会导致冲突。groupmod-g1011 groupname2.groupdelgroupdel 命令用于删除系统中不再需要的用户组。groupdel groupname使用-f选项可以强制删除一个用户组,即使这个用户组是某个用户的主要组#注意事项权限要求:无论是使用 groupmod 还是 groupdel 命令,都需要 root 权限或者使用 sudo 来执行,因为这些操作会影响系统的关键配置文件。用户依赖:在删除用户组之前,要确保没有用户的主组是该组。如果有用户的主组是要删除的组,直接删除可能会导致用户权限出现问题。可以先使用 usermod 命令将这些用户的主组修改为其他组,再进行删除操作。例如,若要删除 oldgroup 组,而用户 testuser 的主组是 oldgroup,可以使用以下命令将 testuser 的主组修改为 newgroup。usermod-gnewgroup testusergroupdel oldgroup对于系统组(通常 GID 小于 1000),删除时要格外谨慎,因为这些组可能被系统服务或程序依赖,删除它们可能会影响系统的正常运行。

二、用户密码管理详解

1、用户密码的作用

#用户密码的作用1.身份验证(authentication认证)这是密码最主要的作用。当用户登录 Linux 系统时,输入用户名和密码,系统会将输入的密码与存储在系统中的该用户密码哈希值进行比对。如果匹配,就确认该用户的身份合法,允许其登录系统,从而防止未经授权的用户访问系统资源。2.保护系统安全通过设置强密码,可以有效防止恶意攻击者猜测或破解用户密码,进而保护系统免受非法入侵。一旦攻击者获取了用户密码,就可能以该用户的身份执行各种操作,如窃取敏感数据、篡改系统文件、安装恶意软件等,而强密码能增加攻击者破解的难度,降低系统被攻击的风险。#生成随机密码的方法1.openssl生成随机密码openssl 是一个强大且广泛使用的开源工具包,它提供了openssl命令可以生成私钥,从私钥生成公钥,生成自签名证书,加密文件,解密文件,查看证书信息操作。openssl rand-base64密码长度对应的字节数示例:生成一个长度约为 12 位的密码[root@centos79-68-145 /]

openssl rand-base649v7sl9DSE8dLq2.pwgenyum-yinstall epel-releaseyum-yinstall pwgen生成一个包含大小写字母、数字和特殊字符,长度为 16 位的密码:[root@centos79-68-145 /]# pwgen-sy16 1^%-7r<Nq}#3&Pd~2其中,-s 表示生成安全的随机密码,-y 表示包含至少一个特殊字符,16 是密码长度,1 表示生成 1 个密码。生成 5 个只包含大小写字母和数字,长度为 12 位的易于记忆的密码:[root@centos79-68-145 /]# pwgen-c-n12 5luvah8taik6U booTho2ooN1b ohngoPiu7kah ieHelahRoo7u ohnei1Yievey-c 表示包含大写字母,-n 表示包含数字

2、对一个用户设置密码

#passwd命令在 Linux 系统中,passwd 命令常用于设置或更改用户密码。1.普通用户更改自己的密码当普通用户登录系统后,可直接使用 passwd 命令来更改自己的密码。执行该命令后,系统会提示输入当前密码(若有),验证通过后,再输入新密码并确认。2.root 用户更改其他用户的密码root 用户拥有最高权限,能够直接更改任何用户的密码,无需知道该用户的当前密码。使用 passwd 命令时,需指定要更改密码的用户名。3.非交互式方式设置密码[root@centos79-68-145 /]

useradd ot[root@centos79-68-145 /]# echo 123456|passwd--stdinotChanging password for user ot.passwd: all authentication tokens updated successfully.

3、密码配置文件/etc/shadow详解

/etc/shadow是Linux系统中用于存储用户密码等相关信息的重要配置文件,只有root用户有读取和写入权限,以保证用户密码信息的安全性。/etc/shadow每一行都记录了一个用户的密码信息,每一行总共9列,每列都代表不同的信息username:encrypted_password:last_change:min_days:max_days:warning_days:inactive_days:expire_date:reservedusername:用户名,对应系统中的各个用户账号。encrypted_password:加密后的用户密码。如果该字段显示为x或者*,表示用户密码是通过/etc/passwd文件中的x字段进行间接引用,实际密码存储在其他地方;如果是真正的加密密码,则是使用特定的加密算法对用户输入的密码进行加密后存储的结果。有些系统可能会使用!或!!表示密码被锁定,用户无法使用该密码登录。last_change:表示从1970年1月1日到用户最后一次修改密码的天数。通过这个字段可以计算出密码的最后修改时间,以便系统管理员了解用户密码的更新情况。[root@centos79-68-145 /]#date-d"1970-01-01 + 20175 days"+%Y-%m-%d2025-03-28min_days:指定用户可以更改密码的最小天数。如果设置为0,表示用户可以随时更改密码;如果设置为非0值,例如7,则表示用户在修改密码后的7天内不能再次修改密码。max_days:指定用户必须更改密码的最大天数。超过这个天数后,系统会提示用户更改密码。例如,设置为90,表示每隔90天必须更改一次密码,以提高系统的安全性。warning_days:在密码到期前多少天开始向用户发出警告信息,提醒用户密码即将过期。例如,设置为7,表示在密码到期前7天,系统会向用户发出警告,提示用户尽快更改密码。inactive_days:密码过期后,用户账号可以处于非活动状态的天数。如果在密码过期后,用户在指定的天数内没有更改密码,账号将被锁定。例如,设置为10,表示密码过期10天后,如果用户仍未更改密码,账号将被锁定。expire_date:指定用户账号的过期日期,用从1970年1月1日到该日期的天数表示。超过这个日期后,用户账号将被禁用,即使密码正确也无法登录系统。这个字段可以用来设置一些临时账号的有效期限。reserved:保留字段,目前未被使用,通常设置为默认值0或空字符串。

4、用户密码格式详解

#密码格式在/etc/shadow文件里,加密密码通常呈现为'$算法标识$盐值$哈希值'这样的形式。$6$Bvfl4ezixEKqWuj9$I1MVeEgCs4GO523.yJWqpmMJe6CO.3de/b1llCYpgfbQxmsFwiVLNvfKZygD.ai1.K4EPFh6jaKgb17sYdHBR1密码分为3部分,3部分被3个$隔离开来1.第一个$和第二个$之间的6表示密码的算法级别,6就表示SHA512算法,5就表示SHA256的算法1:代表 MD5 算法。不过由于 MD5 存在安全隐患,现在已较少使用。5:表示 SHA-256 算法,是一种较为安全的哈希算法。6:意味着 SHA-512 算法,相较于 SHA-256,它的哈希值更长,安全性也更高。2.第二个$和第三个$之间的Bvfl4ezixEKqWuj9叫做salt,叫做盐盐值(salt)处于第二个$和第三个$之间,是一个随机生成的字符串。盐值的作用在于增强密码的安全性,防止彩虹表攻击。即便两个用户使用相同的原始密码,由于盐值不同,加密后的哈希值也会不同。例如,对于密码password,不同的盐值会生成不同的加密结果。3.第三个$之后的内容是经过盐值(salt)处理和对应算法加密后的哈希值哈希值位于第三个$之后,是将原始密码与盐值结合,再通过指定算法进行加密后得到的结果。这个哈希值就是最终存储在/etc/shadow文件中的内容。当用户登录时,系统会将用户输入的密码与盐值结合,使用相同的算法进行加密,然后将得到的结果与存储的哈希值进行比对,如果一致则认为密码正确。#为什么叫盐值?就像烹饪中盐可以改变食物的味道一样,在密码加密中,盐值可以改变密码的哈希值。即使两个用户使用了相同的密码,由于盐值不同,最终得到的哈希值也会不同,这增加了密码的安全性,防止彩虹表攻击等。所以用“盐”来命名这个随机值,形象地表达了它对密码哈希结果的“调味”作用,使其变得更加复杂和独特。在早期的密码系统中,人们就开始使用类似的随机值来增强密码的安全性。当时可能是因为盐在日常生活中是一种常见的、用于改变事物性质的物质,所以就借用了“盐”这个词来描述在密码加密中起到类似作用的随机值。随着时间的推移,“盐值”这个术语就被广泛接受并沿用下来。#密码示例$6$Bvfl4ezixEKqWuj9$I1MVeEgCs4GO523.yJWqpmMJe6CO.3de/b1llCYpgfbQxmsFwiVLNvfKZygD.ai1.K4EPFh6jaKgb17sYdHBR1算法标识为6,表明使用的是 SHA-512 算法。盐值是Bvfl4ezixEKqWuj9,这是随机生成的字符串。哈希值是d9f81899869d9d78d199a8d91898d9189d89d189d891d989d189,是testuser的原始密码结合盐值Bvfl4ezixEKqWuj9,经过 SHA-512 算法加密后得到的结果。这种加密方式大大增强了密码的安全性,使得破解密码变得更加困难。#使用openssl生成密码(1)不指定盐值openssl passwd-6ot(2)指定盐值openssl passwd-saltot-6ot#mkpasswd生成密码sudoyum-yinstall mkpasswdmkpasswd 可生成加密后的密码,常用于脚本中自动创建用户并设置密码。#useradd命令-p参数设置密码useradd ot-p'$6$glshs$IDH6yFIOEjG0oOFYO18Nk8S7WhWFF51DDyK686aJB52C/kkUsDgpJR8pyhkxQZb01Wix/BfHqcmf4crqGcq7h/'

5、修改密码时间信息的命令

#只有root用户可以使用passwd命令更改用户密码的时间信息-n(--minimum=DAYS)设置密码的最小使用天数,在该天数内用户不能更改密码。-x(--maximum=DAYS)设置密码的最大使用天数,超过该天数后用户必须更改密码。-w(--warning=DAYS)设置在密码到期前多少天开始向用户发出警告。-i(--inactive=DAYS)设置密码过期后账户保持活动状态的天数,超过该天数后账户将被锁定。-e(--expire)强制用户在下次登录时更改密码。-d(--delete)删除用户的密码,即使用户账户没有密码。这会让用户无需输入密码就能登录系统,但这种方式存在安全风险,通常不建议使用。-S(--status)显示用户密码的状态信息,包括密码是否锁定、上次更改密码的日期、密码的最大和最小使用天数1.将密码最小有效期设置为1,默认是0,然后测试普通用户是否可以更改密码2.修改密码,然后将密码最大有效期设置为10天,密码到期前警告日期设置为7,密码到期后的宽限日期设置为10(1)将系统时间增加5天,然后登录用户,你会发现系统会提醒你密码快到期了,提示你修改自己的密码,测试密码到期前警告日期的功能。(2)将系统时间再增加10天,然后登录用户,你会发现系统提醒你密码到期了,但是由于宽限日期没到,所以系统允许你立刻修改密码,测试密码到期前宽限日期功能。(3)将系统时间再增加10天,然后登录用户,由于密码过期且宽限日期也到了,所以用户无法登录。#只有root用户可以使用chage命令更改用户密码的时间信息-m,--mindays:设置用户必须等待多少天才能再次更改密码。例如,设置testuser 至少 7 天才能再次更改密码-M,--maxdays:指定用户密码的最大有效期,即用户必须在多少天内更改密码。比如,将testuser 的密码最大有效期设置为 90 天-W,--warndays:设置在密码到期前多少天开始向用户发出警告。例如,在testuser 密码到期前 14 天开始警告-I,--inactive:设置密码过期后,用户账户可以处于非活动状态的天数。若超过这个天数,账户将被锁定。例如,设置testuser 密码过期 10 天后账户进入非活动状态-E,--expiredate:设置用户账户的过期日期。可以使用标准日期格式或从1970 年 1 月 1 日起的天数。例如,将 testuser 的账户设置为 2025 年 12 月 31 日过期-l,--list:列出指定用户的密码有效期和相关设置信息。-d,--lastday:用于设置用户最后一次修改密码的日期。可以使用标准日期格式(如YYYY-MM-DD)或从 1970 年 1 月 1 日起的天数来表示。通过设置不同的日期值(按照 YYYY-MM-DD 格式或从 1970 年 1 月 1 日起的天数),通过调整用户密码最后修改的记录时间,进而影响密码有效期相关的计算和提醒机制,在一些特定的管理场景中,比如需要调整一批用户的密码更新周期,使其符合统一的时间规划时,是非常有用的。特殊用法是将上次修改密码时间设置为0,相当于passwd的-e参数。

6、批量设置密码

#chpasswdchpasswd 命令主要用于批量设置用户密码,它可以从标准输入读取用户名和密码对,然后批量更新系统中用户的密码。-e:表示输入的密码已经是经过加密的,chpasswd 会直接使用这些加密后的密码,而不会再次进行加密处理。-c:指定加密算法(1)批量设置明文密码假设你有一个文本文件 passwords.txt[root@centos79-68-145 ~]

cat passwords.txt user1:password1user2:password2user3:password3[root@centos79-68-145 ~]# useradd user1[root@centos79-68-145 ~]# useradd user2[root@centos79-68-145 ~]# useradd user3每行包含一个用户名和对应的密码,用冒号分隔。你可以使用以下命令批量设置这些用户的密码:[root@centos79-68-145 ~]# cat passwords.txt|chpasswd[root@centos79-68-145 ~]# getent shadow user1user1:$6$fm9GIDgY3L/Q.PtI$Qt/OPxC3Ra15GBSKNqDl9...LgOAqpuBtYsSyLf74cy1.DXFgF3cZ/E92yUkyTqIcV7BCcmjNb50/.dJiW.xt1:20529:0:99999:7:::[root@centos79-68-145 ~]# getent shadow user2user2:$6$E4KXHlg5GE/$CQ.Pa7/FhamFGe80vpgRcFmszHWJe3VsPosxWuhdYNQ7Zde804m8ZoUItD.zlr6NovQCAcsY05Nw2KGOcJqg9/:20529:0:99999:7:::(2)批量设置密文密码假设你有一个文本文件 encrypted_passwords.txt[root@centos79-68-145 ~]# cat encrypted_passwords.txtuser1:1ctoglshenshuai.xZ76DsLt9AtxXs7RqvFAsqdyTQFJOa1KW8fxgMPq08hqSi/M6DbiZzPdZ.7e1user2:1ctoglshenshuai/6Fpka8u7MvIG8eMC0wx4V9DvwpLvJGJPE1qqwYRY7jtHwL3qA91[root@centos79-68-145 ~]# cat encrypted_passwords.txt|chpasswd-e[root@centos79-68-145 ~]# getent shadow user1user1:1ctoglshenshuai.xZ76DsLt9AtxXs7RqvFAsqdyTQFJOa1KW8fxgMPq08hqSi/M6DbiZzPdZ.7e1:20529:0:99999:7:::[root@centos79-68-145 ~]# getent shadow user2user2:1ctoglshenshuai/6Fpka8u7MvIG8eMC0wx4V9DvwpLvJGJPE1qqwYRY7jtHwL3qA91:20529:0:99999:7:::(3)使用-c参数指定加密算法进行加密[root@centos79-68-145 ~]# cat passwords.txt|chpasswd-cSHA256[root@centos79-68-145 ~]# tail-3/etc/shadowuser1:$5$MUi6uHzS$9VtL8e3DuPDWVx4E5TmpbyzDBBpTdh4iAly7dHU1AJ5:20529:0:99999:7:::user2:$5$OyX9I/Ror3Um$fSUtBhIbW8xY7b7OrePPwAmVmO3k0YTvkQCvXMeg9H3:20529:0:99999:7:::user3:$5$XNHiy/YFNRc/wLs$l5TSzTRhAUucSpwHhRem7tjFzTr4.ry0pk9vCTEck3D:20529:0:99999:7:::[root@centos79-68-145 ~]# cat passwords.txt|chpasswd-cSHA512[root@centos79-68-145 ~]# tail-3/etc/shadowuser1:$6$Cw76p/vC9$TaTb6mzVzzjnpNDxrNwJyAPTPnYeQgpHu0aDNPrpS0IMcnmOsCU.9gcGBr/Je/T3n6PCuk.M/V8AFYWbVBRmh1:20529:0:99999:7:::user2:$6$AWf9mpr2Lc$QRraT.B.7oaesy0ji/otaKEALt3fXiSePtZZBaV8BtSDLpWaou0GIpXJ5/p7T58ziBb/u09Uu.AqvSUJP6w.4.:20529:0:99999:7:::user3:$6$rsAj7uXR81S$XK0A8acvg4qn66vXo15dZ2V6pwo3LZd62d210tYvJvL1RG.IjJc/cxau..ceoTnwCbKF.4mWZA3so4CT47dQc1:20529:0:99999:7:::(4)设置一个用户的密码(非交互式设置密码)[root@centos79-68-145 ~]# useradd testuser[root@centos79-68-145 ~]# echo"testuser:newpassword"|chpasswd[root@centos79-68-145 ~]# getent shadow testusertestuser:$6$cDC2Qo4qXzN08d7$qb37x4afhdu70v3RW9oBpvCLfPbSyD2j1gEEkW/PIad1UE/.KGjl3MTqF0fedI7ZUQIMBStqFd1.Oe4kMcTbz0:20529:0:99999:7:::[root@centos79-68-145 ~]# echo newpassword|passwd--stdintestuserChanging password for user testuser.passwd: all authentication tokens updated successfully.(5)mkpasswd生成多轮哈希的密码#注意有一些linux发行版本里面的passwd可能不支持--stdin参数,在这种情况下,你可以使用chpasswd来非交互式设置密码

三、用户组密码管理详解

#为什么需要对用户组设置密码如果一个用户属于某个用户组,或者多个用户组,那么这个用户是可以将自己的shell灵活的切换到对应的自己的所属组。所谓切换用户组指的是切换用户的主要组。用户组密码为希望临时切换到该组的用户提供了一种简单的认证方式。在设置了用户组密码的情况下,用户可以使用 newgrp 命令并提供正确的密码来临时切换到指定的用户组,从而获得该用户组所拥有的权限和访问相应资源的能力#设置用户组密码只有root用户和用户组的管理员可以设置用户组密码gpasswd 组名#/etc/gshadow/etc/gshadow 是 Linux 系统中存放用户组影子信息的文件,用于存储用户组的加密密码、组管理员以及组成员等信息,只有 root 用户和组才有权限访问。结构:文件中的每一行代表一个用户组,以“::”分隔成 4 个字段,格式为groupname:password:admin,admin,...:member,member,...。用户组名:第一个字段是用户组的名称,用于标识系统中的不同用户组。例如 root、users 等。用户组密码:第二个字段存储的是用户组的加密密码。如果该字段为空或为!,表示这个用户组没有设置密码。当设置了用户组密码后,非本组成员可以使用 newgrp 命令并提供正确密码临时切换到该用户组,获得相应权限。用户组管理者:第三个字段记录的是用户组管理员的用户名。如果有多个用户组管理者,用,号分割。只有用户组管理员才有权限修改该用户组的密码或成员列表。该字段也可为空,表示没有指定特定的管理员。组成员:第四个字段列出了属于该用户组的所有成员的用户名,多个成员之间用,号分割。

四、自定义缺省用户设置

#login.defs/etc/login.defs 是一个系统全局配置文件,主要用于设置用户账户的默认参数和行为。这些设置会影响到用户账户创建、密码管理、用户 ID 分配等多个方面。系统在创建新用户或者处理用户账户相关操作时,会读取该文件中的配置信息。此配置文件中的参数控制 shadow-utils 组件中的工具的行为。这些工具均不使用 PAM 机制,因此应在其他地方配置使用 PAM 的实用程序(例如 passwd 命令)。有关更多信息,请参阅 /etc/pam.d/system-auth。1.密码相关设置PASS_MAX_DAYS:指定密码的最大有效期,以天为单位。超过这个天数后,用户将被提示更改密码。例如,设置为90,则表示密码在 90 天后过期。PASS_MIN_DAYS:规定密码可更改的最小间隔天数。若设置为7,则用户在修改密码后的 7 天内不能再次修改密码。PASS_MIN_LEN:定义密码的最小长度。不过,此设置可能会被 PAM(Pluggable Authentication Modules)配置覆盖。PASS_WARN_AGE:设置在密码过期前多少天开始向用户发出警告。如设置为14,那么在密码还有 14 天过期时,用户登录系统会收到密码即将过期的提示。2.用户 UID 和 GID 范围设置UID_MIN和UID_MAX:确定了系统中可分配给普通用户的 UID(用户标识符)范围。通常,UID_MIN默认为1000,UID_MAX根据系统不同而有所差异,一般为60000或更高。GID_MIN和GID_MAX:规定了系统中可分配给用户组的 GID(用户组标识符)范围,其取值范围的设置原则与 UID 类似。3.账户登录设置FAIL_DELAY:登录失败后允许再次尝试的延迟秒数4.密码加密算法设置ENCRYPT_METHOD:指定系统使用的密码加密算法。常见的取值有SHA512、MD5等。现在一般推荐使用SHA512,因为它具有更高的安全性。5.其他设置MAIL_DIR:指定用户邮箱目录的位置。通常设置为/var/mail,表示用户的邮件将存储在该目录下以用户名命名的文件中。CREATE_HOME:确定是否在创建用户时自动创建用户的主目录。取值为yes或no。如果设置为yes,系统会在创建用户时按照指定的主目录格式为用户创建主目录。需要注意的是,不同的 Linux 发行版可能会对/etc/login.defs文件中的默认值有所不同,并且这些设置可以根据系统管理员的需求进行调整,以满足特定的安全和管理策略要求。

五、自定义新用户家目录模板

#/etc/skel/etc/skel 是 Linux 系统中的一个重要目录,它作为新用户主目录的模板,在创建新用户时发挥着关键作用。简单来说就是当一个用户创建完成之后,如果系统自动创建了用户的家目录,会将/etc/skel目录中的所有文件,包括隐藏文件拷贝到这个用户的家目录中。1.功能概述在 Linux 系统里,当使用 useradd 或其他相关命令创建新用户时,系统会将 /etc/skel 目录下的所有文件和子目录复制到新用户的主目录中。这样,新用户在创建后就拥有了一组预先配置好的文件和环境设置,为他们提供了一个统一且基础的工作环境。2.常见内容/etc/skel 目录下的内容通常包含一些隐藏文件和目录,这些文件和目录在用户登录系统后会对用户的操作环境产生影响。以下是一些常见的内容:(1)SHELL配置文件.bashrc:这是 Bash shell 的配置文件,每次用户启动一个新的交互式非登录 shell 时都会读取该文件。它通常包含环境变量的设置、别名定义、函数定义等,用于定制用户的 shell 环境。例如,设置命令提示符的样式、定义常用命令的别名(如 alias ll='ls -l')等。.bash_profile: Bash shell 的登录配置文件,在用户登录时读取。它主要用于设置用户的环境变量、执行一些初始化脚本等。比如,设置用户的 PATH 环境变量,确保系统能够找到所需的命令。.zshrc: 是Zsh的配置文件(2)特定软件配置文件.vimrc: 如果系统中安装了 Vim 编辑器,/etc/skel 目录下可能会包含 .vimrc 文件。该文件用于配置 Vim 编辑器的默认行为,如设置语法高亮、行号显示、缩进规则等。例如,在 .vimrc 文件中添加 set number 可以让 Vim 在编辑文件时显示行号。.tmux.conf: 终端复用工具 Tmux 的配置文件,能让用户对 Tmux 的各种行为和特性进行自定义设置。openstack凭据文件: 用于存储访问 OpenStack 云平台所需认证信息的文件,通常以环境变量文件或配置文件的形式存在。.kube/config: 是 Kubernetes 集群的配置文件,它记录了与 Kubernetes 集群进行交互所需的信息,比如集群的地址、认证信息、上下文等。这个文件通常位于用户的主目录下的 .kube 文件夹中(~/.kube/config)。3./etc/skel目录作用统一用户环境:通过 /etc/skel 目录,系统管理员可以为所有新用户提供一个统一的初始环境。这样,不同用户在登录系统后会有相似的操作体验,便于管理和维护。提高工作效率:新用户在创建后就拥有了一些预先配置好的文件和环境设置,无需手动进行繁琐的配置,从而可以更快地开始工作。确保安全和合规性:系统管理员可以在 /etc/skel 目录中放置一些安全相关的配置文件或脚本,确保新用户在创建后就遵循系统的安全策略和合规要求。4.定制/etc/skel目录步骤(1)使用 root 权限登录系统。(2)编辑或添加 /etc/skel 目录下的文件。例如,使用 vim 编辑器修改 .bashrc 文件:vim /etc/skel/.bashrc(3)保存修改后,后续创建的新用户将使用更新后的 /etc/skel 目录内容作为主目录的模板。/etc/skel 目录为 Linux 系统的用户管理提供了一种方便、高效的方式,使得新用户能够快速拥有一个合适的工作环境。

六、禁用用户登录

#在某些情况下,我们可能要禁止用户登录1.系统维护与升级当系统需要进行维护、升级内核、安装重要软件更新或进行文件系统检查等操作时,为了避免用户操作干扰进程,确保系统稳定和数据安全,可禁止用户登录。2.安全漏洞修复如果系统发现严重的安全漏洞,在修复过程中,为防止攻击者利用漏洞,可暂时禁止用户登录,直到漏洞修复完成。3.用户账号问题当用户账号存在异常活动,如被怀疑遭受暴力破解攻击、密码泄露,或用户账号长期未使用,为保护系统安全,可禁止该用户登录,进行进一步调查和处理。4.系统资源紧张当系统资源(如 CPU、内存、磁盘 I/O 等)严重不足,可能影响系统正常运行时,禁止新用户登录可以避免系统负载进一步增加,确保关键进程能够正常运行。5.法律法规要求根据法律法规或公司内部规定,需要限制特定用户的访问权限,如涉及法律纠纷、违反公司政策等情况,可能会禁止相关用户登录系统。6.紧急故障处理在系统出现紧急故障,如系统崩溃、硬件故障等,为了便于故障排查和恢复,防止用户的误操作或干扰,可禁止用户登录。#禁止linux用户登录方法1.修改用户登录shell通过将用户的登录 shell 修改为 /sbin/nologin 或者 /bin/false,可以阻止用户登录系统。当用户尝试登录时,系统会直接拒绝登录请求。[root@centos79-68-145 ~]

usermod ott -s /bin/false[root@centos79-68-145 ~]# su - ott[root@centos79-68-145 ~]#[root@centos79-68-145 ~]# usermod ott -s /sbin/nologin[root@centos79-68-145 ~]# su - ottThis account is currently not available.[root@centos79-68-145 ~]#/sbin/nologin:当用户登录时,系统会执行这个 shell,而 /sbin/nologin 会输出一条拒绝登录的消息并退出,从而阻止用户登录。/bin/false:它是一个始终返回失败状态的命令,当用户登录时,系统执行 /bin/false 后会立即退出登录过程。(2)usermod命令的-L参数命令会在用户的密码前添加!字符,这会使密码无效,从而阻止用户使用密码登录系统。passwd-u和 usermod-U命令会移除密码前的!字符,恢复用户的密码登录权限。3.设置账号失效日期chage-E0 wyzchage-E命令会修改 /etc/shadow 文件中用户账户的失效日期字段。当用户尝试登录时,系统会检查该字段,如果当前日期超过了失效日期,系统会拒绝用户登录。4.禁止所有普通用户登录在 /etc 目录下创建 nologin 文件。当该文件存在时,系统会阻止所有普通用户登录,并显示文件中的内容作为提示信息。[root@centos79-68-145 ~]# touch /etc/nologin[root@centos79-68-145 ~]# rm -rf /etc/nologin5.PAM模块控制后面讲到PAM模块再详细介绍#禁止用户登录流程1.先通知用户将在什么期间将会禁止用户登录(1)可以通过wall命令通知所有用户[root@centos79-68-145 ~]# wall "这个操作系统将会在2小时后进行维护,维护期间将禁止所有用户登录"(2)可以通过向用户发送邮件定向通知某个用户(3)可以通过更改用户的.bashrc文件定向通知某个用户2.更改禁止用户登录配置[root@centos79-68-145 ~]# usermod -s /sbin/nologin ott3.将所有应该禁止登录的用户踢出登录状态[root@centos79-68-145 ~]# w18:34:41 up 1 day,2:58,1 user,load average: 0.01, 0.02, 0.05USERTTYFROMLOGIN@IDLEJCPUPCPU WHATrootpts/0192.168.15.2813:411.00s0.11s0.00s w

七、网络用户介绍

#网络用户介绍Linux网络用户是指通过特定网络服务进行'认证'的用户,而不是在Linux本地基于/etc/paswd和/etc/shadow验证的用户。这些用户不直接在本地 Linux 系统上创建和管理,而是通过网络或其他外部认证机制进行身份验证和访问的用户。#集中认证(统一认证)系统介绍集中认证系统是一种用于集中管理用户身份验证和访问权限的软件系统或平台,它允许在多个相关的应用程序、系统或网络环境中,用户只需进行一次身份验证,就可以访问其他相互信任的资源,而无需在每个单独的系统或应用程序中重复输入用户名和密码。#集中认证(统一认证)系统功能1.用户身份管理集中认证系统负责创建、删除、修改用户账户信息,包括用户名、密码、用户角色、权限等。它可以与多种数据源集成,如数据库、LDAP 目录等,以存储和管理大量的用户信息。2.身份验证提供统一的身份验证服务,支持多种身份验证方式,如用户名 / 密码、数字证书、生物识别技术(指纹、面部识别等)、硬件令牌等。用户在登录时,系统会根据配置的认证方式对用户提供的凭证进行验证,以确定用户的身份是否合法。3.单点登录(SSO)实现这是集中认证系统的一个重要功能。当用户在一个系统中成功登录后,集中认证系统会为用户生成一个唯一的身份令牌(Ticket 或 Token),用户在访问其他集成了该认证系统的应用程序或系统时,只需出示这个令牌,而无需再次输入用户名和密码。认证系统会验证令牌的有效性,并根据令牌中包含的用户信息授权用户访问相应的资源。例如我们打开了天猫和淘宝两个系统页面,我登录了淘宝,转到天猫系统会发现天猫也是登录好的状态。4.访问控制根据用户的角色、权限以及系统的访问控制策略,集中认证系统决定用户是否有权访问特定的资源或执行特定的操作。它可以与各个应用程序或系统的授权模块进行集成,实现对资源访问的精细控制。5.审计与日志记录记录用户的登录行为、访问记录、身份验证结果等信息,以便进行安全审计和故障排查。通过分析这些日志,管理员可以发现异常的登录尝试、权限滥用等安全问题,并及时采取措施进行处理。

#集中认证服务器的类型1.基于 LDAP 的集中认证系统(IDM)LDAP(轻量级目录访问协议)是一种常用的集中认证方式。它将用户信息存储在 LDAP 目录中,具有层次化的结构,便于组织和管理大量的用户数据。许多企业级应用和操作系统都支持与 LDAP 服务器集成进行用户身份验证和授权。 2.基于 Kerberos 的集中认证系统(IDM)Kerberos 是一种网络认证协议,它使用票据(Ticket)来验证用户身份。在 Kerberos 环境中,有一个专门的 Kerberos 服务器,负责颁发和管理票据。用户在登录时,首先向 Kerberos 服务器请求票据,然后使用该票据来访问各种网络服务。Kerberos 提供了强大的安全性,包括加密的身份验证过程和票据的有效期管理,适用于对安全性要求较高的网络环境。 3.基于 OAuth 或 OpenID Connect 的集中认证系统(Keycloak)这些标准主要用于互联网应用和云服务中的身份认证和授权。OAuth 允许用户授权第三方应用访问其在另一个服务提供商(如社交媒体平台、云存储服务等)上的资源,而无需共享用户名和密码。OpenID Connect 则是在 OAuth 的基础上,提供了一种简单的身份验证机制,使得应用可以验证用户的身份信息。 我们平常可以使用微信或者qq登录各种平台的就是基于OAuth实现#使用网络用户的好处1.集中管理 非本地用户的信息存储在远程服务器,如 LDAP 目录服务器或云平台的身份管理系统中,可实现集中管理。管理员能在一个中心位置添加、删除、修改用户账户及权限,无需在每个 Linux 系统上单独操作,大大提高管理效率,尤其适用于大规模网络环境中有大量用户和系统的情况。 2.方便用户访问 用户凭借在非本地认证系统中的有效凭证,能访问多个连接到同一认证系统的 Linux 主机,无需在每个本地系统上创建账户。例如,在企业内部网络中,员工使用公司的统一身份认证系统,可登录到不同的 Linux 服务器进行工作,方便快捷,提升工作效率。 3.增强安全性 通过与专业的认证服务集成,如 Kerberos,可提供强大的安全机制,包括加密的身份验证过程和票据系统,防止用户凭证在网络传输中被窃取或篡改。同时,集中管理用户身份和权限,有助于实施更严格的访问控制策略,降低安全风险。 4.灵活的身份验证方式 支持多种身份验证方式,如 LDAP、Kerberos、单点登录(SSO)以及多因素认证等。企业可根据自身安全需求和环境选择合适的认证方式,增强用户身份验证的安全性和可靠性。 5.便于系统扩展 当企业或组织的 IT 环境不断扩展,增加新的 Linux 系统或用户时,非本地用户管理方式能轻松适应变化。只需在集中认证系统中进行相应配置,无需在每个新系统上重复创建和管理用户账户,确保新系统快速投入使用,且用户能方便地访问。

八、二级认证(2FA)

#二级认证介绍二级认证,也被称为双因素认证(Two-Factor Authentication,简称2FA),是一种为了增强用户账户安全性而采用的身份验证方法。它要求用户在登录或进行敏感操作时,除了提供用户名和密码等常规凭证外,还需要提供第二种身份验证因素。#常见的认证因素类型知识因素:用户所知道的信息,如密码、PIN码等。这是最常见的一种认证因素,例如用户在登录网站或应用程序时输入的密码。 拥有因素:用户所拥有的物品,如手机、硬件令牌等。以手机为例,在进行二级认证时,系统会向用户的手机发送验证码,用户需要输入该验证码才能完成认证。 生物特征因素:用户本身具有的生物特征,如指纹、面部识别、虹膜识别等。现在很多智能手机都支持指纹解锁或面部识别解锁,一些银行的手机应用也支持使用这些生物特征进行登录和支付等操作。#二级认证的实现方式1.短信验证码 这是一种常见的二级认证方式。用户在登录或进行重要操作时,系统会向用户预留的手机号码发送一条包含验证码的短信,用户需要在规定时间内输入该验证码来完成认证。 2.应用程序生成的验证码 一些专门的身份验证应用程序,如 Google Authenticator、Microsoft Authenticator 等,可在用户的移动设备上生成动态验证码。这些验证码通常每隔一定时间(如 30 秒)就会更新一次,用户需要在登录时输入应用程序当前显示的验证码。 3.硬件令牌 是一种专门的物理设备,用于生成一次性密码。用户在登录时,需要输入硬件令牌上显示的密码。硬件令牌有多种类型,如基于时间同步的令牌和基于事件同步的令牌。 4.生物识别技术 利用用户的生物特征进行认证。例如,指纹识别技术通过扫描用户的指纹来确认身份,面部识别技术通过分析用户的面部特征来进行认证。#二级认证的优点1.增强安全性 大大提高了账户的安全性,即使攻击者获取了用户的密码,由于缺少第二个认证因素,也无法登录用户账户,从而有效防止账户被盗用。 2.降低风险 对于在线银行、电子商务等涉及资金和敏感信息的平台,二级认证可以降低用户遭受诈骗和数据泄露的风险,保护用户的财产安全和个人信息。#二级认证的缺点1.增加用户操作成本 需要用户额外输入验证码或进行其他操作,可能会增加用户登录或操作的时间和复杂度,给用户带来一定的不便。 2.兼容性问题 某些设备或浏览器可能不支持特定的二级认证方式,或者在使用过程中可能会出现技术故障,影响用户的使用体验。 二级认证是一种有效的安全措施,可以显著提高用户账户的安全性,但在实际应用中,也需要权衡其带来的便利性和成本等因素。

九、查看命令路径

1.whichwhich主要用于查找命令的可执行文件路径,适用于确认命令是否存在以及其具体位置。 2.whatiswhatis用于快速获取命令的简短描述信息,帮助用户了解命令的大致功能。 3.whereiswhereis可以查找命令的二进制文件、源文件和帮助文件路径,提供更全面的命令文件位置信息。 4.可以通过查看/bin和/sbin目录来搜索命令 /bin/ /sbin/

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-21 18:22:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/484243.html
  2. 运行时间 : 0.076580s [ 吞吐率:13.06req/s ] 内存消耗:4,857.52kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0df282504a6ab762b4b8f3dbbce23f29
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000651s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000840s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000405s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000285s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000506s ]
  6. SELECT * FROM `set` [ RunTime:0.000206s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000610s ]
  8. SELECT * FROM `article` WHERE `id` = 484243 LIMIT 1 [ RunTime:0.000573s ]
  9. UPDATE `article` SET `lasttime` = 1776766949 WHERE `id` = 484243 [ RunTime:0.000748s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000233s ]
  11. SELECT * FROM `article` WHERE `id` < 484243 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000421s ]
  12. SELECT * FROM `article` WHERE `id` > 484243 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000526s ]
  13. SELECT * FROM `article` WHERE `id` < 484243 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001296s ]
  14. SELECT * FROM `article` WHERE `id` < 484243 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000904s ]
  15. SELECT * FROM `article` WHERE `id` < 484243 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000817s ]
0.078236s