目录
前言
1、Linux操作系统是否允许多个用户同时登录到系统,使用系统资源?
回答:是的,Linux是一个多用户多任务的操作系统
2、Windows系统下,是如何区分不同的用户,如何规范用户权限的?
回答:通过用户账户来区分不同的用户,并且将用户帐户添加到组中,通过规范组的权限来规范用户的权限。
Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源。为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限,需要区分不同的用户,就产生了用户帐户和组群。
一、用户和组群文件
1、用户和组群概述
用户帐户是用户的身份标识,用户通过用户帐户可以登录到系统,并且访问已经被授权的资源。系统依据账户来区分属于每个用户的文件、进程、任务,并给每个用户提供特定的工作环境,使每个用户的工作都能各自独立不受干扰地工作。
Linux系统下的用户帐户分为两种:
普通用户帐户
超级用户帐户(root):又称为根用户或管理员账户,可以对普通用户和整个系统进行管理。
组群是具有相同特性的用户的逻辑集合,使用组群有利于系统管理员按照用户的特性组织和管理用户,提高工作效率。
在为资源授权时可以把权限赋予某个组群,组群中的成员即可自动获得这种权限。
一个用户账户至少属于一个用户组,当是多个组群的成员时,其中某个组群是该用户的主组群(私有组群),其他组群是该用户的附属组群(标准组群)。
用户名 |
用来标识用户的名称,可以是字母、数字组成的字符串,区分大小写 |
密码 |
用于验证用户身份的特殊验证码 |
用户标识(UID) |
用来表示用户的数字标识符 |
用户主目录 |
用户的私人目录,也是用户登录系统后默认所在的目录 |
登录Shell |
用户登录后默认使用的Shell程序,默认为/bin/bash |
组群 |
具有相同属性的用户属于同一个组群 |
组群标识(GID) |
用来表示足群的数字标识符 |
每一个用户都有一个唯一的身份标识,称为用户ID(UID);每一个用户组也有一个唯一的身份标识,称为用户组ID(GID)。
root用户的UID为0。
普通用户的UID可以在创建时由管理员指定,如果不指定,用户的UID默认从500开始顺序编号。
2、用户和组群配置文件
用户帐户文件:
/etc/passwd文件:用户帐户信息
Vi /etc/passwd;每行用“:”分隔为7个域
用户名、加密口令、UID、GID、用户描述信息、主目录、命令解释器
代表无登录权限
/etc/shadow文件:用户口令
所有用户对passwd文件均可读取,只有root用户对shadow文件可读,因此密码存放在shadow文件中更安全
组群文件:
/etc/group文件:组群帐户信息
用户的组账户的信息存放在group文件中,任何用户都可以读取,用“:”分隔为4个域。
组群名称、组群口令(一般为空)、GID、组群成员列表
用户的主组群并不把该用户作为成员列出
/etc/gshadow文件:组群口令、管理员等管理信息
gshadow文件用于存放组群的加密口令、组管理员等信息,只有root用户可读,用“:”分隔成4个域
/etc/login.defs文件
建立用户帐户时根据/etc/login.defs文件的配置设置用户帐户的某些选项。
用户邮箱目录
用户密码最长有效天数、用户密码最短有效天数、用户密码的最小长度、用户密码过期前提前警告的天数
自动产生的最小UID、自动产生的最大UID
自动产生的最小GID、自动产生的最大GID
如果定义,则表示“删除用户时,同时删除用户的相关作业”
创建用户账户时为用户创建目录
二、用户账户的创建和管理
1、新建用户
useradd或者adduser命令
Useradd命令的格式是: useradd [选项] <username>
例如:创建ph用户
若新建用户已经存在
useradd命令的选项
-c comment 用户的注释性信息
-d home_dir 指定用户的主目录
-e expire_date 禁用帐号的日期,格式为:YYYY-MM-DD
-f inactive_days 设置帐户过期多少天后,用户帐户被禁用
-u UID 指定用户的UID
-g initial_group 用户所属主组群的组群名称或者GID
-G group-list 用户所属的附属组群列表
-m 若用户主目录不存在则创建它
-M 不要创建用户主目录
-n 不要为用户创建用户私人组群
-p passwd 加密的口令
-r 创建UID小于500的不带主目录的系统帐号
-s shell 指定用户的登录Shell,默认为/bin/bash
新建用户案例
题目:新建用户user1,UID为510,指定其所属的私有组为mlx(mlx组的标识符为500),用户的主目录为/home/user1,用户的Shell为/bin/bash,用户的密码为123456,帐户永不过期。
2、设置用户口令
新建用户后,要为用户设置口令,未设置口令的用户不能登陆系统,如:
指定和修改用户帐户口令:passwd
修改用户帐户口令:chage
passwd命令
超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令
格式:passwd [选项] 〈username〉
passwd命令的选项
-l 锁定(停用)用户帐
-u 口令解锁
-d 将用户口令设置为空,这与未设置口令的帐户不同。未设置口令的帐户无法登录系统,而口令为空的帐户可以。
-f 强迫用户下次登录时必须修改口令
-n 指定口令的最短存活期
-x 指定口令的最长存活期
-w 口令要到期前提前警告的天数
-I 口令过期后多少天停用帐户
-S 显示帐户口令的简短状态信息
passwd命令案例
案例:假设当前用户为root,则下面的两个命令分别为:root用户修改自己的口令和root用户修改user1用户的口令。
root用户修改自己的口令
普通用户修改口令时,passwd命令会首先询问原来的口令,只有验证通过才可以修改。
如:
chage命令
格式:chage [选项] 〈username〉
选项:
-l 列出帐户口令属性的各个数值
-m 指定口令最短存活期
-M 指定口令最长存活期
-W 口令要到期前提前警告的天数
-I 口令过期后多少天停用帐户
-E 用户帐户到期作废的日期
-d 设置口令上一次修改的日期
chage命令案例
案例:设置user1用户的最短口令存活期为6天,最长口令存活期为60天,口令到期前5天提醒用户修改口令。
设置完成后查看各属性值
3、用户帐户维护
修改用户帐户
命令:usermod
格式:usermod [选项] 〈username〉
例:修改用户user1的主目录为/var/user1,把启动Shell修改为/bin/tcsh
查看修改后的结果
禁用和恢复用户帐户
禁用和恢复用户帐户的实现方法:
passwd命令
禁用user1帐户
查看(被锁定的用户密码栏前面会加上!)
恢复user1帐户(解除锁定)
usermod命令
禁用user1用户帐户
解除user1用户锁定
直接修改/etc/passwd或/etc/shadow文件
可将/etc/passwd文件或/etc/shadow文件中关于user1帐户的passwd域的第一个字符前面加上一个“*”,达到禁用帐户的目的,在需要恢复的时候只要删除字符“*”即可。
如果只是禁止用户帐户登录系统,可以将其启动Shell设置为/bin/false或者/dev/null。
删除用户帐户
直接编辑/etc/passwd和/etc/shadow文件,删除用户所对应的行
用userdel命令删除
格式:userdel [-r] <username>
案例:删除用户user1,保留用户主目录
三、组群管理
1、维护组群账户
创建组群的命令:groupadd或addgroup
案例: 创建一个新的组群,组群名称为testgroup
修改组群的命令: groupmod [选项] 〈groupname〉
修改组群命令的参数:
-g gid 把组群的GID改成gid
-n group-name 把组群的名称改为name
-o 强制接受更改的组的GID为重复的号码
修改组群 修改gid:
修改组群名称:
删除组群的命令:groupdel
例:删除grouptest组群
在Red Hat中使用不带任何参数的useradd命令创建用户时,会同时创建一个和用户帐户同名的组群,称为主组群。
当一个组群中必须包含多个用户时则需要使用附属组群。
在附属组中增加、删除用户都用gpasswd命令,该命令只有root用户和组管理员才能够使用。
2、为组群添加用户
gpasswd命令
gpasswd命令的格式 : gpasswd [选项] [用户] [组]
gpasswd命令的选项:
-a 把用户加入组
-d 把用户从组中删除
-r 取消组的密码
-A 给组指派管理员
为组群添加用户- 案例
案例:新建组群testgroup,把ph用户加入testgroup组,并指派ph为管理员 。
四、使用用户管理器管理用户和组群
用户管理器
新建用户
修改用户属性
组群管理
五、常用的账户管理命令
vipw
命令格式:[root@RHEL4 ~]# vipw
功能:用于直接对用户帐户文件/etc/passwd进行编辑,使用的默认编辑器是vi。
特点:在功能上等同于“vi /etc/passwd”命令,但比vi更安全,因为在对/etc/passwd文件进行编辑时将自动锁定该文件,编辑结束后对该文件进行解锁,保证了文件的一致性。
vigr
命令格式:[root@RHEL4 ~]# vigr
功能:用于直接对组群文件/etc/group进行编辑,使用的默认编辑器是vi。
特点:在功能上等同于“vi /etc/group”命令,但比vi更安全,因为在对/etc/group文件进行编辑时将自动锁定该文件,编辑结束后对该文件进行解锁,保证了文件的一致性。
pwck
命令格式:[root@RHEL4 ~]#pwck
功能:用于验证用户帐户文件认证信息的完整性,检测/etc/passwd文件和/etc/shadow文件的每行中字段的格式和值是否正确。
grpck
命令格式: [root@RHEL4 ~]#grpck
功能:用于验证组群文件认证信息的完整性,检测/etc/group文件和/etc/gshadow文件的每行中字段的格式和值是否正确。
id
命令格式:id [选项] 〈username〉
功能:查看用户UID和GID以及用户所属的组列表
选项:
-g:只显示用户的组的GID
-G:只显示用户的附属组的GID
-u:只显示UID
id案例
案例:查看当前用户的UID、GID信息及用户所属组列表
案例:查看ph用户的UID、GID信息及所属组
finger
命令格式:finger [选项] 〈username〉
功能:查看用户的相关信息,包括用户的主目录、启动Shell、用户名、地址、电话等存放在/etc/passwd文件中的记录信息
选项:
-l 以长格形式显示,是默认选项
-s 以短格形式显示
finger案例
案例:查看当前用户的信息
案例:查看用户ph的信息
chfn案例
功能:修改用户的办公地址、办公电话和住宅电话等
案例:
chsh案例
功能:修改用户的启动Shell
实例:
whoami案例
功能:显示当前用户的名称
实例:
su案例
功能:转换当前用户到指定的用户帐户
实例:
su命令不指定用户名时将从当前用户转换为root用户,但需要输入root用户的口令。
newgrp案例
功能:转换用户的当前组到指定的主组群
实例:
总结
1.新建用户账户并设置账户密码
2.锁定用户,解除锁定
3.新建组群并设置组群口令
4.为用户和组群改名,修改用户口令
5.为组群添加用户
6.删除用户口令和组群
转载:https://blog.csdn.net/qq_44762986/article/details/104640111