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

news2024/12/23 11:02:55

文章目录

  • 1.修改文件或者目录的拥有者和所属组
    • 1.1chown指令
    • 1.2chgrp指令
  • 2.常见的权限三个问题
    • 2.1对应一个目录,如果要进入,需要什么权限?
    • 2.2为什么我们创建的文件默认权限不是777
      • 2.2.1关于Linux下的权限掩码
    • 2.3文件能否被删除取决于什么
      • 2.3.1Linux下的共享文件夹

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

1.1chown指令

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

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

可以看到我成功把拥有者从root改为yui。
注意:如果不能改成不存在的用户。

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

1.2chgrp指令

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

2.常见的权限三个问题

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

对应这个问题我们可以利用控制变量法。当然,我们要先切换成普通用户。

[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ whoami
yui
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 375 newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ ll
total 8
d-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 ~]$ ll
total 8
dr-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 ~]$ ll
total 8
drw-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 newdr
bash: cd: newdr: Permission denied

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

观察r与w的作用

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

总结
1.x决定是否可以进入目录
2.r决定是否可以进行对文件属性信息进行查看的权力
3.w决定是否可以在目录下新建和删除文件

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

[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ mkdir test
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-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]$ umask
0002

root用户

[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# whoami
root
[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# umask
0022

修改掩码

[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# su yui
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0002
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 0022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 001
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0001

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

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

计算过程
计算过程

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

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

[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-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]$ ll
total 4
drwxrwxr-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]$ ll
total 4
drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test

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

2.3.1Linux下的共享文件夹

唯一根目录下。

[yui@iZbp19b5lvg8xtpf1tzrenZ /]$ pwd
/
[yui@iZbp19b5lvg8xtpf1tzrenZ /]$ ll
total 72
lrwxrwxrwx.  1 root root     7 Jul 11  2019 bin -> usr/bin
drwxr-xr-x   3 root root  4096 Apr 21 14:26 blog
-rw-r--r--   1 root root   664 Apr 21 14:12 blog.zip
dr-xr-xr-x.  5 root root  4096 Jul 11  2019 boot
drwxr-xr-x   3 root root  4096 Apr 21 14:22 code
drwxr-xr-x  19 root root  2980 Feb 28 16:24 dev
drwxr-xr-x. 77 root root  4096 Apr 25 19:54 etc
drwxr-xr-x.  4 root root  4096 Apr 25 19:53 home
lrwxrwxrwx.  1 root root     7 Jul 11  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Jul 11  2019 lib64 -> usr/lib64
drwx------.  2 root root 16384 Jul 11  2019 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x  91 root root     0 Nov  3 21:00 proc
dr-xr-x---.  9 root root  4096 Apr 21 15:29 root
drwxr-xr-x  23 root root   640 Apr 28 00:33 run
lrwxrwxrwx.  1 root root     8 Jul 11  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Dec  5 18:09 sys
drwxrwxrwt.  9 root root  4096 Apr 28 03:47 tmp /////////////// 共享文件夹tmp///////////////////////////
drwxr-xr-x. 13 root root  4096 Jul 11  2019 usr
drwxr-xr-x. 19 root root  4096 Jul 11  2019 var

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


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1630509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

与Apollo共创生态:Apollo7周年大会自动驾驶生态利剑出鞘

前言 4月22日,百度Apollo在北京车展前夕举办了以“破晓•拥抱智变时刻”为主题的智能汽车产品发布会,围绕汽车智能化,发布了智驾、智舱、智图等全新升级的“驾舱图”系列产品。 1、7周年大会 自2013年百度开始布局自动驾驶,201…

吴恩达2022机器学习专项课程(一) 6.2 逻辑回归第三周课后实验:Lab2逻辑回归

问题预览/关键词 逻辑回归预测分类创建逻辑回归算法Sigmoid函数Sigmoid函数的表示sigmoid输出的结果Numpy计算指数的方法实验python实现sigmoid函数打印输入的z值和sigmoid计算的值可视化z值和sigmoid的值添加更多数据,使用逻辑回归可以正常预测分类![在这里插入图片…

GMSSL编译iOS

一、GMSSL-2.x 国密SDK源码下载,对GMSSL库进行编译生成对应的静态库。执行如下命令: cd到SDK源码目录 cd /Users/xxxx/Downloads/GMSSLV2-master查看SDK适用环境 ./config上图中错误解决方法 使用文本编辑器打开SDK目录下Configure、test/build.info、…

第十五届蓝桥杯省赛第二场C/C++B组C题【传送阵】题解(AC)

解题思路 由于 a a a 数组是一个 1 1 1 到 n n n 的一个排列,那么形成的一定是如下形式: 一定会构成几个点的循环,或者是几个单独的点。 从任意点开始,如果能进入一个循环,一定可以将整个循环的宝藏都拿走&#x…

android room 数据库升级的原则

1.如果新加了一张数据表则什么都不用干直接database那里将数据库版本升1 就可以nichuang 在entities里增加新加的entity ProviderMeta.DB_VERSION 版本号增1 room会自动生成 一个ProviderMeta.DB_VERSION 版本号的json文件 比如实例中升级到70 就会生成一个70.json的文件这是r…

发电厂智能巡检机器人:让发电厂更安全、更高效

在发电厂的众多应用场景中,升压站、化学车间、空冷塔、输煤皮带、综合管廊等,一直以来都是人工巡检的主战场。然而,这些场所环境极为复杂,人工巡检面临着诸多难题,强度大、频率低、间隔长等问题突出。这使得设备在运行…

三星应用TRIZ创新方法的经验分享:探索科技前沿的奥秘

TRIZ,即发明问题解决理论,于1946年被提出。它是一种基于知识和经验的创新方法,旨在帮助人们快速有效地解决各种复杂问题。TRIZ理论包含了大量的创新原理、算法和工具,可以帮助企业快速识别问题、寻找解决方案,并推动创…

【前端】VUE项目创建

在所需文件夹中打开cmd命令行窗口,输入vue ui 进入web可视化界面选择创建新项目 根据需求依次完成下列选择,下列是参考配置,完成后点击创建项目即可 最终显示完成

Opencv | 边缘提取

目录 一. 边缘检测1. 边缘的定义2. Sobel算子 边缘提取3. Scharr算子 边缘提取4. Laplacian算子 边缘提取5. Canny 边缘检测算法5.1 计算梯度的强度及方向5.2 非极大值抑制5.3 双阈值检测5.4 抑制孤立弱边缘 二. 轮廓信息1. 获取轮廓信息2. 画轮廓 一. 边缘检测 1. 边缘的定义…

智慧图书管理|基于SSM+vue的网上服装商城系统(源码+数据库+文档)

智慧图书管理目录 基于SSMvue的网上服装商城系统 一、前言 二、系统设计 三、系统功能设计 1.1 服装列表 1.2 公告信息管理 1.3 公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&#xff1…

webpack 入口和出口的最佳实践

入口和出口的最佳实践 {ignore} 具体情况具体分析 下面是一些经典场景 一个页面一个JS 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 源码结构 |—— src|—— pageA 页面A的代码目录|—— index.js 页面A的启动模块|—— ...|—— pageB 页面…

分享一些常用的内外网文件传输工具

内外网隔离后的文件传输是网络安全领域中一个常见而又重要的问题。随着信息技术的快速发展,网络安全问题日益凸显,内外网隔离成为了许多企业和组织保护内部信息安全的重要手段。然而,内外网隔离后如何有效地进行文件传输,成为了摆…

【sgSearch_v2】自定义组件:常用搜索栏筛选框组件(展开后更多搜索内容悬浮于其他组件之上,不影响整体布局高度)。

sgSearch_v2源码 <template><div:class"$options.name":expand"expandSearch":showCollapseBtn"showCollapseBtn"keyup.enter"(expandSearch true), $emit(keyupEnter, {})"><ul class"search-list">&l…

第一阶段--Day1--什么是网络安全?网络安全常用术语

目录 1. 什么是网络安全&#xff1f; 信息系统&#xff08;Information System&#xff09; 信息系统安全三要素&#xff08;CIA&#xff09; 网络空间安全管理流程 网络安全管理 2. 网络安全的常用术语 3. 网络安全形势 4. 中国网络安全产业现状 1. 什么是网络安全&am…

Leetcode—1256. 加密数字【中等】Plus(bitset、find_first_not_of、erase)

2024每日刷题&#xff08;120&#xff09; Leetcode—1256. 加密数字 实现代码 class Solution { public:string encode(int num) {string ans;num 1;while(num ! 0) {ans to_string(num & 1);num num >> 1;}if(ans.empty()) {return "";} else {stri…

解决VMware启动异常

问题1&#xff1a;该虚拟机似乎正在使用中。如果该虚拟机未在使用&#xff0c;请按“获取所有权(T)”按钮获 取它的所有权。否则&#xff0c;请按“取消(C)”按钮以防损坏。 解决步骤&#xff1a; 按弹框提示的配置文件目录下删除后缀为lck的文件&#xff08;lock&#xff09;。…

上位机图像处理和嵌入式模块部署(树莓派4b之远程vnc桌面访问)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于很多嵌入式开发比较精通的同学来说&#xff0c;使用命令行和开发板之间进行沟通是他们完全能够接受的一种开发方式。但是对于更多的朋友来说&a…

Linux系统编程--信号与管道

1、信号与管道是什么&#xff1f; 首先了解信号与管道的意义&#xff0c;我们需要了解Linux系统中进程之间是如何通信的。Linux操作系统下&#xff0c;以进程为单位来分配或者管理资源&#xff0c;进程之间不能直接访问资源&#xff0c;因此&#xff0c;要求进程间的资源和信息…

windows服务启动提示‘服务没有响应控制功能’(mysql启动报错)

在安装mysql的时候&#xff0c;在windows服务项启动 或 使用命令net start mysql 时启动是报错&#xff0c;提示 服务没有响应控制功能 发生原因&#xff1a; Windows10 x64 或 更高的操作系统&#xff0c;有些系统缺少一些组件 解决办法&#xff1a; 1、下载最新的 Microsoft …

软文伪原创工具有哪些,推荐3款强大的软文伪原创工具

软文作为一种重要的营销和传播手段&#xff0c;受到了越来越多的关注。而随着科技的不断发展&#xff0c;各种软文生产的工具相续出现&#xff0c;如&#xff1a;软文伪原创工具&#xff0c;它能为人们提供便捷、高效的文章生产方式&#xff0c;也及可以节省文章写作的时间与精…