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

OS9.【Linux】基本权限(下)

目录

1.默认权限

掩码

修改权限掩码

目录的权限说明

r权限

w权限

x权限

结论

家目录权限

2.共享目录

粘滞位t 


承接OS8.【Linux】基本权限(上)文章

1.默认权限

创建用户时拥有者所属组都是该用户,而且对其他人没有任何权限

掩码

新建文件new.txt1和目录folder后,立刻查看它们的权限:

显示目录的默认权限:775

显示普通文件的默认权限:664

思考:为什么会出现以上默认的权限?

其实:系统提供普通文件的默认权限是666,而目录的默认权限是777,664与666不同的原因和775和777不同的原因和权限掩码umask有关

输入umask命令:

umask

只看后3位002,最左侧的0不管,给出以下规则:

在umask出现的权限(二进制位为1)不会在最终的文件权限中出现,而umask中未出现的权限(二进制位为0)保持起始的权限位

推测最终权限是掩码和起始权限通过某运算规则得到的,

这个运算规则是:最终权限=原始权限&(~掩码)

也可以变形为~(~原始权限|掩码),使用德摩根定律

P\land{\neg{Q}}=\neg({\neg}P\lor{Q})

 写一个简单的程序验证下:

#include <stdio.h>
int main()
{printf("%d", 666 & (~002));return 0;
}

运行结果:

#include <stdio.h>
int main()
{printf("%d", ~(~666|002));return 0;
}

  运行结果:

修改权限掩码

例如修改成0123:

umask 0123

目录的权限说明

使用控制变量法,逐个尝试,设目录folder里面有test.txt文件

r权限

先禁掉w和x权限:

chmod u+r-wx,g+r-wx,o+r-wx folder

 查看目录中的文件:只知道文件名,但不知道文件的权限

无法查看test.txt的内容:

无法向test.txt写入内容写入内容:

不允许进入目录:

w权限

先禁掉r和x权限:

chmod u+w-rx,g+w-rx,o+w-rx folder

无法查看目录中的文件:

无法向test.txt写入内容写入内容:

不允许进入目录:

x权限

先禁掉r和w权限:

chmod u+x-rw,g+x-rw,o+x-rw folder

无法查看目录中的文件: 

尝试向test.txt写入内容:可以写入,能打印到显示器上

可以进入目录里:

结论

可执行权限x: 如果目录没有可执行权限, 则无法cd到目录中;

可读权限r: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容;

可写权限w: 如果目录没有可写权限, 则无法在目录中创建、更改或删除文件.

-->一个文件是否能被删除,不由文件本身决定,而由其所处的目录决定

家目录权限

普通用户的家目录权限是700,也就意味着一个普通用户无法访问另一个普通用户的目录,但root除外,其有最高权限

2.共享目录

如果多个普通用户想共享一个目录,则这个共享目录不能在任何一个人的家目录下

现以root身份创建共享目录shared:

粘滞位t 

为了防止其他用户删除目录中的文件,

1.shared目录中,对other去掉权限w是不能解决问题的,由上述对w权限的分析,这样就无法创建文件,

2.缺点:只能以root身份建立共享目录,且只有以root身份才能增删改查,例如上方提到的shared目录

解决方法:根目录下有一个自带的tmp目录,可以在其中对用户各自的文件进行增删改查操作,其中权限中的t为粘滞位(可以通过chmod o+t设置),是特殊的x权限,当前认为: 只有root和拥有者能删除文件,其他人都不允许

例如以guest身份创建一个test.txt,切换为zhang身份却发现无法删除test.txt

http://www.xdnf.cn/news/10011.html

相关文章:

  • Realsense D435i 使用说明
  • Python+requests+pytest接口自动化测试框架的搭建(全)
  • 在大型中实施访问控制 语言模型
  • Linux-pcie ranges介绍
  • 量化qmt跟单聚宽小市值策略开发成功
  • ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程
  • DeepSeek‑R1-0528 重磅升级:蚂蚁百宝箱免费、无限量调用
  • k8s容器入门(9)Kubernetes yaml常用配置
  • DeepSeek-R1-0528-Qwen3-8B 本地ollama离线运行使用和llamafactory lora微调
  • 从零打造算法题刷题助手:Agent搭建保姆级攻略
  • Shopify 主题开发:页脚信息架构搭建技巧
  • 什么是内网ip证书
  • 网络安全基础--第九天
  • 核心机制:确认应答和超时重传
  • 5G 核心网中 AMF 的 NAS SM 信令路由详解
  • 动态报表筛选多项时的优化处理
  • 大模型-attention汇总解析之-MQA
  • (11)-java+ selenium->元素定位之By_tag_name
  • 编译器优化和实例
  • Haproxy搭建Web集群
  • 常见跨域问题解决
  • Flask项目进管理后台之后自动跳回登录页面,后台接口报错422,权限问题
  • Docker Compose使用自定义用户名密码启动Redis
  • 通过实时动作捕捉加速人形机器人训练
  • 力扣HOT100之动态规划:198. 打家劫舍
  • 循环神经网络(RNN):为什么它能处理时序数据?它真的能减轻过拟合吗?
  • Go语言defer关键字:延迟执行的精妙设计
  • 通用的防御框架,用于抵御(多模态)大型语言模型的越狱攻击
  • MQTT协议,EMQX部署,MQTTX安装学习
  • golang连接sm3认证加密(app)