47-用户和权限管理
- 用户的管理和相关管理命令
- 用户的基础概念
- 用户UID
- 区分用户类别
- 创建用户- useradd
- 修改用户- usermod
- 删除用户- userdel
- 修改用户密码- passwd
- 实验:
- 用户的管理文件
- 用户组的基础概念
- 用户组GID
- 用户组分类
- 创建组- groupadd
- 修改组-groupmod
- 删除组- groupdel
- 关联用户和组-gpasswd
- OpenEuler中用户关联的文件
- OpenEuler中用户组关联的文件
- 实验:
- 文件权限的相关概念及相关操作
- 权限概述
- 权限示例-访问权限
- 常用权限设置命令
- 修改文件权限- chmod
- 修改文件权限-chown
- 修改文件权限- chgrp
- 预设权限掩码-umask
- 其他权限管理
- 实验
用户的管理和相关管理命令
用户的基础概念
- Linux是一个多用户的操作系统:
所有要使用系统资源的用户需要先向系统管理员申请一个账号,之后以此账号进入系统;
可以在系统上建立多个用户,而多个用户可以在同一时间内登录至同一系统执行不同的任务。 - 用户:
用户是能够获取系统资源的权限的集合;
每个用户都会分配一个特有的id号-uid。
用户UID
- UID指的是用户的ID (User lD),一个用户UID标示一个给定用户,UID是用户的唯一标示符,通过UID可以区分不同用户的类别(用户在登录系统时是通过UID来区分用户,而不是通过用户名来区分)∶
- 超级用户:也称为root用户,它的UID为O0,超级用户拥有系统的完全控制权,可以进行修改、删除文件等操作,也可以运行各种命令,所以在使用root用户时要十分谨慎;
- 普通用户:也称为一般用户,它的UID为1000-60000之间,普通用户可以对自己目录下的文件进行访问和修改,也可以对经过授权的文件进行访问;
- 虚拟用户:也称为系统用户,它的UID为1-999之间,虚拟用户最大的特点是不提供密码登录系统,它们的存在主要是为了方便系统的管理。
区分用户类别
- 通过查看不同用户UID来区分用户的类别为超级用户、普通用户或是虚拟用户。
- 查看UID命令:id [option] [user_name]。
- 相关参数:
-u,-user : 只输出有效UID
-n,-name : 对于-ugG输出名字而不是数值
-r,-real : 对于-ugG输出真实ID而不是有效ID - UID为0时,标识的是超级用户(即root用户),UID为1000-60000之间,标识的是普通用户,UID为1-999之间,标识的是虚拟用户(即系统用户)。
创建用户- useradd
- useradd命令可用来创建用户账号,并保存在/etc/passwd文件中。
- 语法: useradd [options] user_name。
其中的命令选项说明如下:
-u指定用户UID
-o配合“-u”属性,允许UID重复
-g指明用户所属基本组,既可为用户组名,也可为GID(该组必须已存在)
-d指定用户的home目录,并自动创建用户home目录
-M : 在创建用户时不创建home目录
-s指明用户的默认shell程序
-D显示或更改默认配置
uid:1002 gid:1004
家目录:home/user
userr默认的shell程序是bin目录下的bash程序
修改用户- usermod
- usermod可用来修改用户账号的各类信息。
- 语法: usermod [options] user_name。
其中的命令选项说明如下:
-u 修改用户UID
-g 修改用户所属用户组口
-l 修改用户账号名称
-L 锁定指定的用户,让其无法登录
-d 修改用户home目录
-s 修改用户默认shell程序
删除用户- userdel
- userdel用于删除指定的用户以及与该用户相关的文件。
- 语法:userdel [options] user_name。
其中的命令选项说明如下:
-f 强制删除用户账号,即使用户当前处于登录状态
-r 删除用户,同时删除与用户相关的所有文件
-h 显示命令的帮助信息
(userdel命令用于删除指定的用户以及用户相关的文件,实际上是对系统的用户账号文件进行了修改)
修改用户密码- passwd
- passwd用来修改用户的密码。
- 语法: passwd [OPTION…] user_name。
其中的命令选项说明如下:
-n 设置修改密码最短天数
-× 设置修改密码最长天数
-w 设置用户在密码过期前多少天收到警告信息
-1 立即让用户的密码过期
-i 设置密码过期多少天后禁用账户
-I 立即让用户锁定
-u 立即解除用户的锁定
-d 删除用户密码
-S 显示用户密码信息
(root用户可以修改任何用户的密码,普通用户只能修改自身的密码)
实验:
用户的管理文件
用户组的基础概念
- 用户组:
具有相同特性用户的逻辑集合,通过组的形式使得具有相同特性的多个用户能够拥有相同的权限,便于管理;
每一个用户都拥有自己的私有组;
同一组内的所有用户可以共享该组下的文件;
每一个用户组都会被分配一个特有的id号-gid。
用户组GID
- 用户组ID (Group lD,简称为GID)和用户UID类似,作为唯一标识符来标示系统中的一个用户组:
在添加账户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组;
GID与UID都会将0赋予给超级用户或者具有超级用户的用户组(也就是root用户组);
系统会预留一些较前的GID给虚拟用户(也称为系统用户)。 - 可以通过输入命令行id [option] [user_name],查看用户组gid以及每个用户组下拥有的用户数量。
用户组分类
- 用户组分类:
普通用户组 : 可以加入多个用户;
系统组 : 一般加入的用户为系统用户;
私有组 : 也称为基本组,在创建用户时,如果没有为其指明所属用户组则会为该用户定义一个私有的用户组,且该用户组名称与用户名同名。
创建组- groupadd
- groupadd可用来创建一个新的用户组,并将新用户组信息添加到系统文件中。
- 语法: groupadd [options] group_name
其中的命令选项说明如下:
-f 如果组已存在,则成功退出
-g 为新用户组所使用的GID
-h 显示此帮助信息并退出
-o 允许创建有重复GID的组
-p 为新用户组使用此加密过的密码
-r 创建一个系统账户
修改组-groupmod
- groupmod可用来更改群组识别码或者名称。
- 语法: groupmod [options] group_name
- 其中的命令选项说明如下:
-g 修改为要使用的GID
-h 显示此帮助信息并退出
-n 修改为要使用的组名称
-o 允许使用重复的GID
-p 更改密码(加密过的)
删除组- groupdel
- Groupdel可用来删除用户组,但若是用户组中包含一些用户,需先删除掉用户后再删除用户组:
- 语法: groupdel [options] group_name
其中的命令选项说明如下:
-f 即便是用户的主组也继续删除
-h 显示此帮助信息并退出
(groupdel命令用于从系统中删除组,需要注意的是,若是在组中仍然包括某些用户,此时需要先删除这些用户后,才能删除组)
关联用户和组-gpasswd
- gpasswd可以用来添加或删除用户到组中。
- 语法:gpasswd [option] group_name。
其中的命令选项说明如下:
-a 向组GROUP中添加用户USER
-d 从组GROUP中添加或删除用户
-M 设置组GROUP的成员列表
-A 设置组的管理员列表
-r 移除组GROUP的密码
-R 向其成员限制访问组GROUP
-Q 要chroot进的目录
OpenEuler中用户关联的文件
- openEuler下涉及到管理用户信息的文件一般有以下两种.
- /etc/passwd : 用户账号信息文件。
在这个文件中,保存着系统中所有用户的主要信息,每一行代表着一个记录;
每一行用户记录中定义了用户各个方面的相关属性。 - /etc/shadow : 用户账号信息加密文件(又称为“影子文件”)。
用于存储系统中用户的密码信息;
由于/etc/passwd文件允许所有用户读取,容易导致密码泄露,因此将密码信息从该文件中分离出来,单独放置在/etc/shadow文件中。
OpenEuler中用户组关联的文件
- openEuler下涉及到管理用户组信息的文件一般有以下两种:
- /etc/group : 组信息文件。
在这个文件中,保存着用户组的所有信息,每一行记录代表一个用户组;
将用户分组是对用户进行管理及控制访问权限的一种手段,每个用户都属于一个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。 - /etc/gshadow : 组信息加密文件。
在这个文件中,会保存用户组加密信息,比如说用户组管理密码就保存在此(与/etc/shadow文件相似);
与/etc/group文件互补,对于大型服务器来说,拥有很多用户和组,此时会针对这些用户和组来生成一些复杂的权限模型,此时设置并管理密码就显得尤为重要。
实验:
文件权限的相关概念及相关操作
权限概述
- 权限是操作系统用来限制对资源访问的一种机制,权限一般分为读、写、执行。
- 在Linux系统中,不同的用户所处的地位也不尽相同,不同地位的用户拥有不同的权限等级,为了保证系统的安全性,Linux系统针对不同用户的权限制定了不同的规则。
- 在Linux系统中,每个文件或目录都具有特定的访问权限、所属用户及所属组,通过这些规则可以限制什么用户、什么组可以对特定的文件执行什么样的操作。
权限示例-访问权限
- 在文件信息中显示为:
-r 允许读取文件内容或目录下全部内容
-w 允许写文件或在目录下创建、删除文件
-x 允许执行文件或进入目录
-无任何权限(显示方式在r、w、x的位置处显示为-) - 以usertxt文件为例: drwXr-xr-x. 2 root root 4096 Jun 1 14:00 usertxt
常用权限设置命令
- chmod命令:修改文件权限。
Linux的文件调用权限分为三级:文件所有者、群组及其他,通过chmod命令可以控制文件被何人调用;
使用权限:文件所有者。 - chown命令:修改文件属主属组(只允许管理员)。
Linux做为多用户多任务系统,所有文件都有其所有者,通过chown可以将特定文件的所有者更改为指定用户或组;
使用权限:管理员(root用户)。. - chgrp命令:修改文件属组。
通过chgrp命令可以对文件或目录的所属群组进行更改;
使用权限:管理员(root用户)。 - umask命令:遮罩码。
通过umask命令可以指定在建立文件时进行权限掩码的预设;
使用权限:管理员和普通用户。
修改文件权限- chmod
-
文件调用权限针对于文件所有者,所属组以及其他人,使用chmod可以对文件的调用权限进行修改。
-
- 语法: chmod [OPTION]…MODE[,MODE]…FILE…
-
其中的命令选项说明如下:
-
根据配置场景,可以同时修改文件的一组权限,也可以只修改文件的某个权限。
修改文件权限-chown
- 利用chown可以将指定文件的所有者改为指定的用户或组。
- 语法: chown [OPTION]… [OWNER][:[GROUP]] FILE…
·其中的命令选项说明如下:
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h : 修改符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件 - 根据配置场景,可以只修改属主,也可以只修改属组,亦可以同时修改属主属组。
修改文件权限- chgrp
- chgrp可用来修改文件或目录的所属组。
- 语法: chgrp [OPTION]…GROUP FILE…·其中的命令选项说明如下:
-v : 显示指令执行过程
-c : 效果类似“-v"参数,但是只回报更改的部分
-f : 不显示错误信息
-h : 只修改符号连接的文件,而不对其他任何相关文件进行变动
-R : 递归处理,即将指定目录下的所有文件及子目录一并处理 - 根据配置场景更改文件所属群组。
预设权限掩码-umask
- umask可用来指定在建立文件或目录时进行权限掩码的预设。
- 语法: umask: umask [-p] [-S] [mode]
·其中的命令选项说明如下:
-p : 显示命令名称
-S : 文字形式表示权限掩码 - 常见umask值及与之对应的文件或目录权限:
默认777-umask-111 = 文件权限
其他权限管理
命令- sudo
- sudo可允许普通用户执行root用户才能执行的任务。·
- 语法: sudo-h / -K / -k |-V
·其中的命令选项说明如下:
-h : 显示版本号以及指令的使用说明
-k : 使使用者在下次执行sudo时询问密码
-V : 显示版本编号
-l : 显示使用者的权限
-L : 显示sudos设置
etc…
实验