目 录CONTENT

文章目录

Linux第四讲:用户管理特别篇

koniaoer
2024-03-29 / 1 评论 / 0 点赞 / 76 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2024-04-21,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

该章节所有命令都在上一讲介绍过

一.认识与用户账号有关的系统文件

1.Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性,这个文件对所有用户都是可读的

含义 用户名:口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录Shell

用户名:通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头

口令:虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”

用户标识名:一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等,通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

组标识号:它对应着/etc/group文件中的一条记录

注释性描述:例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出

主目录:它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

登录shell:Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等,系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh,用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器),利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中

2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

登录名:/etc/passwd文件中的登录名相一致的用户账号

加密口令:存放的是加密后的用户密码,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令,加密显示为集合{ ./0-9A-Za-z }

最后一次修改时间:表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样

最小时间间隔:指的是两次修改口令之间所需的最小天数。

最大时间间隔:指的是口令保持有效的最大天数。

警告时间:字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

不活动时间:表示的是用户没有登录活动但账号仍能保持有效的最大天数。

失效时间:字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了

3、用户组的所有信息都存放在/etc/group文件中

将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段

每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组

当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员

用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段

组名:口令:组标识号:组内用户列表

组名:是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

口令:字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。

组标识号:与用户标识号类似,也是一个整数,被系统内部用来标识组。

组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

二.用户管理命令

useradd:建立用户账号

语法:useradd [参数] [user]

但采用该命令创建一个新用户时,系统自动在passwd和shadow文件的末行添加一行该用户的信息,且在根目录下以用户名称自动生成一个目录文件

参数:

-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。

-d<登入目录> 指定用户登入时的起始目录。

-D   变更预设值.

-e<有效期限> 指定帐号的有效期限。

-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。

-g<群组>   指定用户所属的群组。

-G<群组>   指定用户所属的附加群组。

-m   制定用户的登入目录。

-M   不要自动建立用户的登入目录。

-n   取消建立以用户名称为名的群组.

-r   建立系统帐号。

-s<shell>    指定用户登入后所使用的shell。

-u<uid>   指定用户ID。

passwd:更改用户密码

语法:passwd [参数] [user]

参数:

-d 删除密码(无密码)

-f 强迫用户下次登录时必须修改口令

-w 口令要到期提前警告的天数

-k 更新只能发送在过期之后

-l 停止账号使用

-S 显示密码信息

-u 启用已被停止的账户

-x 指定口令最长存活期

-g 修改群组密码

-i 口令过期后多少天停用账户

usermod:修改用户帐号的各项设定

语法:usermod -LU [修改设定] [用户账户]

参数:

-c<备注>   修改用户帐号的备注文字。

-d登入目录>   修改用户登入时的目录。

-e<有效期限>  修改帐号的有效期限。

-f<缓冲天数>   修改在密码过期后多少天即关闭该帐号。

-g<群组>   修改用户所属的群组。

-G<群组>   修改用户所属的附加群组。

-l<帐号名称>   修改用户帐号名称。

-L   锁定用户密码,使密码无效。

-s<shell>   修改用户登入后所使用的shell。

-u<uid>   修改用户ID。

-U   解除密码锁定。

userdel:删除用户

语法:userdel [user]

chage:设置用户口令的失效期限

语法:chage [参数] [内容] [user]

参数:

-d: --lastday 最近日期 将最近一次密码设置时间设为"最近日期"

-E: --expiredate 过期日期 将帐户过期时间设为"过期日期"

-h: --help 显示此帮助信息并退出

-I: inactive 失效密码 将因过期而失效的密码设为"失效密码"

-l: --list 显示帐户年龄信息

-m: --mindays 最小天数 将两次改变密码之间相距的最小天数设为"最小天数"

-M: --maxdays 最大天数 将两次改变密码之间相距的最大天数设为"最大天数"

-W: --warndays 警告天数 将过期警告天数设为"警告天数"

su 切换用户

su [user]

三.批量添加用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户的方法。Linux系统提供了创建大量用户的工具,可以让您立即创建大量用户,方法如下:

(1)先编辑一个文本用户文件

每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号

(2)以root身份执行命令 /usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据,创建用户

然后可以执行命令 vipwvi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建

(3)执行命令/usr/sbin/pwunconv

/etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadowshadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能

(4)编辑每个用户的密码对照文件

以 user001:123456 格式进行密码设置

(5)以 root 身份执行命令 /usr/sbin/chpasswd

创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏

(6)确定密码经编码写入/etc/passwd的密码栏后

执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow

0

评论区