Linux基础权限
Posted Ricky_0528
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础权限相关的知识,希望对你有一定的参考价值。
文章目录
4. 权限设置
超级用户不受 r/w 权限约束,除了 x 可执行权限,但仍然可以为自己添加可执行权限
4.1 chmod
设置文件的访问权限,只有文件的拥有者和root才可以改变文件的权限
修改格式
-
chmod [用户表示符]+/-/=[权限字符] [文件名]
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
chmod u+rwx,g+rwx,o+rwx file.txt chmod a+rwx file.txt
-
chmod [三位八进制数字] [文件名]
- 777:111 111 111 -> rwx rwx rwx
- 666:110 110 110 -> rw- rw- rw-
chmod 777 file.txt
4.2 chown
普通用户修改文件的拥有者,需要切换成超级用户,或者使用
sudo
因为都可以被更改,因此文件的创建者 ≠ \\neq =文件的拥有者
4.3 chgrp
普通用户修改文件的所属组,需要切换成超级用户,或者使用
sudo
如果文件属于你,但所属组却不是你,则可以不用权限提升
一次性修改文件的拥有者和所属组 sudo chown root:root file.txt
4.4 umask
查看或修改权限掩码
新建文件夹默认权限:666
新建目录默认权限:777
0002:权限掩码,凡是在umask中出现的,都应在起始权限中去掉,有一个前导零,其余一位对应三位二进制
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到权限掩码umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:mask & ~umask
110 110 110
& 111 111 101 110 110 100 ——最终创建出来文件的权限
修改权限掩码:umask [权限值],修改仅当前会话有效
5. 目录的权限
- 可读权限r:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容
- 可写权限w:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件
- 可执行权限x:如果目录没有可执行权限,则无法cd到目录中
- 注意:没有了 x 但有 r,只能查看文件夹里面的文件名称,但无法查看详细信息,因为要看必须先进入这个文件夹
6. 粘滞位
如果目录本身对other具有w权限,other可以删掉任何的目录下的文件
如果目录本身对other没有w权限,other不乐意删掉任何文件
需求:other可以在特定的目录下创建文件并写入,但是不想让其它other删掉自己的文件
chmod o+t dir
注意:只能对目录设置,且一般是限制other权限的
对设置了粘滞位的目录,在该目录下,只有如下人可以删除文件
- 超级用户
- 该目录的所有者
- 该文件的所有者
有时候有很多个人,或者系统会有很多的临时数据,所有的临时文件放在系统的/tmp,因此需要把权限放开,但是只想让文件的拥有者自己删除自己的文件,因而需要设置粘滞位
7. 总结
- 目录的可执行权限是表示你可否在目录下执行命令
- 如果目录没有 x 权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有 r 权限
- 而如果目录具有 x 权限,但没有 r 权限,则用户可以执行命令,可以cd进入目录,但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档
以上是关于Linux基础权限的主要内容,如果未能解决你的问题,请参考以下文章