用户与组的管理
一、用户与用户组概念
Linux是一个多用户、多任务的服务器操作系统。Linux用户是根据角色定义的,具体分为三种角色:
-
超级用户:拥有对系统的最高管理权限,默认是root用户。
-
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。
-
虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
-
**主要组(主组):**每个用户有且只有一个主要组,创建用户时默认创建。
-
**附属组(补充组):**用户可以是零个或多个附属组成员。一般用于帮助确保用户具有对系统中文件及其他资源的访问权限。
二、用户配置文件
(1)用户配置文件/etc/passwd
–在passwd配置文件中,从左到右各个字段的含义如下:(cat 查看目录下文件信息)
用户名:用户登录系统时使用的用户名。**
口令:存放加密的口令,被/etc/shadow文件保护。
用户标识号(UID):系统内部用它来标识用户,每个用户的UID都是唯一的。
用户组标识号(GID):系统内部用它来标识用户所属的组,这里的GID是主组GID。
注释性描述:为了方便管理和记忆该用户而添加的信息。
用户主目录:也称家目录,用户登录系统后所进入的目录。
命令解释器:指示该用户使用的Shell,CentOS Linux 7默认的是bash。如果指定Shell
为/sbin/nologin,则代表用户无法登录系统。
(2)用户密码配置文件/etc/shadow
–在shandow配置文件中,从左到右各个字段的含义如下:
用户名:用户账户名。
密码:用户的加密密码。
最后一次修改的时间:从1970年1月1日起,到用户最后一次更改密码的天数。
最小时间间隔:从1970年1月1日起,到用户可以更改密码的天数,(0表示随时可以变更)。
最大时间间隔:从1970年1月1日起,到必须更改密码的天数,否则密码将过期,(99999表示永远不过期)。
警告时间:在密码过期之前多少天提醒用户更新,默认值是7天。
不活动时间:在用户密码过期之后到禁用账户的天数。
失效时间:从1970年1月1日起,到账户被禁用的天数。
标志:保留位。
三、用户组配置文件
(1)用户组配置文件/etc/group,
–文件中各字段的含义从左到右分别是:
组名:组的名称。
组口令:用户组的口令,用x表示口令是被/etc/gshadow文件保护的。
组标识号(GID):系统内部用它来标识用户组,每个用户组的GID都是唯一的。
组成员:该组的成员。
(2)用户组密码配置文件/etc/gshadow
–文件中各字段的含义从左到右分别是:
组名:组的名称。
组口令:用户组的口令,保存已加密的口令。
组的管理员帐号:组的管理员帐号,管理员有权对该组添加、删除帐号。
组成员:该组的成员,多个用户用“,”分开。
四、用户管理
(1)用useradd命令创建用户
命令格式:useradd [选项] 用户名
选项 功能说明
-d 指定用户主目录
-g 指定用户组
-m 若主目录不存在,则创建
-M 不创建主目录
-s 指定登录时使用的Shell类型,默认为/bin/bash,如果为/bin/nologin就是虚拟用户
-c 设置对该账号的注释说明文字
-r 创建系统账号(用户ID小于1000,从999起按照递减的顺序创建),默认不创建对应的主目录
-u 手工指定新用户的ID值,该值必须唯一,且大于999。
(2)用passwd命令管理用户登录密码
命令格式:passwd [选项] [用户名称]
选项 功能说明
-l 锁定用户密码
-u 解锁用户密码
-S 查询用户密码状态
-d 删除用户密码
【举例1】创建用户zhangsan,指定登录类型为/bin/bash;用户lisi,登录类型为
/sbin/nologin,并分别设置密码为:123456。并测试两个用户能否登录系统。
#useradd -s /bin/bash zhangsan
#useradd -s /bin/nologin lisi
【举例2】创建用户tom,并设置tom的真实姓名为:tom-sing,家庭电话:13911202319,公司地址:tf5jie,公司电话:028-85699999
#useradd -c “tom-sing 13911202319 tf5jie 028-85699999” tom
(3)用usermod命令修改用户属性
命令格式:usermod 选项 用户名
选项 功能说明
-l 修改用户名
-c 修改用户描述信息
-d 修改主目录
-L 锁定帐号,临时禁止用户登录
-U 对帐号解锁
-g 修改用户所属组
-G 修改用户附加组
-s 修改用户登录的shell类型
-u 修改用户ID号
-e 修改用户有效期
-f 修改用户密码在多少天后过期
【举例1】修改用户tom的名字为jack
#usermod -l jack tom
【举例2】修改用户jack的注释名为jack-sing
# usermod -c jack-sing jack
【举例3】# usermod -s /bin/nologin jack
(4)用userdel命令删除用户
命令格式:userdel [-r] 用户名
(5)用于修改用户口令有效期限的chage命令
命令格式:chage [选项] 用户名
选项 功能说明
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码
-W 用户密码到期前,提前收到警告信息的天数
-M 密码保持有效的最大天数
-E 账号到期的日期。过了这天,此账号将不可用
-d 上一次更改的日期
-I 停滞时期。如果一个密码已过期这些天,那么此账号将不可用
-l 列出当前的设置。由非特权用户来确定他们的密码或账号何时过期
【举例】设置jack用户的密码最大有效期为30天,提前9天警告,失效时间40天。
#chage -M 18054 -W 9 -E 18064
(6)修改用户注释信息的chfn命令
命令格式:chfn [选项] [用户名]
选项 功能说明
-f 设置真实姓名。
-h 设置家中的电话号码。
-o 设置办公室的地址。
-p 设置办公室的电话号码。
(7)修改用户Shell类型的chsh命令
命令格式:chsh [s] [用户名]
五、用户组管理
(1)用groupadd命令创建用户组
命令格式:groupadd [r] 用户组名称
(2)用groupmod命令修改用户组属性
命令格式:groupmod 选项 组名
选项 功能说明
-n 修改组名
-g 修改组标识号GID
(3)用groupdel命令删除用户组
命令格式:groupdel 组名
(4)用gpasswd命令维护组中成员
命令格式:gpasswd 选项 用户名 组名
选项 功能说明
-a 添加用户到组。
-d 将用户从组中删除。
-A 设置用户为组管理员。
【举例】新建yanyan、yuanyuan、lili三个用户和teacher组将lili设置为teacher
组的管理员,那么lili就具有向该组添加用户和移除用户的权限。也可以为该
组设置密码,其他用户就可以通过newgrp命令切换成该组的成员身份,否则只
有本组成员才能使用该组身份。
#useradd yanyan
#useradd yuanyuan
#useradd lili
#gpasswd -a lili teacher
#gpasswd -A lili teacher
#gpasswd teacher
六、扩展知识
(1)查看用户信息
- id命令
(2)输出指定用户所在组
- groups命令
(3)查看当前登录用户
- who am i命令
(4)查看当前用户
- w命令
(5)查看登录用户
- who命令
(6)查看登录用户历史
- last命令