目录
一.权限概念
二.用户分类
三.文件权限
1.执行操作的人的分类
2.文件类型和访问权限(事物属性)
03.文件权限值的表示方法
四.目录权限与粘滞位
一.权限概念
操作系统用来限制对资源访问的机制,一件事情是否可以被“谁”做,一般在Linux里分成两类,一类是不同的人,一类是事务的分类。
二.用户分类
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
就像普通的视频软件一样,root和VIP一样,权限较大,很多事都可以干,几乎没有权限约束。但普通用户但某些事情上就没有权限去操作,等价于一般的非vip用户,无法观看vip视频。
命令: su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su
root(root可以省略),此时系统会提示输入root用户的口令。
三.文件权限
关于文件的权限也可以分成人和属性,文件的属性只有三种,分别是读,写,执行。
那想要去进行写,读,执行等操作的人有哪些分类呢?
1.执行操作的人的分类
文件和文件目录的所有者: u---User
文件和文件目录的所有者所在的组的用户: g---Group
其它用户: o---Others
可以将其理解成User是文件创建者和所有者,他正在一个小组里工作,和他同组的人应该分为一类,因为他们要协作,剩下的人都归为一类Others。
2.文件类型和访问权限(事物属性)
我们使用ll命令来查看文件的详细信息,我们可以知道一列代表文件大小,还有的代表创建时间或者最近修改时间,那么前面几列代表什么呢?
文件的分组,user,group,others,以及文件类型
第一列的不同字母代表了不同类型:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
文件针对不同的组的用户给他们开的读,写,执行权限怎么看呢?
总体权限实例 (以文件a.txt为例)
03.文件权限值的表示方法
1)字符表示方法
2)八进制表示方法
4.文件访问权限的相关设置方法
1)chmod
功能: 设置针对三组人的文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
实例:
②三位8进制数字
chmod xxx 文件名
实例:
2)chown
功能:修改文件的拥有者
格式: chown [参数] 用户名 文件名
注意:普通用户无法将文件随意给其他用户,只有root可以,如果需要可以暂时sudo提权。
实例:
3)chgrp
功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
实例:
4)umask
功能:查看或修改文件掩码
新建文件默认权限=0666 新建目录默认权限=0777
但实际上刚创建的文件和目录,看到的权限往往不是默认值。原因是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
四.目录权限与粘滞位
x可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
r可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
w可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限,这样子如果root创建公共目录用于不同用户交互的话,有可能a创建的隐私文件设置了其他人不能写,但b却因为有目录的w权限可以删除该文件,这样不合常理。
为了解决这个不科学的问题, Linux引入了粘滞位的概念
chmod +t 目录
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除