一、权限概念
在Linux中一切皆是文件,文件又有系统文件,和用户创建的文件,有些文件不能随意的修改和删除,有一些文件需要某些特定的人才能修改,这个时候我们就需要使用权限来实现以上的功能了,我们知道在除了root用户以外,所有普通用户都是在/home下各自的家目录下,普通用户不能访问其他用户的家目录。
普通用户对根目录下的其他目录默认只有查看的权限,不能修改,而root用户对所有文件都有全部权限,除了一些正在被使用的文件不能删除或者修改。
Linux中的文件权限分为三个部分
- 拥有者
- 拥有者所属组
- 其他
分别对这三种对象设置权限
我们看到文件开头的一串字母,第一个字母代表这个文件是什么类型的文件,d开头表示文件夹,-开头表示为普通文件。当然还有其他字母开头的,我们现在接触的还是文件夹和普通文件比较多,其他的不过多介绍
第一个字母后面的9个符号位,每三个位置分别代表
- 拥有者
- 拥有者所属组
- 其他
所拥有的权限,r代表可读,代表可写,代表可执行,所在位置为-说明无该项权限。
为了使用方便,Linux中还支持使用数字来代表权限,具体实现由二进制得来
比如一个文件的权限为rwxr-x-rw-,用二进制表示为111 101 110,每部分相加得到7 5 6,我们可以使用字母设置权限,也可以使用数字设置权限
二、设置权限
在Linux中设置权限的指令为chmod
在chmod后可以结合各种参数
参数中 a代表所有用户,就是为这个文件设置所有用户的权限
- a代表所有用户
- u代表文件拥有者
- g代表文件拥有者所属组的用户
- o代表从其他用户
具体使用方法
图片所示为给文件拥有者添加读写权限
图为给所有用户添加该文件执行权限
注意:文件能不能执行还是要看文件本身能否执行,用户只是有了执行 的权限
其他使用方法以此类推除了+还可以使用-和=。
我们也可以使用更加方便的数字模式设置权限,可以很好的设置权限
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r– | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | –x | 001 |
0 | 无 | — | 000 |
图为给所有用户设置读写执行权限
三、粘贴位
一个文件能否被删除,取决于这个用户有没有文件夹的写权限,这就容易导致一个问题,你创建了一个文件,你不想被别人访问他,但是别人却可以删除他,这就有点不合适了,在Linux中有一个特殊的权限粘贴位,只要给这个文件夹设置了这个权限,用户在这个文件夹就不能删除别人的文件了,使用方法为root用户为文件夹添加
chmod o+t 文件名 或者
chmod 1777 文件名