关于linux权限的相关操作

发布时间:2024年01月05日

目录

文件的访问者

文件类型和访问权限

文件权限值的表示

文件访问权限的相关设置

目录的权限

粘滞位

总结


文件的访问者

  • 文件和文件目录的所有者:u(User)
  • 文件和文件目录的所有者所在的组的用户:g(Group)
  • 其它用户:o(Others)

使用 su 进行用户切换

su -  :普通用户下进行操作,将切换到root用户

su name:将切换到 name 用户

文件类型和访问权限

文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

值得注意的是:linux下,不以文件后缀来区分文件类型

基础权限

r:读    Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w:写    Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
x:执行  execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

文件权限值的表示

字符表示

8进制表示

文件访问权限的相关设置

chmod指令

功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
常用选项:
  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限
修改方式①: 用户表示符 + ?-? =?权限字符
+ : 向权限范围增加权限代号所表示的权限
- : 向权限范围取消权限代号所表示的权限
= : 向权限范围赋予权限代号所表示的权限
用户符号:??
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

示例:ugo + - 方式

示例:a + - 方式

修改方式②:八进制方式

因为权限的位置(拥有者? ?所属组? ?other) 是固定的,权限(r? w? ?x)也是固定的,要么有权限,要么没权限 --- 构成两态

chown指令

功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名

chgrp指令

功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组

注意:chown? chgrp 指令 都需要使用超级用户的权限

目录的权限

1.umask指令

功能 查看或修改文件掩码
?
新建文件夹默认权限? ?:0666
新建目录默认权限? ? ? :0777
不是说新建目录/文件默认权限是 777 666 吗?为什么这里是 775? ?664 ?
  • ????????要注意,这里?777 666?是起始权限,并不是最终权限,最终权限不等于起始权限。为什么呢?因为linux规定,凡是在umask中出现的权限,都不应该出现在最终权限中出现
  • ????????你所创建的文件和目录,看到的权限往往不是上面这个值 777 666。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

Linux下默认的权限掩码:

示例:目录权限计算如下(需要注意,权限掩码或者目录默认权限只取后三位)

格式 umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。 超级用户默认掩码值为0022,普通用户默认为0002。

2.进入一个目录,需要什么权限?写或者读分别限制目录的什么权限?

答案是进入一个目录,需要 x (执行)权限,r(读)限制查看目录下面的文件列表,w(写)限制在目录下创建文件或者目录。

2.2 如果一个普通用户是文件的拥有者,并且是所属组,此时,删除拥有者的权限,还可以访问吗?

答案是不可以,why?因为权限只会被认定一次,如果被判定是谁,就会根据谁的权限去进行访问。

粘滞位

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

问题:假设一个根目录下面存在多个用户,那么普通用户是否能删除掉其他用户的文件?答案是:可以

????????因为在目录中,新建或删除文件,和文件本身没有关系,跟文件所处目录是否赋予文件rwx有关系,other用户能删除是因为有写权限,如果想公开目录把other的写权限去掉就可以了

? ? ? ? 或者还有一个方法:那就是粘滞位

使用方法:chmod +t name

此时会发现other的权限最后一位的x(执行)被修改成?t

? ? ? ? 它保障大家都在一个目录下面可以新增或删除文件但是只能自己删除/新增自己的
????????注意:

????????????????1.粘滞位只能对目录设置


????????????????2.粘滞位一般是谁设置谁才能取消(除了root)

????????总结:当多个用户处于同一个目录时,是可以进行互删文件的,当我们希望只有用户自己才能对自己文件进行增删查改时,需要用到粘滞位
这样用户只能操作自己的文件,而不能修改或者删除其他用户的文件


?

总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

以上仅代表个人观点,欢迎讨论

文章来源:https://blog.csdn.net/m0_73969113/article/details/135352902
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。