Linux——(关于权限常见的3个问题)

修改文件或目录的拥有者和所属组

1.1 chown指令

功能:修改文件的拥有者格式:chown 【参数】用户名 文件名实例:

[root@iZbp19b5lvg8xtpf1tzrenZ test]# lltotal 0-rwxr-x--- 1 root root 0 Apr 26 11:59 test.txt[root@iZbp19b5lvg8xtpf1tzrenZ test]# chown yui test.txt[root@iZbp19b5lvg8xtpf1tzrenZ test]# lltotal 0-rwxr-x--- 1 yui root 0 Apr 26 11:59 test.txt

可以看到,我成功地将拥有者从root更改为yui。请注意:无法将拥有者更改为不存在的用户。

[root@iZbp19b5lvg8xtpf1tzrenZ test]# chown hehe test.txtchown: invalid user: ‘hehe’[root@iZbp19b5lvg8xtpf1tzrenZ test]# lltotal 0-rwxr-x--- 1 yui root 0 Apr 26 11:59 test.txt

1.2 chgrp指令

功能:修改文件的所属组格式:chgrp 【参数】用户名 文件名

常见的权限三个问题

2.1 对应一个目录,如果要进入,需要什么权限?

为了回答这个问题,我们可以使用控制变量法。首先,我们需要切换到普通用户。

[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ whoamiyui[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 375 newdr[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ lltotal 8d-wxrwxr-x 2 yui yui 4096 Apr 25 19:56 newdr-rw-rw-r-- 1 yui yui    5 Apr 25 19:57 test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ cd ..[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 575 newdr[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ lltotal 8dr-xrwxr-x 2 yui yui 4096 Apr 25 19:56 newdr-rw-rw-r-- 1 yui yui    5 Apr 25 19:57 test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ cd ..[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 675 newdr[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ lltotal 8drw-rwxr-x 2 yui yui 4096 Apr 25 19:56 newdr-rw-rw-r-- 1 yui yui    5 Apr 25 19:57 test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdrbash: cd: newdr: Permission denied

通过控制变量的方法,我们发现进入目录所需的权限是x,即执行权限。

观察r与w的作用:

[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 377 newdr[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ llls: cannot open directory .: Permission denied[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ touch test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ llls: cannot open directory .: Permission denied[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ cd ..[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 577 newdr[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ lltotal 0-rw-rw-r-- 1 yui yui 0 Apr 28 15:46 test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ rm -f test.txtrm: cannot remove ‘test.txt’: Permission denied

总结:

x决定是否可以进入目录r决定是否可以查看文件属性信息w决定是否可以在目录下新建和删除文件

2.2 为什么我们创建的文件默认权限不是777

[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ mkdir test[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ lltotal 4drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test-rw-rw-r-- 1 yui yui    0 Apr 28 15:46 test.txt

我们可以看到,目录的默认权限为775,普通文件的默认权限为664。这是为什么呢?首先,我们要知道一个目录被创建出来天生就是要被进入、查看和修改的,因此目录的默认权限应该是777。普通文件则不一定需要执行权限,因此默认权限为666。但实际情况并不完全符合,这是因为在Linux下存在权限掩码,它可以定制文件创建时的默认权限。

2.2.1 关于Linux下的权限掩码指令 umask

功能:查看或修改文件的掩码格式:umask / umask 权限值说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。root用户默认权限掩码为0022,普通用户默认为0002。实例:普通用户

[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask0002

root用户

[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# whoamiroot[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# umask0022

修改掩码

证件照制作小程序免费版 证件照制作小程序免费版

在线证件照系统是一套完善的冲印行业解决方案,致力于解决用户线上拍摄证件照,拍摄最美最标准证件照的使命。证件照免费版功能:后台统计:当天制作、当天新增、支持规格、近7日统计规格列表:筛选查看、编辑用户列表:筛选查看常见问题:筛选查看、新增、编辑、删除小程序设置:应用设置、流量主设置小程序跳转:筛选查看、新增、编辑、删除关注公众号:引导设置系统要求:系统:Linux系统(centos x64)运行环境

证件照制作小程序免费版 1 查看详情 证件照制作小程序免费版

[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# su yui[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask0002[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 0022[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask0022[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 022[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask0022[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 001[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask0001

修改掩码时,可以省略第一个0。计算文件创建时的默认权限。公式:文件的起始权限 & (~umask) = 最终权限(默认)。解释:目录的起始权限为0777,普通文件为0666。下面我来计算一个看看,就目录文件test吧,umask为0002。

[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ lltotal 4drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test-rw-rw-r-- 1 yui yui    0 Apr 28 15:46 test.txt

计算过程:

Linux——(关于权限常见的3个问题)

2.3 文件能否被删除取决于什么

我们来看看一个权限全无的文件:

[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ lltotal 4drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test-rw-rw-r-- 1 yui yui    0 Apr 28 15:46 test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ chmod 000 test.txt [yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ lltotal 4drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test---------- 1 yui yui    0 Apr 28 15:46 test.txt[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ rm -f test.txt [yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ lltotal 4drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test

即使我对这个文件的权限什么都没有,但我却可以删除它。甚至root的文件也可以删除。因此我们明白了,一个文件能否被删除,不取决于文件本身,而是取决于文件所处的目录,即拥有者是否具有w权限。这样的话会不会很危险呢?确实,不过在现实情况下,你不会去别人的目录下写文件。那么就催生出了另一个问题,当需要小组合作时呢?为了解决这个问题,Linux下有一个共享文件夹。

2.3.1 Linux下的共享文件夹

唯一根目录下。

[yui@iZbp19b5lvg8xtpf1tzrenZ /]$ pwd/[yui@iZbp19b5lvg8xtpf1tzrenZ /]$ lltotal 72lrwxrwxrwx.  1 root root     7 Jul 11  2019 bin -> usr/bindrwxr-xr-x   3 root root  4096 Apr 21 14:26 blog-rw-r--r--   1 root root   664 Apr 21 14:12 blog.zipdr-xr-xr-x.  5 root root  4096 Jul 11  2019 bootdrwxr-xr-x   3 root root  4096 Apr 21 14:22 codedrwxr-xr-x  19 root root  2980 Feb 28 16:24 devdrwxr-xr-x. 77 root root  4096 Apr 25 19:54 etcdrwxr-xr-x.  4 root root  4096 Apr 25 19:53 homelrwxrwxrwx.  1 root root     7 Jul 11  2019 lib -> usr/liblrwxrwxrwx.  1 root root     9 Jul 11  2019 lib64 -> usr/lib64drwx------.  2 root root 16384 Jul 11  2019 lost+founddrwxr-xr-x.  2 root root  4096 Apr 11  2018 mediadrwxr-xr-x.  2 root root  4096 Apr 11  2018 mntdrwxr-xr-x.  2 root root  4096 Apr 11  2018 optdr-xr-xr-x  91 root root     0 Nov  3 21:00 procdr-xr-x---.  9 root root  4096 Apr 21 15:29 rootdrwxr-xr-x  23 root root   640 Apr 28 00:33 runlrwxrwxrwx.  1 root root     8 Jul 11  2019 sbin -> usr/sbindrwxr-xr-x.  2 root root  4096 Apr 11  2018 srvdr-xr-xr-x  13 root root     0 Dec  5 18:09 sysdrwxrwxrwt.  9 root root  4096 Apr 28 03:47 tmp /////////////// 共享文件夹tmp///////////////////////////drwxr-xr-x. 13 root root  4096 Jul 11  2019 usrdrwxr-xr-x. 19 root root  4096 Jul 11  2019 var

在这个文件夹下就可以进行暂时的小组合作。细心的同学可能注意到了,tmp的权限中的t。t作为一个粘滞位:给目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定。该目录下的文件,只有root或者文件的拥有者有权利进行删除,其他人一概不允许!这样就有效地防止了其他人对自己文件的删除。

以上就是Linux——(关于权限常见的3个问题)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/727275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
AI工具省钱攻略:200元预算做出万元级精品课
上一篇 2025年11月25日 10:05:18
快手网页版官方平台(登录) 快手网页版在线刷视频进入
下一篇 2025年11月25日 10:05:29

相关推荐

  • VSCode调试FPGA工程的技巧(结合Vivado,快速定位问题)

    vscode在fpga开发中并非替代vivado,而是作为高效辅助工具提升开发效率。1. 在代码编写方面,vscode提供 superior 的语法高亮、自动补全和代码管理功能,显著优化verilog、systemverilog和tcl脚本的编写体验,并通过git实现无缝版本控制;2. 在仿真与自动…

    2026年9月22日
    1200
  • 如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    在linux中查看文件系统类型时,df -t 适合查看已挂载分区的文件系统,而 lsblk -f 可查看所有块设备信息。1. df -t 显示已挂载的文件系统类型、磁盘使用情况及挂载点,适用于快速了解当前挂载目录所用文件系统;2. lsblk -f 列出包括未挂载设备的详细信息,如 uuid、lab…

    2026年9月22日 用户投稿
    300
  • PowerBI的AI混合工具怎么用?快速创建数据报表的详细操作方法

    PowerBI的AI混合工具通过Q&A、关键影响因素、异常检测和智能叙事等功能,降低数据分析门槛,加速从数据到决策的全过程。它让非技术人员用自然语言提问获取图表,自动识别数据异常与驱动因素,并生成文字解读,大幅提升分析效率。但需以高质量数据和合理建模为基础,结合业务逻辑验证结果,避免“垃圾进…

    2026年9月22日
    600
  • Sublime用于MySQL分库分表设计逻辑_适合大型系统水平扩展需求

    Sublime用于MySQL分库分表设计逻辑_适合大型系统水平扩展需求Sublime用于MySQL分库分表设计逻辑_适合大型系统水平扩展需求Sublime用于MySQL分库分表设计逻辑_适合大型系统水平扩展需求Sublime用于MySQL分库分表设计逻辑_适合大型系统水平扩展需求

    分库分表通过拆分数据提升数据库性能与扩展性,常见策略包括垂直分表、水平分表和分库;sublime 可辅助设计逻辑。1. 垂直分表按字段拆分,降低单表复杂度;2. 水平分表按行拆分,提升查询效率;3. 分库减少单节点压力,增强系统吞吐能力。使用 sublime 可高效编写 sql 脚本、注释分片规则、…

    2026年9月22日 用户投稿
    500
  • 笔记—Linux安装OpenCV及VSCode的配置编译

    笔记—Linux安装OpenCV及VSCode的配置编译笔记—Linux安装OpenCV及VSCode的配置编译笔记—Linux安装OpenCV及VSCode的配置编译笔记—Linux安装OpenCV及VSCode的配置编译

    在学习新技能的过程中,我选择了在linux系统上进行操作,这对于从未接触过linux的人来说是一个绝佳的学习机会。这篇文章记录了我在linux上安装opencv的过程。 我选择的Linux发行版是Ubuntu 20.04.3,并将其安装在Virtual Box虚拟机中。Ubuntu的相关资料丰富,选…

    2026年9月22日 用户投稿
    100
  • 使用Sublime管理MySQL数据库结构_高效编辑表结构与字段定义脚本

    使用Sublime管理MySQL数据库结构_高效编辑表结构与字段定义脚本使用Sublime管理MySQL数据库结构_高效编辑表结构与字段定义脚本使用Sublime管理MySQL数据库结构_高效编辑表结构与字段定义脚本使用Sublime管理MySQL数据库结构_高效编辑表结构与字段定义脚本

    用 sublime text 管理 mysql 数据库结构脚本高效且灵活。1. 适合习惯文本编辑、需自定义流程的开发者;2. 启动快、资源占用低,支持多光标、正则替换,插件丰富,易配合 git;3. 建议每张表单独文件、按模块分目录、主脚本汇总建表语句,索引外键单独文件;4. 推荐插件有 sqlto…

    2026年9月22日 用户投稿
    000
  • 群友不讲武德,编写命令来获取蘑菇积分?

    群友不讲武德,编写命令来获取蘑菇积分?群友不讲武德,编写命令来获取蘑菇积分?群友不讲武德,编写命令来获取蘑菇积分?群友不讲武德,编写命令来获取蘑菇积分?

    大家好,我是陌溪 最近蘑菇不是上线了签到功能嘛,用户每天可以登录蘑菇,然后打卡进行签到。 蘑菇签到 同时,为了考虑到小伙伴们可能会忘记签到,还特意做了补签功能 发放补签卡 每周一只要在蘑菇排行榜的小伙伴,就会发放 1~2 张签到卡 蘑菇排行榜 目前蘑菇排行榜主要是通过积分来进行排序的,为了鼓励大家多…

    2026年9月22日 用户投稿
    300
  • MySQL在Sublime中高亮配置指南_实现关键词提示与语法检查功能

    MySQL在Sublime中高亮配置指南_实现关键词提示与语法检查功能MySQL在Sublime中高亮配置指南_实现关键词提示与语法检查功能MySQL在Sublime中高亮配置指南_实现关键词提示与语法检查功能MySQL在Sublime中高亮配置指南_实现关键词提示与语法检查功能

    要配置sublime text以更好地处理mysql代码,需安装package control、sql语法包(如sqltools或sublimesql)、sublimelinter及sqlfluff进行语法检查,并可选装格式化与数据库连接插件。1. 安装package control是前提;2. 通…

    2026年9月22日 用户投稿
    500
  • Prestashop分页隐藏分类描述的SEO考量与处理

    本文探讨了Prestashop商店中分类描述在分页后消失的问题。我们解释了这种现象通常并非SEO问题,因为搜索引擎主要关注第一页的描述内容。教程将深入分析此行为背后的SEO逻辑,并提供确保网站SEO友好的最佳实践,强调第一页描述的重要性及规范使用Canonical标签。 Prestashop分类描述…

    2026年9月22日
    100
  • VSCode设置SSH远程开发(安全连接,跨平台开发指南)

    vscode的ssh远程开发功能通过ssh协议实现本地编辑器与远程服务器的安全连接,让用户能在本地直接操作远程代码,享受与本地一致的开发体验。首先需安装“remote – ssh”扩展并配置~/.ssh/config文件,定义host、hostname、user、port和identit…

    2026年9月22日
    000
  • 【工具分享】坐标转换工具

    内容简介 本文将介绍一个实用的坐标转换工具,帮助用户在GCJ-02和WGS84坐标系之间轻松转换数据。阅读完本文,您将了解如何获取此工具。工具获取方式将在文章末尾详细说明。 工具简介与参数介绍如图所示,工具界面简洁明了,包含三个参数,下面将对这三个参数进行简要介绍。 待转换图层此参数是工具的输入参数…

    2026年9月22日
    100
  • MySQL执行时间分析与诊断_MySQL性能瓶颈精准定位

    MySQL执行时间分析与诊断_MySQL性能瓶颈精准定位MySQL执行时间分析与诊断_MySQL性能瓶颈精准定位MySQL执行时间分析与诊断_MySQL性能瓶颈精准定位MySQL执行时间分析与诊断_MySQL性能瓶颈精准定位

    mysql性能瓶颈定位与分析需从慢查询日志、执行计划、实时监控等多维度入手。1. 开启慢查询日志,设置slow_query_log=1、指定日志路径及阈值long_query_time,通过mysqldumpslow分析日志找出最慢sql;2. 使用explain命令查看sql执行计划,重点关注ty…

    2026年9月22日 用户投稿
    300
  • 一加Nord手机为什么无法卸载应用?解锁系统限制的详细方法

    无法卸载应用因权限或预装限制,需停用设备管理权限、通过应用管理卸载、使用ADB命令移除,或解锁Bootloader刷机彻底删除。 如果您尝试在使用一加Nord手机时卸载某个应用,但发现无法完成操作,这通常是因为该应用属于系统预装应用或具有设备管理权限,导致常规卸载方式失效。以下是解决此问题的步骤: …

    2026年9月22日
    100
  • MySQL中如何使用存储过程提高业务逻辑复用_示例讲解?

    MySQL中如何使用存储过程提高业务逻辑复用_示例讲解?MySQL中如何使用存储过程提高业务逻辑复用_示例讲解?MySQL中如何使用存储过程提高业务逻辑复用_示例讲解?MySQL中如何使用存储过程提高业务逻辑复用_示例讲解?

    存储过程在 mysql 中用于封装业务逻辑,提升复用性并减少网络传输。它是一组预定义的 sql 语句集合,通过参数调用实现功能,如查询订单及计算消费总额。其优点包括提高执行效率、统一数据操作逻辑、增强安全性和便于维护。例如,输入客户 id 即可返回订单信息与总消费金额。优化方式有:1. 使用 out…

    2026年9月22日 用户投稿
    200
  • 抖音流量助推怎么来的?平台流量助推什么意思

    近年来,短视频平台迅速崛起,其中以抖音最为突出。作为一个专注于短视频内容分享的平台,抖音凭借其智能算法和多元化的内容生态,吸引了海量用户。而“抖音流量助推”这一概念,也成为众多创作者和品牌实现快速成长的重要工具。本文将带您深入了解抖音流量助推背后的运作机制。 一、抖音流量助推的核心机制 1. 推荐算…

    2026年9月22日
    200
  • 如何使用DeepSpeed训练AI大模型?大规模模型训练的优化技巧

    DeepSpeed通过ZeRO等技术突破显存限制,实现大模型高效训练。它采用ZeRO-1/2/3分级优化,分别对优化器状态、梯度和参数进行分区,显著降低单卡显存占用;结合混合精度、梯度累积和CPU/NVMe卸载进一步节省资源。同时集成流水线并行与张量并行,支持多维并行策略协同,使万亿参数模型训练在普…

    2026年9月22日
    200
  • linux远程ssh连接不上?

    昨天下班回到家后,我试图连接linux来部署一个docker项目,却发现无法连接。 我对这类Linux问题的排查能力不足,只能通过错误信息在百度上搜索解决方案,但毫无效果。随后我想到可能是之前修改了配置文件,导致SSH服务出现问题。于是,我通过阿里云控制台使用救援连接,成功进入了SSH服务,并发现S…

    2026年9月22日
    200
  • python 基准测试(cProfile kcachegrind line_profiler memory_profiler)

    learn from 《python高性能(第2版)》 类似工具:pycharm profile对函数调用效率进行测试 1. 例子 一个圆周运动的动画 代码语言:javascript代码运行次数:0运行复制 from matplotlib import pyplot as pltfrom matpl…

    2026年9月22日
    200
  • NvidiaCanvas的AI混合工具如何使用?创作智能画作的详细教程

    NVIDIA Canvas是一款基于AI的智能图像生成器,它将用户涂鸦的材质色块实时转化为逼真风景,核心在于语义理解与风格化合成。其工作流程包括选择材质笔刷、在输入画布绘制概念图、利用图层与风格预设快速迭代,并导出成果。相比传统绘画工具,Canvas优势在于高效生成、降低创作门槛、支持快速探索与创意…

    2026年9月22日
    300
  • VSCode安装C/C++开发环境 最新VSCode配置C语言教程详解

    答案:搭建VSCode的C/C++环境需安装编译器、C/C++扩展并配置项目文件。首先安装MinGW(Windows)、Clang(macOS)或GCC(Linux),配置环境变量并验证;然后在VSCode中安装Microsoft的C/C++扩展;最后创建.c_cpp_properties.json…

    2026年9月22日
    300

发表回复

登录后才能评论
关注微信