当前位置: 首页 > news >正文

Linux权限管理知识点

一、文件权限管理

主要学习一下三大权限

Linux系统的三大基本权限

Linux系统的三大特殊权限

Linux系统的精细化权限管理ACL权限

问题:为什么需要文件权限???

答:因为没有文件权限控制,则系统所有人都可以查看和修改文件,比如/etc/passwd和/etc/shadow文件,如果任何人都可以修改,那结果太严重了。

目前:为了保护文件安全

访问一个文件,一共有三种对象:

user:拥有人

group:拥有组

other:其他人

Linux三大基本权限:rwx

基本权限

描述

r

w

x

执行

-rw-r--r--. 1 root root 2202 Dec 10 14:59 /etc/passwd

rw-:拥有人对于文件的访问权限

r--:拥有组对于文件的访问权限

r--:其他人对于文件的访问权限

ps:UID和文件UID一样,则匹配拥有人的权限,GID和文件GID一样,则匹配拥有组的权限,如果上面都不匹配,则匹配其他人的权限。

注意:如果文件没有r的权限但是有w权限,是否可以修改文件内容?

答:可以修改,使用重定向

一个目录要想有意义,必须要有r和x的权限

总结:删除目录下的文件,不是看文件的拥有人和拥有组,而是看这个文件所在的工作目录是否有w权限,有w权限,只要是在这个目录下,无论是谁创建,都可以删除。如果要删除一个目录,你必须是这个目录的拥有人

chmod修改文件权限(重点)

文件权限是赋予哪一个对象的?是拥有人、拥有组、其他人捏?

chmod赋予权限的时候。多个操作对象之间使用,逗号进行分割,并且支持所有的属性操作符。

例:现在我要给拥有人添加rwx,拥有组添加rwx,其他人为x

第一种字符:chmod u+rwx,g+rwx,o+x /opt

a是同理的。

第二种数字方式(qwe)修改权限:chmod 771 /opt

chown修改文件的拥有人和拥有组的身份

[root@localhost ~]# chown user:user /opt/passwd

[root@localhost ~]# ll /opt/passwd

-rw-r--r--. 1 user user 0 Dec 12 13:40 /opt/passwd

文件的拥有人可以对自己的文件修改权限。使用chmod命令

问题:文件的拥有人(超级管理员除外)可以对自己的文件修改拥有人和拥有组的身份吗?不行!但是文件的拥有人可以将这个文件的拥有组修改为自己的私有组。

修改拥有人:chown username文件

修改拥有组:chown .groupname或者:groupname文件

同时修改拥有人/组:chown usernamegroupname文件

专门修改拥有组的命令:chgrp 如下

[root@localhost ~]# chgrp root /opt/passwd

[root@localhost ~]# ll /opt/passwd

-rw-r--rw-. 1 user root 0 Dec 12 13:40 /opt/passwd

问题:/etc/shadow文件没有任何的权限,为什么root用户也可以修改?

答:文件的拥有人可以强制修改自己的文件。

Linux三大特殊权限

suid特殊权限(重点)

对文件:文件拥有suid。则执行这个文件的时候是以文件的拥有人的身份去执行的。仅对二进制可执行文件(命令)有效果,对于自定义的脚本文件没有意义。

对目录:没有任何的意义,只有二进制可执行文件有效果。

查看文件是否具有suid权限

如果文件的拥有人的x栏位变成了小写的s或者大写的S 表示具有suid的权限,如果是小写s,说明文件的拥有人具有x权限,如果是大写的S,说明文件的拥有人没有x权限。

赋予suid文件权限

基于字符:chmod u+s文件

基于数字:chmod 4xxx 文件(xxx为三大基础权限)

sgid特殊权限(重点)

对于文件:文件具有sgid权限,则执行这个文件会以文件的拥有组的身份执行,只对于二进制可执行文件有效,对于脚本文件没有意义。

对于目录:目录具有sgid权限,则在这个目录下创建的新的文件都会继承目录的拥有组的身份

赋予sgid文件权限

基于字符:chmod g+s文件

基于数字:chmod 2xxx 文件(xxx为三大基础权限)

sticky(sbit)粘性权限:

对于文件:没有任何意义

对于目录:目录具有sbit权限,则在这个目录下,只有用户自己才可以修改自己的文件和重命名。

/tmp目录下,防止其他人把我的文件修改掉和重命名,赋予一个sbit权限

赋予sbit权限

基于字符:chmod o+t文件

基于数字:chmod 1xxx 文件(xxx为三大基础权限)

总结:如果文件具有特殊权限sS/tT,小写的字母都表示这个文件有x权限,大写的字母表示这个文件没有x权限。

Linux ACL访问控制列表(权限)

ACL权限的出现实际上是为了解决基本权限不足的问题

场景:现在我要实现zhangsan用户,可以对/etc/shadow文件(拥有人/组均为root)进行读和修改,但是其他用户没有权限

ACL权限特点:可以针对文件赋予指定用户或者指定用户组的访问权限。

查看文件是否具有ACL权限

第一个方法是使用 ll /etc/shadow的话,会发现最后有一个+号,这个就说明该文件具有ACL权限。但是无法得知是用户还是用户组具有这个权限。

第二种方法也就是最推荐的,使用getfacl。就可以清晰的看到是用户还是用户组的权限了。

mask值控制着ACL权限的有效权限,如果mask为r--。那么该文件的有效权限只有r。

ACL权限的匹配优先级

用户的ACL权限

用户权限

用户组的ACL权限

用户组的权限

其他人权限

只要有ACL权限,则优先级最高匹配。

案例1:赋予/etc/passwd文件用户的ACL权限,仅允许user用户对文件可以读写和执行

[root@localhost ~]#setfacl-m u:user:rw /etc/passwd添加/修改ACL权限为-m

[root@localhost ~]# getfacl /etc/passwd

ps:如果没有user这个用户,系统会报错误。提示没有这个参数。

案例2:赋予/etc/passwd文件用户组的ACL权限,仅允许zhangsan用户组的成员对文件可以读写

[root@localhost ~]#setfacl-m g:zhangsan:rw /etc/passwd

[root@localhost ~]# getfacl /etc/passwd

案例3:修改user用户的ACL权限,让其对/etc/passwd文件只有读写

[root@localhost ~]# setfacl -m u:user:rw /etc/passwd

案例4:修改/etc/passwd文件的拥有人的权限为rwx,拥有组的权限为rwx

看到这个题目大家就会想到,修改拥有人和拥有组的权限直接使用chmod命令。

chmod u+rwx /etc/passwd

chmod g+rwx /etc/passwd (错误的)

这个是错误的做法,当文件赋予了ACl权限之后,通过ll命令看到的文件权限的拥有组的mask值,并且通过chmod修改拥有组的权限实际上是修改mask值。

setfacl可以给拥有人/拥有组/其他人设置权限

Setfacl -m

u::rwx 修改拥有人权限 === chmod u=rwx

g::rwx 修改拥有组权限 === chmod g=rwx(这个chmod命令的前提是文件没有acl权限)

o::rwx 修改其他人权限 ===chmod o=rwx

删除acl权限

指定删除用户或者用户组的acl权限

setfacl -x uusername文件

setfacl -x ggroupname文件

删除文件的所有的acl权限

setfacl -b文件

ACL权限继承(默认的acl权限):为了确保在目录中创建的文件和目录继承特定的acl权限

需求:/opt目录下新创建的文件都会继承目录的acl权限,所有的新的文件都会有user用户的rw的acl权限

setfacl -m d:u:user:rw /opt

UMASK值

记住:一个文件在创建出来的时候,永远不可能就已经带上了X权限!!!

umask权限掩码

umask控制用户创建的文件的默认权限

目录最大权限777、文件最大权限666

文件默认权限=666-umask

目录默认权限=777-umask

[root@localhost ~]# ll

total 2

-rw-r--r--. 1 root root 0 Dec 13 14:24 1.txt 该文件权限为:644

drwxr-xr-x. 2 root root 6 Dec 13 14:24 dir 该目录权限为:755

则root的umask值为:

644=666-umask

755=777-umask

计算得出为022

也可以通过命令umask获得

[root@localhost ~]# umask

0022

现在我将root用户的umask值临时设置为333

那么通过计算,文件的默认权限=666-333为333. 目录的默认权限=777-333为444

通过命令:

[root@localhost ~]# umask 333

[root@localhost ~]# umask

0333

我再创建一个目录和文件

[root@localhost ~]# ll

-r--r--r--. 1 root root 0 Dec 13 14:34 1.txt1 文件权限为444

dr--r--r--. 2 root root 6 Dec 13 14:34 dir1 目录权限为444

发现,文件的默认权限和计算出来的不一样。记住:一个文件在创建出来的时候,永远不可能就已经带上了X权限!!!如果碰到了默认权限带X权限,则权限会自动+1.

所以会造成一个问题,如果umask值没有设置好,最终会导致文件和目录的默认权限计算出来的结果不一样。所以以后去计算文件或者目录的默认权限,要求计算umask值的时候,一定要以目录的为准。也就是:777-目录的默认权限=umask

修改umask方式

描述

临时修改

umask 数字

永久修改

/etc/bashrc文件

http://www.jsqmd.com/news/83780/

相关文章:

  • 【计算机毕设推荐】基于Spark+Python的饮食风味数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
  • 26、第三方集群解决方案及相关技术解析
  • 为什么视频生成稀疏注意力做不好?中科院自动化所最新提出稀疏注意力纠偏新范式
  • 游戏深度魔法:Flame引擎视差滚动技术的实战解析
  • 【Qt开源项目】— ModbusScope-day 2
  • 吐血整理,性能测试的左移右移+性能基线实践,详细分析...
  • P2746题解
  • Arnis终极配置指南:3步将现实城市完美导入Minecraft
  • 企业级AI路由网关:解锁多模型智能调度的未来
  • LOOT完整使用指南:游戏模组加载顺序优化利器
  • 闪电AI文档转换Lite:让8种格式转换从“繁琐“变“一键“的离线革命
  • 15. Vue工程化 + ElementPlus
  • DBeaver崩溃救星:3步紧急恢复SQL脚本的完整方案
  • 【URP】Unity[后处理]色差ChromaticAberration
  • 设备故障排查还在翻手册?AI 让运维效率翻倍
  • Gitleaks配置终极指南:5分钟从零到精通的完整教程
  • Aurora UI 安装配置终极指南
  • LLM技术文档版本管理的终极实战指南
  • 本地铝丝打卡机生产厂家排行,口碑之选推荐,打卡机公司优选实力品牌 - 品牌推荐师
  • SoFixer:专业修复内存dump的So文件工具完全指南
  • 5大React动画库生态对比:从入门到精通的全栈解决方案
  • 铝丝打卡机厂家口碑榜:本地用户力荐的TOP10,行业内打卡机哪家权威优选品牌推荐与解析 - 品牌推荐师
  • Farewell
  • 完整教程:深度学习:Mini-Batch 梯度下降(Mini-Batch Gradient Descent)
  • 终极mpv播放器完整指南:如何快速掌握命令行视频播放神器
  • 少儿编程考试路径规划:考级与竞赛时间如何平衡?
  • 小学生学C++编程 (运算符的优先级)
  • MATLAB图片操作常用命令
  • Mastercam产品编程培训,Mastercam三四轴编程全天班
  • 编程竞赛备考:如何利用考级检验基础能力?