linux权限有四种:1、读权限,即可以读取文件内容的权限;2、写权限,即可以向文件写数据的权限;3、可执行权限;4、特殊权限。
本教程操作环境:linux5.9.8系统、Dell G3电脑。
linux中访问文件/目录有三种身份:
-
u:文件的拥有者
-
g:文件所属的群组
-
o:其他用户
对于每个身份,又有四种权限
-
r:读权限(read)
对于文件来讲就是可以读取其内容的权限,对于目录来讲无法查看目录里面的内容(ls 失败)
-
w:写权限(write)
写权限:对于文件来讲就是可以向文件写数据,对于目录来讲无法删除目录里面的文件
-
x:可执行权限(execute)
对于可执行文件来讲无法用行(可以看到颜色都变了),对于目录来讲无法进入目录(cd 失败)
-
s:特殊权限
Linux权限的表示方法
说到权限,那么必须要说linux下的用户!
linux用户只有两种:普通用户,和超级用户
超级用户:拥有本系统下所有的权限,可以做任何你想做的事,不受任何限制
普通用户:只有一部分权限,能做的事情也是有限的(但是通常我们可以用sudo来执行一些需要root权限的事情,但是需要root的密码)
以数字形式改变权限
chmod 755 test.sh
将755换算成字符形式,为rwxr-xr-x,也就是说文件的拥有者、所属群组以及其他用户都可以读取与运行test.sh这个文件,但是只有拥有者自己可以写入这个文件,也就是其他人无权修改test.sh这个文件。
(当然root用户无此限制,想改谁就该谁,这也是一个体现root账号至高无上权力的体验!)
以字符形式改变文件权限
chmod +x test.sh
数学形式可以一次改变文件的所有三种身份的四种权限,而字符形式则更为灵活,可以给某个身份的某个权限单独进行设置,例如上面的指令就是给三种身份都赋予执行的权限,你也可以分开单独设置:
chmod u+x test.sh 只给拥有者加上可执行权限 chmod g+x test.sh 只给群组身份加上可执行权限 chmod o+x test.sh 只给其他人身份加上可执行权限
以上三条指令综合在一起等价于上面的那一条指令,都是给所有身份都开启可执行权限的功能,你也可以像下面这样来操作:
chmod a+x test.sh
这里的a就代表所有的3中身份!
如果要去掉某个身份的某个权限,只需要将+变为-即可,例如去除其他人身份的可执行权限:
chmod o-x test.sh