Linux权限相关问题

1. 权限概念

Linux下有两种用户:超级用户(ROOT),普通用户。

  • 超级用户:可以Linux下的系统做任何事情,不受限制。
  • 普通用户:只能做有限的事情。

su

从root 转到xtr
语法:su xty
切换用户

2.权限管理

在研究权限管理之前,我们需要首先弄明白权限是相对于人和文件的。

相对于人:

  • 文件和文件目录的所有者: u – User
  • 文件和文件目录的的所有者所在的组的用户:g – Group
  • 其他人: o – other

相对于文件:

  • r:读权限。对于文件来说,具有读取文件内容的权限;对于目录来说:具有浏览该目录的权限。
  • w:写权限。对于文件来说,具有修改文件内容的权限;对于目录来说:具有删除移动目录内文件的权限。
  • x:执行权限。对于文件来说,具有执行文件的权限;对于目录来说:具有进入目录的权限
  • - 表示不具有该权限。
    在这里插入图片描述

在这里插入图片描述
第一个xty是文件的所属用户;第二个xty时文件的所属组。

第一个红框框的“d”代表文件类型,如下:
在这里插入图片描述

2.1 权限设置方法

2.1.1 chmod(change mode)

修改文件的权限。只有root和文件的拥有者才可以改变文件的权限。

格式:chmod [参数] 权限 文件名
常用选项:-R 递归修改目录文件的权限,包括文件里面的文件。

如下图递归的修改x1目录及该目录下的权限:
在这里插入图片描述


权限处的格式:

  • 增加拥有者的权限:chmod u+wx text.txt
  • 减少所属组的权限:chmod g-wx text.txt
  • 为所有组增加权限:chmod a+xwr text.txt
  • 为拥有者和所属组同时增加权限: chmod u+x,g+r text.txt
  • 给所有组赋值x权限:chmod a=x text.txt

在这里插入图片描述


使用三位八进制数来表示:
一共有三个组,每个组分别有三个权限,分别代表八进制数。
相当于赋值的格式

  • 为三个组增加所有权限: chmod 777 text.txt
  • 拥有者和其他用户仅有写权限:chmod 272 text.txt

chown

修改文件的拥有者。仅仅在root下使用。

语法:chown [参数-R] 拥有者名字 文件名

chgrp

修改文件或者目录的所属组。仅仅在root下使用。

语法:chgrp [参数-R] 拥有者名字 文件名

umask

用来查看或者修改文件的掩码。

  • 新建文件夹的默认权限为0666
  • 新建目录的默认权限为0777
    为什么我们新建的文件不是这个权限呢?
    因为新建时的最终权限受到umask的影响。
    最终权限=起始权限 &(~umask):最终的结果为umask的那个选项为1,那个选项就被屏蔽。

语法:umask 查看系统掩码
umask 0777 把掩码修改为0777

3.目录的权限

  • 如果没有x权限,则不能cd到目录中。
  • 如果没有r权限,无法用ls等命令查看目录文件中的内容。
  • 如果没有w权限,无法再目录中创建和删除权限。

如果ljj在xty的目录中,创建了一个x1的文件,xty查看不了,但是能删除掉x1文件,很显然是不科学的!
因此引入粘滞位的概念:

粘滞位

防止上面这种情况

语法: chmod +t 目录名
为该文件名加上粘滞位

该文件只能被以下情况删除:

  • root 能删除
  • 该文件的所有者能删除

**key:**粘滞位只能加在目录上,一般是谁设置的,谁才能取消(root随意)。

如果我们在别人的目录下创建文件,只要该目录有粘滞位,就再也把不用怕别人给删除啦!

权限总结

  • 目录的可执行权限是表示你可否在目录下执行命令。

  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目,即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限

  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档.

猜你喜欢

转载自blog.csdn.net/weixin_45153969/article/details/132301529