上篇内容:Linux基础2-权限1(用户,权限是什么?)-CSDN博客
目录
一. 权限的操作(命令)
1.1 chmod
1.2 chown
1.3 chgrp
二. 粘滞位
三. umask(遮掩码)
四. 目录文件的 r w x 权限
一. 权限的操作(命令)
当用户和文件进行匹配的时候,会依次从 拥有者,所属组,其他人进行匹配。且一旦匹配成功就不会向后继续匹配。
root用户不受读写的约束。
rwx 三种权限可以使用二进制表示,如 r-x 就能表示为 101 (5),--x 表示为001 (1)
更改权限的三种命令
1.1 chmod
该命令用于修改 rwx 三种权限
用法:
chmod [+ / -][a/u/g/o] [/r/w/x/rw/rx/wx/rwx]
说明:
+ - 表示增加或者减少该种权限。
a/u/g/o 分别表示对三种身份,拥有者,所属组,其他人的权限进行修改
r/w/x/rw/rx/wx/rwx 表示要修改哪一种权限
举例:
也能使用二进制替代 rwx
如 chmod 111 表示拥有者更改为1,所属组更改为1,其他人更改为1 即 --x--x--x
如 chmod 765 表示拥有者更改为7,所属组更改为6,其他人更改为5 即 rwxrw-r-w
如下图:
1.2 chown
chown用于更改一个文件的拥有者。该命令只能root用户使用!
用法:
1. chown 用户名 目标文件(将目标文件改为输入的用户)
2. chmwn 用户名:所属组 目标文件(同时可以更改文件的所属组)
举例:
1.3 chgrp
chgrp用于更改文件的所属组,且不需要使用root。(但必须是属于自己的文件才能修改)
举例:
二. 粘滞位
粘滞位是在一个公共目录下,大家一起进行文件操作。这个目录一般是由root用户创建
Linux中有很多用户,有时候我们需要在同一个目录下进行文件操作(增删查改),这个目录是tmp。
ll / 即可看到一个公共目录tmp
当一个用户在tmp创建了一个文件,他只让自己进行读,写,执行。那么其他人就不能够进行读,写执行,但是其他人可以删除这个文件!(可以删除的原因是这个公共目录也是其他人拥有的,其他人对这个目录都读写执行的权限,有写权限就能够删除这个目录中的文件)
当我们想创建一个公共目录,大家都可以进行自己的rwx操作。但是禁止各自删除其他人的文件,这个时候就需要设置粘滞位(所以粘滞位是一种特殊的权限,由root设置)
由于这个错误是由于目录文件产生的,所以我们在目录上设置粘滞位
设置方法:
chmod t 目标目录
这个只能由root进行设置,且root可以随意删除文件(root不受权限的约束)
三. umask(遮掩码)
1. 我们创建的目录文件和普通文件,它的权限为什么是我们所看到的?(面试题)
如下图:
为什么 test(目录文件) 是 rwxrwxr-x,而test.c(普通文件)是rw-rw--r-呢?
这个由于Linux规定:
目录文件起始权限是 777 即 rwx rwx rwx
普通文件起始权限是 666 即 rw- rw- rw-
但是我们看到的是 775 rwxrwxr-x 和 664 rw-rw-r-- 呢?
这是由于有 umask存在,对于普通用户来说umask是 0002,root用户是0022
umask后三位 0 0 2 用二进制表示为 000 000 010,这表示所有文件的其他人的 w 权限会被去掉
所以我们看到的是test和test.c 其他人的w权限都去掉了
我们再切换成root查看以下
所以会去掉文件所属组和其他人的w权限,所以:
test 由 rwx rwx rwx 变为 rwx r-x r-x
test.c 由 rw- rw- rw- 变为 rw-r--r--
使用 umask 数字 即可临时修改umask码
举例:
修改为 0111,说明所有文件的拥有者,所属组,其他人的x权限都没有了!
四. 目录文件的 r w x 权限
对于普通文件,我们知道:
r权限:表示可以查看文件里的内容
w权限:可以修改文件的内容
x权限:可以执行这个文件
但是对于目录文件
r权限:表示能不能看这个目录里面的内容和属性,即能不能使用 ls
w权限:表示能不能在这个目录里面进行创建,修改,删除文件
x权限:表示能不能进入这个目录
如果我们想要进入一个目录文件,需要什么权限?
答:需要x权限。
这也解释了为什么目录的起始权限是777,因为我们需要x权限进入这个目录