Linux的的权限管理

基本权限 UGO

一.权限类型

Linux 文件的 ugo 权限把对文件的访问者划分为三个类别:文件的所有者、组和其他人。
文件的所有者(user也称owner)
文件的所有者一般是创建该文件的用户,对该文件具有完全的权限。在一台允许多个用户访问的 Linux 主机上,可以通过文件的所有者来区分一个文件属于某个用户。当然,一个用户也无权查看或更改其它用户的文件。
文件所属的组(group)
假如有几个用户合作开发同一个项目,如果每个用户只能查看和修改自己创建的文件就太不方便了,也就谈不上什么合作了。所以需要一个机制允许一个用户查看和修改其它用户的文件,此时就用到组的概念的。我们可以创建一个组,然后把需要合作的用户都添加都这个组中。在设置文件的访问权限时,允许这个组中的用户对该文件进行读取和修改。
其他人(other)
如果我想把一个文件共享给系统中的所有用户该怎么办?通过组的方式显然是不合适的,因为需要把系统中的所有用户都添加到一个组中。并且系统中添加了新用户该怎么办,每添加一个新用户就把他添加到这个组中吗?这个问题可以通过其他人的概念解决。在设置文件的访问权限时,允许其他人户对该文件进行读取和修改。

二.权限类型

文件的 ugo 权限信息
第一组信息一个 10 个字符,除去第一个表示文件类型的字符,其它 9 个字符表示文件的 ugo 权限信息:
这 9 个字符以三个为一组,都是 rwx 或 - 的组合。其中,r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 这三个权限的位置不会改变,如果没有对应的权限,就会以 -(减号)代替。
Linux的的权限管理_第1张图片
图中意思分别为
— :文件类型
rw-:属主的权限
r–:属组的权限
r–:其他用户的权限
.:权限的扩展
1:文件链接
root:root的属主
lat:lat的属组
0:文件的大小
7月 27 17:51 :最后修改的时间为7月27号17:51
a.txt:文件名

其中 r w x(图中文件未赋予)
r (read):可以读取文件的实际内容,比如读取文本文件内的文字等。
w (write):可以编辑、增加、删除文件的内容(但不含删除该文件)。
x (execute):该文件具有可以被系统执行的权限。

三.设置权限

1.使用符号更改权限
>使用符号:u用户 g组 o其他 r读 w写 x执行
语法: chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录

移动到tmp路径下
新建一个145.txt的文件
查看当前文件权限
发现现在文件只有属主有读写的权限,没有执行权限
属组只有读的权力
其他人只有读的权力

Linux的的权限管理_第2张图片

使用vim打开文件
在这里插入图片描述
编写运行程序
Linux的的权限管理_第3张图片
添加以上执行程序
chmod u+x 145.txt
在这里插入图片描述

运行执行程序
Linux的的权限管理_第4张图片
去掉执行程序发现程序无法执行
Linux的的权限管理_第5张图片

2.使用数字更改权限
读:r=4
写:w=2
执行: x=1

Linux的的权限管理_第6张图片

可以看到上图只赋予他属主拥有读写执行的权力
属组与其他人不给予权力
其他用户连打开的权限都没有

3.更改属主,属组
chown 用户名.组名 文件

新建一个1.txt’的文件查看他的属主与属组
Linux的的权限管理_第7张图片
属主与属组为root
chown userone.jishuzhu 1.txt
将1.txt属主修改为userone
将1.txt属组修改为jishuzhu
Linux的的权限管理_第8张图片
chown userone 1.txt 只修改1.txt的属主不修改属组
chown .jishuzhu 1.txt 只修改1.txt的属组不修改属主

4.chgrp命令

新建一个文件夹,下属有三个文件
查看他们的信息
Linux的的权限管理_第9张图片
通过chgrp - R 组名 文件修改
Linux的的权限管理_第10张图片

案例
诉求
文件10.txt
属主是user400,读写执行-7(可以看内容,可以改内容,可以执行)
属组是jishuzu(user500),读取 -4(只能看,不能改,不能执行)
其他人(user600) 没有权限-0(既不能看,又不能改和执行)

首先建立文件10.txt
建立用户user400,user500,user600
建立属组jishuzu
Linux的的权限管理_第11张图片
在这里插入图片描述
Linux的的权限管理_第12张图片
Linux的的权限管理_第13张图片
可以看到user400读写运行正常操作
user500只能读
user600没有权限阅读

基本权限ACL

ACL文件权限管理: 设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
UGO设置基本权限: 只能一个用户,一个组和其他人

新建一个文件3.txt
查看权限
Linux的的权限管理_第14张图片
可以看到现在权限只有root主,与root属组才能更改文件
使用setfacl -m u:user400:rw /tmp/3.txt
Linux的的权限管理_第15张图片
赋值成功,登录user400,看能否输入内容
Linux的的权限管理_第16张图片
可以看到可以成功书写
切换其他任意为赋权用户
Linux的的权限管理_第17张图片
读正常,因为这是他本身赋有的权利
Linux的的权限管理_第18张图片
写失败,说明并未赋值到其他用户上

案例
诉求
新建一个文件夹test.txt
查看权限
新建用户user1使他具有读写的权限
新建用户user2使他加入黑名单,及没有任何权限
新建用户user3
查看权限并验证
新建 hr组 组员具备只读的权力(user3)
移除组的权力
移除所有权力

Linux的的权限管理_第19张图片
Linux的的权限管理_第20张图片

由上可以看出user1具有读写权力
user2无法打开文件

新建hr组,加入组员user3
切换组员发现有权限Linux的的权限管理_第21张图片
删除组权
删除所有特殊权限
Linux的的权限管理_第22张图片

特殊权限(仅作了解)

1 A:即Atime,告诉系统不要修改对这个文件的最后访问时间。
2 S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
3 a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
4 b:不更新文件或目录的最后存取时间。
5 c:将文件或目录压缩后存放。
6 d:当dump程序执行时,该文件或目录不会被dump备份。
7 D:检查压缩文件中的错误。
8 i:即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
9 s:彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。
10 u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录。
11 t:文件系统支持尾部合并(tail-merging)。
12 X:可以直接访问压缩文件的内容。

1. 文件属性

新建用户file100
查看默认权限
Linux的的权限管理_第23张图片

加上不能删除的属性
查看变化
尝试删除
Linux的的权限管理_第24张图片
使用chattr -i /home/file100指令去除特权后可以正常删除

2.特殊位suid

查看以下操作
可以发现root用户建立一个在root目录下的文件其他用户无法访问Linux的的权限管理_第25张图片

为解决这个方法,我们在指令下添加权限,使任何用户都能用此命令达到超管的效果·
查看cat指令路径
为cat指令添加suid权限
Linux的的权限管理_第26张图片
查看二者区别
发现属主的执行程序被s掩盖了,并没有消失
当前cat指令就成为了suid的特权指令
Linux的的权限管理_第27张图片
可以看到普通用户user1能看到超管目录下的文件
当然此操作完成后请去除cat的suid
并查看是否去除
Linux的的权限管理_第28张图片

3.进程掩码umask

umask概述:登录系统之后在当前登录shel进程l中,创建一个文件总是有一个默认权限的,默认权限的由来就是umask所做的,umask设置了用户创建文件的默认权限
Linux的的权限管理_第29张图片

新建文件夹与文件
文件夹默认755(文件夹+022=777)
文件默认644 (文件为文件夹-111)Linux的的权限管理_第30张图片
修改umask掩码
新建文件与文件夹
掩码信息变更
权限也相应变更
Linux的的权限管理_第31张图片

你可能感兴趣的:(linux)