目录
一、Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户。1. 超级用户( root ):可以再 linux 系统下做 任何事情,不受限制 。2. 普通用户(非root):在 linux 下做 有限 的事情。超级用户的命令提示符是 “#” ,普通用户的命令提示符是 “$“
- 命令 su 【用户名】 表示切换用户
普通用户切换成root,需要输入root密码
root账户切换成普通用户,不需要认证
普通用户切换成另一个普通用户需要对方密码
二、Linux权限管理
1.文件访问者分类
所有者:u---User
所属组: g ---Group其它用户: o ---Others
2.文件类型和访问权限
所有者、所属组、其他用户只是单纯的角色,它其实并不能决定某个用户就一定对一个文件有某种权限。
用户对文件的权限不仅取决于这个用户对于这个文件的角色,还取决于文件的属性,即文件赋予角色什么权限。结合两者才能得知一个用户对于一个文件的权限。
示例:
文件访问权限:
2.1文件类型
Linux中文件类型有如下几种:
- :普通文件:文本,源代码,图片,视频,库,可执行等;d :文件夹l :软链接(类似 Windows 的快捷方式)b :块设备文件(例如硬盘、光驱等)p :管道文件c :字符设备文件(例如屏幕等串口设备)s :套接口文件
虽然Linux不通过后缀识别文件类型,但是我们依旧推荐使用的原因:1.工具需要2.人需要
2.2基本权限
用户对一个文件的权限有三种:可读、可写、可执行:
- 可读用
r
表示(read):
有了可读权限,就可以读取文件的内容 ,对目录来说,具有浏览该目录信息的权限可写 - 用
w
表示(write):
有了可写权限,就可以在文件中写入或删除内容,对目录来说具有删除移动目录内文件的权限 - 可执行用
x
表示(execute): 有了可执行权限,就可以执行该文件,对目录来说,具有进入目录的权限 -
表示没有某个权限
其中对每个角色三种权限的描述分别为可读、可写、可执行,这些顺序都是固定的。
2.3文件权限值的表示方法
Linux表示 | 说明 | 八进制 | 二进制 |
r - - | 只读 | 4 | 100 |
- w - | 仅可写 | 2 | 010 |
- - x | 仅可执行 | 1 | 001 |
r w - | 可读可写 | 6 | 110 |
- w x | 可写 可执行 | 3 | 011 |
r - x | 可读 可执行 | 5 | 101 |
r w x | 可读 可写 可执行 | 7 | 111 |
- - - | 无权限 | 0 | 000 |
2.4文件访问权限的相关设置方法
1.chmod
+ : 向权限范围增加权限代号所表示的权限- : 向权限范围取消权限代号所表示的权限= : 向权限范围赋予权限代号所表示的权限用户符号:u :拥有者g :拥有者同组用o :其它用户a :所有用户
示例1:通过权限字符来设置文件访问权限
示例2:通过二进制来设置文件访问权限
这里的777表示 u 对应的 rwx :111 g对应的rwx :111 o对应的rwx :111
大家参考上面的表格来学习,这里就很容易明白!
2.chown
# chown user1 f1# chown -R user1 filegroup1
示例:
这里需要注意一下:
普通用户指令 :sudo chown xxx file.txt
root指令:hown xxx file.txt(root权限非常大!!!)
Linux 上权限是约束普通用户的,root
不会被约束。对于普通用户,被权限约束了什么都干不了,哪怕他是这个文件的拥有者。
对于 root
,即使没有权限还是能畅通无阻。
3.chgrp
4.umask
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 :mask & ~umask
三、目录权限
对于目录:
- 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
- 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
那让我们来看一下吧!
首先权限全开的情况下:目前这个账号被other权限限制
o-r:可以查看文件目录,但是不能读
o-w:能查看目录详情,但是不能读写
o-x:不能查看目录详情
但是当klm目录对其他用户有写权限时,就可以直接删除这个目录中的文件,无论对其中的文件是否有写权限:
粘滞位
那么如何防止别人在共享空间删除我们的文件呢?
这时我们就可以引入粘滞位这个概念:chmod +t [文件名]
给共享目录中的other设置一个权限位,具有x的意义同时也进一步对目录权限进行特殊设定:该目录中的文件,只有root或者文件拥有者有权利进行删除!其他人一概不允许!!!
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:一、超级管理员删除二、该目录的所有者删除三、该文件的所有者删除
示例:
本篇博客就到这里啦!!希望能帮到大家!有错误望指出,谢谢大家!