网站被收录,网站建设培训心得,无极app定制开发公司网站模板,wordpress对接微信#x1f31f;#x1f31f;作者主页#xff1a;ephemerals__
#x1f31f;#x1f31f;所属专栏#xff1a;Linux
目录 前言
一、权限是什么
二、用户和身份角色
三、文件属性
1. 文件属性表示
2. 文件类型
3. 文件的权限属性
四、修改文件的权限属性和角色
1. …
作者主页ephemerals__
所属专栏Linux
目录 前言
一、权限是什么
二、用户和身份角色
三、文件属性
1. 文件属性表示
2. 文件类型
3. 文件的权限属性
四、修改文件的权限属性和角色
1. 修改权限属性
2. 修改文件角色
五、关于权限的三个问题
1. 目录的权限
2. 默认权限与实际权限
3. 删除权限与粘滞位
总结 前言 在数字世界中安全始终是最重要的基石而Linux作为开源操作系统的璀璨明珠其权限管理机制更是构筑安全防线的关键一环。本篇文章我们将深入探讨Linux的权限体系帮助你更好地掌控文件权限构建更安全、可靠的工作环境。
一、权限是什么 在Linux当中权限指的是操作系统用于控制用户对文件或目录进行访问的机制说白了权限能决定用户能不能访问一个文件或目录能以什么样的方式访问文件或目录。影响权限的因素目标事物的属性和用户及其扮演的身份角色。 二、用户和身份角色 在Linux下我们可以认为有两种用户
1. root用户超级用户 几乎不受权限约束可以任意访问文件或目录。
2. 普通用户Linux使用者受权限约束。 创建用户adduser [用户名] 设置密码passwd [用户名] 切换用户 su [用户名] 切换到root用户su 回退到之前用户ctrlD或exit 以root身份重新登录su - 指令提权sudo 指令 注指令提权本质是以root用户的身份执行命令 而“身份角色”是针对于具体事物由用户所扮演的。身份角色有如下三种 1. 文件拥有者Useru 2. 文件所属组Groupg 3. 其他人Othero 对于一个目录或文件而言身份角色不同它们所拥有的权限也不尽相同其权限由文件属性和身份角色共同决定。
三、文件属性
1. 文件属性表示 使用 ls -l 指令显示文件信息就可以看到文件属性 例如上图中的code文件它的各项属性表示如下 接下来我们重点探讨一下文件类型以及权限属性。
2. 文件类型 文件类型 d目录 -普通文件 c字符设备文件 b块设备文件 p管道文件 l软链接文件 s套接口文件 3. 文件的权限属性 如上图所示文件的权限属性针对三种角色可能有所不同这就说明权限由文件属性和身份角色共同决定。权限类型有三种 r可读--可以查看文件内容 w可写--可以修改文件内容 x可执行--可以运行 当权限属性的相应位置上有r/w/x时表示该文件针对的角色具有读/写/执行该文件的权限否则不具有相应权限。
以下两点需要注意 对于root用户无论其扮演的角色是否具有权限其都可以进行相应操作。 一个文件可执行的两个必要条件1. 文件具备可执行权限2. 文件的类型是可执行程序。 权限类型有字符表示方法和八进制表示方法两种 当使用八进制表示方法表示权限属性时一种角色的权限属性可以只用一位八进制数字表示所以一个三位八进制数字就可以表示全部角色的权限属性修改权限属性时方便使用。
注意针对某个文件来讲一个扮演多种角色的用户的权限按照角色优先级进行对应。 角色优先级拥有者所属组其他人 举例对于一个文件test.txt拥有者的权限是r--而所属组的权限是-x-而一个用户既作为该角色的拥有者也作为所属组时其权限是r--拥有者优先级较高与拥有者权限相同。
四、修改文件的权限属性和角色
1. 修改权限属性 我们可以使用chmod指令修改一个目录或文件的权限属性。它的语法如下
chmod 选项 权限 文件名
常用选项-R 递归地修改目录及子目录的权限
其中若使用字符表示法表示权限则其格式是(角色)(/-)(r/w/x) 角色 u表示拥有者 g表示所属组 o表示其他人 a表示所有角色 /- 表示新增权限 -表示去除权限 使用示例
chmod ur test.txt #对于该文件给拥有者增加读权限chmod grwx test.txt #对于该文件给所属组增加读、写、执行权限chmod a-x test.txt #对于该文件去除所有人的执行权限
chmod -x test.txt #与上条指令等价chmod ur,o-w test.txt #对于该文件给拥有者增加读权限并去除其他人的写权限
当然我们也可以使用八进制表示方法设置文件权限。使用示例
chmod 777 test.txt #针对该文件给所有人增加所有权限
chmod 456 test.txt #针对该文件设置拥有者的八进制权限编号为4所属组为5其他人为6 注意只有文件的拥有者或具有root权限才能修改和设置文件的权限属性。 2. 修改文件角色 除了文件的权限属性文件角色也可以被修改。
chown指令修改文件拥有者
chown 用户名 文件名
使用示例
chown user test.txt #将test.txt的拥有者改为user
chown -R user mydir/... #将目录mydir及其子目录的拥有者改为user
chgrp指令修改文件所属组
chgrp 用户名 文件名 使用示例
chgrp user test.txt #将test.txt的所属组改为user
chgrp -R user mydir/... #将目录mydir及其所有子目录的所属组改为user 注意只有具有root权限才能修改文件拥有者只有文件的拥有者或具有root权限才可以修改该文件所属组。 五、关于权限的三个问题
1. 目录的权限
对于一个目录而言 如果没有读权限就无法查看该目录下的文件信息 如果没有写权限那么就无法创建、删除、修改该目录内部的文件 如果没有执行权限那么无法进入该目录。
注意即使一个目录有读权限但若没有执行权限那么仍然无法进入该目录并且无法在该目录下执行命令和查看该目录下文件的详细信息。
2. 默认权限与实际权限 在Linux下一个普通文件它的默认权限是rw- rw- rw-666而一个目录的默认权限是rwx rwx rwx777。 但当我们创建一个普通文件和目录后可以看到其权限属性并非是默认值 相比默认权限两者的实际权限貌似缺失了所属组和其他人的读权限。这是为什么呢 实际上存在一种叫做umask权限掩码的机制它控制的是新创建文件和目录时哪些权限将被去除。注意它并不会直接赋予权限而是通过限制默认权限来间接设定权限。 可以使用umask指令查看umask码 可以看到当前系统的umask为022最高位的0暂且省略它其实是一个三位八进制数字与八进制数字表示的权限属性相呼应。 掩码规则文件的实际权限 默认权限八进制- umask。 所以我们看到的文件和目录的实际权限是 目录777 - 022 755 rwx r-x -r-x 文件666 - 022 644 rw- r-- r-- 当然umask也可支持修改使用示例如下
umask 002 #将umask修改为002
修改umask可以达到修改实际权限的效果。
3. 删除权限与粘滞位 要删除一个文件看的不是该文件的读/写/执行权限而是需要该文件所在目录的写权限和执行权限因为执行权限决定了是否可以进入目录写权限决定了是否可以删除目录下文件。 但这种设定似乎并不合理假设有一个用户其无权访问文件A但可能有权删除文件A。 所以Linux出现了一种机制粘滞位用于防止无关人员删除重要文件。 当一个目录被设置为粘滞位后其下的文件或目录只能由以下两者删除 1. root用户 2. 当前文件或目录的所有者 也就是说除了root用户之外该目录下的文件或目录只有自己的才能被自己删除。 设置粘滞位的指令
chmod t 目录名
总结如果想要共享一个目录并且确保目录下的文件不被删除那么就需要设置粘滞位。
有两点需要注意
1. 根目录下的tmp目录自带粘滞位可以用做共享目录。
2. 粘滞位只需给目录设置不需要给普通文件设置。
总结 本篇文章我们深入探讨了Linux系统中的权限管理包括权限的概念、用户角色、文件属性及其权限设置的操作方法。了解并掌握这些内容对于管理Linux系统的安全性至关重要。通过合理配置文件权限和用户角色可以有效控制文件访问、提高系统的安全性和灵活性。如果你觉得博主讲的还不错就请留下一个小小的赞在走哦感谢大家的支持❤❤❤