对权限的基本理解
Linux作为一个操作系统,其实可以很大程度上类比我们现实世界,不同的部分就是我们不同的部
我们使用su命令来却换用户,语法为su username,如果是切换到root,那么可以省略username.
Linux权限管理
按照访问者身份区分
u--user代表文件的所有者.g--group代表文件所有者所在组.o--others表示除了u,g以外的其他用户.
按照行为(文件属性)区分
用户对一个文件的基本操作可以用读,写,执行这三种来表示.对应的就是r(read),w(write),x(execute).
有了访问者和文件自身属性的权限区分,我们就可以对操作系统中的不同文件通过同样的手段管理起来了.门.这时候就很容易理解什么是权限了,就好像我们生活中对罪犯的处理要经过法院的判决和执行一样,不能说警察抓了人直接处置了.各个部门有条不紊的处理好自己的工作,这样可以保证所处的体系高效且具有较强的执行力.
如何理解Linux中的权限
区分权限最方便的办法就是使用不同的身份,就好像我是321宿舍的舍员,我可以随意进出我们宿舍,别的学生就不能随便进出我们宿舍.在Linux中也是这样,最基本的两种身份就是root和普通用户.root就是管理员,权限自然是要比较高的,对应的普通用户权限就比较低.
不同的文件有不同的文件属性
对于Linux来说不同文件的默认文件属性也应该是不一样的.这其实很好理解,如果我有一个可执行文件,难道每次运行之前我都需要 手动加上
x权限?这显然是不合理的.
Linux权限表示方法
Linux文件类型
- d:目录文件
- -:普通文件
- l:软链接
- b:块设备文件
- p:管道文件
- c:字符设备文件
- s:套接口文件
文件属性的表达形式
- (r–read)对于文件而言,读权限可以读取文件内容,对于目录而言读权限可以访问目录.
- (w–write)对于文件而言,写权限可以修改文件内容,对于目录而言写权限可以修改目录内容(移动/删除文件).
- (x–execute)对于文件而言.执行权限可以执行文件,对于目录而言执行权限可以进入目录.
Linux文件权限值表示方式
- 字符表示
字符表示法就是我们上面讲的
rwx,按照读写执行的顺序,存在对应字符就表示存在对应权限,没有对应权限就用-表示.
- 二进制表示法
二进制每一位都可以表示两种状态,所以我们可以用
1表示存在,0表示不存在,所以111就表示三种权限都具备,101表示可读,不可写,可执行.
- 八进制表示法
八进制表示法其实和二进制表示是一样的,只是把二进制里面的三个标志位换成了一个标志位,例如
7表示同时具备读写执行权限,4表示可读,不可写,不可执行.
权限设置方法
- chmod
Linux中设置文件权限的命令为
chmod
语法:chmod [选项] 权限 filename
解释:权限表示中使用+-表示赋予或者剥夺权限
例:chmod u+w /home/example.exe
也可以用三位八进制修改权限
例:chmod 664 /home/example.exe
- chown
语法:
chown [参数] username filename
例: chown -R user example.exe
chown user example.exe
- chgrp
语法:
chgrp [参数] groupname filename
例: chgrp group example.exe
- umask
查看或者修改权限掩码
Linux中普通文件默认权限是666,目录文件默认权限是777,但是我们通常创建出来的文件权限值并非是这个值,这是因为我们的系统中存在权限掩码,我们可以用umask命令来查看或修改.
语法:umask表示查看权限掩码,umask 权限值表示修改权限掩码.
算法:假如权限掩码为002,那对于普通文件来说,默认权限应该是666&(~002)最后是664.
粘滞位
看似完美的权限系统背后却存在一个很致命的问题,那就是删除一个文件并不取决于文件的属性,而是取决于目录的写权限,这样就会存在一个问题,假如目录有写权限,那任何用户都可以随意删除文件,假如没有写权限又会导致文件无法删除.粘滞位就是为了解决这样的问题.
粘滞位的添加或移除用chmod [选项] username+[-]t directoryname
加入粘滞位后的目录权限中others的可执行权限就会变为t,这样的目录中的文件只允许root或目录所有者,或文件所有者删除.
本文详细解析了Linux权限管理,包括权限的分类(用户、组、其他人),文件属性的读写执行权限,以及chmod、chown、chgrp等命令的使用。还介绍了权限值的三种表示方法(字符、二进制、八进制)和umask、粘滞位的作用。

被折叠的 条评论
为什么被折叠?



