Linux用户权限、文件权限、目录权限详解

一、用户权限

通常在linux下有两种用户:

1.root 用户
在linux下可以做任何事情不受限制
2.普通用户
在linux下做有限的事情
用户切换:

那么用户之间怎样切换呢?

su [用户名称]

例如:从普通用户切换到root用户
Linux用户权限、文件权限、目录权限详解_第1张图片
从root 用户切换到普通用户:
Linux用户权限、文件权限、目录权限详解_第2张图片
注意:
切换到root用户 root 可以省略
超级用户的命令提示符是 " # ",普通用户的命令提示符是 " $ "
有密码输入密码即可然后回车,
注意这里输入密码不会显示*******而是显示空白
在这里插入图片描述

二、文件权限

在linux下文件都是有权限的
使用指令查看:

ls -l [指定目录]

Linux用户权限、文件权限、目录权限详解_第3张图片
可以看到这里有一些信息:
在这里插入图片描述
这里开头的 d 表示文件的类型,注意在linux 下文件并不像windows一样以后缀来区分文件的类型,而是以文件前面的像 d 这样的字母来区分文件的类型,d 表示普通文件,当然还有其他的文件类型表示:

 d:文件夹 -:普通文件 
 l:软链接(类似Windows的快捷方式) 
 b:块设备文件(例如硬盘、光驱等) 
 p:管道文件 
 c:字符设备文件(例如屏幕等串口设备) 
 s:套接口文

文件访问者

文件和文件目录的所有者:u---User 
文件和文件目录的所有者所在的组的用户:g---Group
其它用户:o---Others 

文件权限的表示

在这里插入图片描述
这里又表示什么意思呢?
首先这里是表示三组用户各自对文件所拥有的权限
三个字符表示一个用户的权限
Linux用户权限、文件权限、目录权限详解_第4张图片

r ---read 表示可读,
对文件而言,具有读取文件内容的权限;
对目录来说,具有浏览该目录信息的权限 
w --- write 表示可写,
对文件而言,具有修改文件内容的权限;
对目录来说具有删除移动目录内文件的权限 
x ---execute表示可执行,
对文件而言,具有执行文件的权限;
对目录来说,具有进入目录的权限 
- 表示不具有某一项的权限
注意:
从左往右的顺序是可读可写可执行
文件的权限是从左到右 rwx 不可以为rww wrx xwr 等表示方法 ,
不允许重复或交换顺序 不拥有的权限可使用 

注意:

如果用字符来存储文件的权限的话,一个文件的权限就需要9个字节来存储。比较浪费空间且不好比对,因此在系统中使用位图来存储权限 位图–二进制比特位

如:

rwx -> 111 rwx -> 111 r-x-> 101

三个八进制也就是 775

例 如果告诉一个文件的权限是 576 
即: 101 111 101 
也就是 r-x rwx rw-

文件权限设置方法

chmod指令

功能:设置文件的访问权限
用法chmod [选项] 权限 文件名
常用选项

R - > 递归修改目录文件的权限
注意:只有文件的拥有者和root才可以改变文件的权限

示例:
Linux用户权限、文件权限、目录权限详解_第5张图片
chmod命令权限值的格式

用户表示符 + - =权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

用户符号:   
u:拥有者 
g:拥有者同组用 
o:其它用户 
a:所有用户 

示例:
Linux用户权限、文件权限、目录权限详解_第6张图片

chown指令

功能:修改文件的拥有者
用法chown [参数] 用户名 文件名

chgrp指令

功能:修改文件或目录的所属组
用法chgrp [参数] 用户组名 文件名
常用选项

-R 递归修改文件或目录的所属组

三、目录权限

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

如果一个文件或目录的权限需要进行更改就可以对其进行权限的添加或者删除

注意:

目录的可执行权限是表示你可否在目录下执行命令
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录, 
即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件) 
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。
但由于没有目录的读 权限 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

粘滞位

在这里想这样一个问题

甲和乙是同事,某天甲乙一起打某者荣耀,甲玩的是狂暴抽血怪后裔,对面是长臂猿伽罗,甲让乙玩奶妈辅助。

Linux用户权限、文件权限、目录权限详解_第7张图片

抽血怪后裔一番大杀特杀,即将五杀时,最后一个人头被乙一个斩杀带走了,甲顿时怒气冲冠。
一气之下,甲把乙存在记事本里的娃娃亲的女朋友的联系方式删了。
乙当时瘫坐在地上,心如死灰,乙越想越气,也把甲的备忘录里面的银行卡密码全删了,
结果到头来,乙丢了女朋友,甲的钱也都取不出来了,两败俱伤。

这时我们思考,别人随意就可以删除我的东西,或者我也可以删除别人的东西,是否不合理呢?这里引入一个粘滞位的概念

两个用户先在同一个未添加粘滞位权限的目录下建立各自的文件:
Linux用户权限、文件权限、目录权限详解_第8张图片
Linux用户权限、文件权限、目录权限详解_第9张图片
甲用户建立文件:
在这里插入图片描述
乙也建立文件:
在这里插入图片描述
然后甲将乙的文件删除后溜之大吉:
Linux用户权限、文件权限、目录权限详解_第10张图片
乙也删除甲的文件:
Linux用户权限、文件权限、目录权限详解_第11张图片
好了现在都是两败俱伤了,如何防止这种类似的情况呢?

设置粘滞位

设置一个目录的粘滞位权限 设置后则这个目录中其他用户可以创建文件但是只能删除自己的文件

用法chomd +t 目录
示例

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  Test  tmp  usr  var
[root@localhost /]# chmod +t Test/

再使用ls -l 查看详细权限信息
在这里插入图片描述
可以发现添加了粘滞位权限的目录 Test 的权限后面多了一个 t 就表示粘滞位权限,因此Test下用户只能删除自己的文件而不能删除别人的文件
Linux用户权限、文件权限、目录权限详解_第12张图片

你可能感兴趣的:(Linux,linux)