本篇博客主要介绍Liunx操作系统中有关用户与组相关的属性与权限,并且详解如何对文件/目录进行权限、归属的设置。接下来我将主要从以下几个部分进行详细的讲解


目录简述:

  • 用户账户和组账户概述
  • 用户账户和组账户管理
  • 查询相关账户信息
  • 查看目录或文件的属性
  • 设置目录或文件的权限、归属

一、用户账户和组账户概述、管理

1、用户账户和组账户概述

1-1 组成部分

用户账户主要分为以下几个部分
Liunx中的账号与文件/目录权限管理——理论篇_第1张图片
组账户主要分为以下几个部分
Liunx中的账号与文件/目录权限管理——理论篇_第2张图片

1-2 文件存放位置及账户详解

用户账户:
存放位置:所有账户文件都存放在“/etc/passwd”中,所有的密码文件都存放在“/etc/shadow”中(不是明文,需要通过哈希算法进行解码)
格式:这里以root账户做例子,这里用户账户ID、组账户ID即为UID、GID
Liunx中的账号与文件/目录权限管理——理论篇
UID和GID这两者为账户标识符
超级(root)用户的UID为0,程序用户的UID为1~499,普通用户的UID为500~60000。
GID表示的是组的组标识号
Liunx中的账号与文件/目录权限管理——理论篇_第3张图片
Liunx中的账号与文件/目录权限管理——理论篇
组账户:
所有账户文件都存放在“/etc/group”中,所有的密码文件都存放在“/etc/gshadow”中(一般不设密码,如果有密码同样不是明文)
格式:以adm这个附加组为例
Liunx中的账号与文件/目录权限管理——理论篇_第4张图片

2、用户账户和组账户管理

1-1用户账户管理

(1)useradd指令添加用户账户
格式:useradd [选项] 新建的用户名
常用选项:
-u 指定UID
-d 指定宿主目录(不能事先创建好相应的空目录)
-e 指定失效时间(YYYY-MM-DD或者明确的天数)
-G 指定附加组(附加组需要事先建好)
-g 指定基本组
-M 不创建宿主目录
-s 指定shell登录/bin/bash(登录)或者/sbin/nologin(禁止登录)
(2)passwd指令设置用户密码
格式:passwd [选项] 密码
常用选项:
-d 删除原有密码
-S 查看用户状态
-l 锁定用户密码
-u 解锁用户密码
不使用选项 修改当前用户密码
(3)usermod指令修改用户属性
格式:usermod [选项] 用户名
常用选项:
-L 锁定用户
-U 解锁用户
剩下的“-u、-d、-e、-g、-G、-s”含义与useradd指令中的含义完全相同。
(4)userdel指令删除用户
格式:userdel [-r] 用户名
选项:常用的就-r,连目标用户的家目录一齐删除(不用-r会留下一个空文件夹)

1-2组账户管理

组账户的管理基本相同于用户账户
(1)groupadd指令添加组账户
格式:groupadd [-G GID] 组账户名
实例:
Liunx中的账号与文件/目录权限管理——理论篇
(2)gpasswd指令添加、删除组成员(也有设置组密码的功能不过不常用)
格式:gpasswd [选项] 组账户名
常用选项:
-a 添加组成员(追加添加,一次一个)
-d 移除组成员(一次移除一个)
-M 定义组成员(每个组成员之间逗号分隔,会覆盖原有组成员)
(3)gpassdel指令删除组账户
格式:gpassdel [组账户名]

3、常用查询用户信息指令

group 组用户名——查询组信息
id 用户名——查询用户信息
finger 用户名——查询用户详细信息(Centos7预制没有该指令,需要通过yum库在线安装)

4、查看目录或文件的属性

通常文件/目录都或多或少具备以下三种属性:
读取r:允许查看内容
写入w:允许修改内容,允许新建、复制、移动文件/目录
可执行x:允许允许程序,允许跳转
想要查看着三种属性,可通过“ls -l”查看,这里我为大家举一个例子:
Liunx中的账号与文件/目录权限管理——理论篇
其中文件类型、权限中,第一个“-”代表文件类型:“d”——目录、“-”——文件、“l”——连接,而后面的“rw-r--r--”代表的是文件权限,分别代表着属主权限、属组权限、其他用户权限。日常中通常将权限表达为数字,例如上面的文件权限就可表达为“644”,详情可参照下表
Liunx中的账号与文件/目录权限管理——理论篇_第5张图片
之后的各项数字\字母分别表示:
“1”——目录下有几个子目录
“root root”——属主、属组
“34298”——文件\目录大小(单位:字节)
“04-02 00:23”——建立时间
“insetall.log”——文件\目录名称

5、设置目录或文件的权限、归属

5-1 chmod指令设置文件权限

格式:chmod [ugno] [+-=] 文件或目录——复杂、不常用
[ugno]分别表示为属主、属组、其他用户、所有用户
[+-=]分别表示为增加权限、去除权限、设置权限
例如:chmod u +x abc.txt——为abc.txt文件的属主加上可执行x的权限(是不是很繁琐?)
接下来介绍第二种设置文件方法:
格式:chmod [nnn] 文件或目录
[nnn]表示八进制数字(通过上章节介绍的权限对应数字的表得出)
例如:chmod 744 abc.txt——为abc.txt文件设置744权限(数字含义看之前的表)
另外,可通过“-r”的方式为目录下所有文件统一权限

5-2 chown指令修改属主、属组

格式:
chown 属主 文件\目录————修改属主
chown :属组 文件\目录————修改属组
chown 属主:属组 文件\目录————同时修改属主、 属组
同样,可通过“-r”的方式为目录下所有文件统一归属

5-3 umask权限掩码

含义:控制新建的文件或者目录的权限,默认权限去除umask的权限就为新建的文件或者目录对的权限
格式:
umask设置:umask 022
umask查看:umask
示例:
将umsak设为000,新建目录或者文件,查看权限
将umsak设为022,新建目录或者文件,再查看权限