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

文章目录

  • 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.mzph.cn/news/829884.shtml

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

相关文章

Beyond Chain-of-Thought: A Survey of Chain-of-X Paradigms for LLMs论文阅读笔记(未完待续)

地址:https://arxiv.org/html/2404.15676v1 一些论文合集:https://github.com/atfortes/Awesome-LLM-Reasoning 背景 思维链 (Chain-of-Thought,CoT) 是一种被广泛采用的提示方法,它激发了大型语言模型 …

《HCIP-openEuler实验指导手册》2.1安装和测试Nginx

知识点 Nginx (发音为 “engine x”) 是一个开源的高性能 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。由 Igor Sysoev 创建并维护,其设计用于处理高并发连接,具有高度的可扩展性和灵活性。 安装步骤 yum方式安装 dn…

读书笔记--数据管理知识体系的阅读总结感悟

最近继续研读DAMA数据管理知识体系之数据管理章节,结合自身在应用系统建设、数据治理工作实践,有所感悟并记录如下,供大家参考。数据管理工作需要技术和非技术的双重技能,由业务人员和信息技术人员相互协作,共同来承担责任,确保组织管理的数据是高质量的,主要驱动力是使…

go语言实现简单ngnix样例

目录 1、代码实现样例: 2、postman调用ngnix,转发: 1、代码实现样例: package mainimport ("bytes""encoding/json""io""log""net/http""net/http/httputil""…

Chapter 1-17. Introduction to Congestion in Storage Networks

Q: Isn’t increasing network capacity the ultimate solution to network congestion? Increasing network capacity is the solution when a lack of network capacity is the root cause of congestion. There are many more reasons for network congestion and in thos…

ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

双目视觉(双目相机)

1.时间同步 需要一个单独的硬件(单片机)单独给每一个相机发送触发信息,然后再接收返回。 2.相机选型: (1)相机的分辨率 根据对图像精度的要求来选择相机的分辨率。 (2)颜色 通…

Python AI库 Pandas的常见操作的扩展知识

Python AI库 Pandas的常见操作的扩展知识 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 熟悉表格文件的基本操作 具备自主扩展学习能力 前文中对Pandas的数据结构以及基础操作做了介绍,本文中会在前文的基础上,对常见的操作进…

selenium拉动滚动条

selenium拉动滚动条 # 导包 from selenium import webdriver from time import sleep # 获取浏览器驱动对象 driver webdriver.Edge() # 最大化浏览器 driver.maximize_window() # 隐式等待 driver.implicitly_wait(30) # 打开url url r"C:\Users\黄永生\Desktop\软件测…

计算机找不到vcruntime140_1.dll,无法继续执行代码快速解决方法

vcruntime140_1.dll是一个重要的Windows操作系统中的动态链接库(DLL)文件,它是微软Visual C Redistributable软件包的组成部分。以下是该文件的详细介绍: 名称含义:“vcruntime”代表Visual C Runtime,表明…

static page 项目

static page 项目 作者:不染心 博客地址:https://blog.csdn.net/qq_38234785 源码地址:https://mbd.pub/o/bread/ZpWVlJps 未经允许,不得转载 文档版本v1,还没写完持续更新 一、引言 1. 软件概述和背景 本软件是…

STM32f103 HAL库读保护以及解除

读保护 void Flash_EnableReadProtection(void) {FLASH_OBProgramInitTypeDef OBInit;__HAL_FLASH_PREFETCH_BUFFER_DISABLE();HAL_FLASHEx_OBGetConfig(&OBInit);if(OBInit.RDPLevel OB_RDP_LEVEL_0){OBInit.OptionType | OPTIONBYTE_RDP;OBInit.RDPLevel OB_RDP_LEVEL…

FIR滤波器——DSP学习笔记三(包含一个滤波器设计的简明案例)

​​​​​​ 背景知识 FIR滤波器的特性与优点 可精确地实现线性相位响应(Linear phase response),无相位失真; 总是稳定的,所有极点都位于原点 线性相位FIR滤波器的性质、类型及零点位置 冲击响应满足:奇…

iframe父子页面通信

目录 一、 创建父页面和子页面 父页面(parent.html): 子页面(child.html): 二、 实现父子页面之间的通信 在父页面的 在子页面的 三、扩展:postMessage() 方法的语法: 一、 …

(学习日记)2024.05.03:UCOSIII第五十七节:User文件夹函数概览(uCOS-III->Source文件夹)第三部分

之前的章节都是针对某个或某些知识点进行的专项讲解,重点在功能和代码解释。 回到最初开始学μC/OS-III系统时,当时就定下了一个目标,不仅要读懂,还要读透,改造成更适合中国宝宝体质的使用方式。在学完野火的教程后,经过几经思考,最后决定自己锦上添花,再续上几章。 这…

【PyTorch】torch.gather() 用法

gather常被用于image做mask的操作中,对哪些地方进行赋值0/1 API: torch.gather — PyTorch 2.2 documentation torch.gather(input, dim, index, outNone) → Tensor gather()的意义: 顾名思义,聚集、集合:gather…

计算机网络组成—物理层

一、物理层基本概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 1物理层接口特性 机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况电气特性&…

VS2019配合QT5.9开发IRayAT430相机SDK

环境配置 VS2019 QT5.9 编译器版本 MSVC2017_64添加系统环境变量(完毕后重启电脑) 从VS2019中下载Qt插件 从VS2019中添加单个编译组件 上述操作完成后用VS打开工程文件,工程文件地址 : C:\Users\86173\Desktop\IRCNETSDK_W…

python基础知识分享

1程序结构 1.1分支结构 单分支结构: 例如 if 条件表达式: 语句块 双分支结构: 例如 if 条件表达式: 语句块1 else: 语句块2 多分支路结构: 例如: if 条件表达式: if 条件表达式1: 语句块1 elif 条件表达式2: 语句块2 elif 条件表达式3: 语句块3 ....... else: …

Debezium系列之:Debezium技术专栏第300篇系列文章之打通Debezium实时采集Oracle数据库数据到Kafka集群的技术

Debezium系列之:Debezium技术专栏第300篇系列文章之打通Debezium实时采集Oracle数据库数据到Kafka集群的技术 一、需求描述二、部署Debezium集群和Oracle连接器三、安装Oracle数据库四、设置具有采集Oracle数据库数据权限的账号1.以系统管理员的身份连接到数据库实例2.创建表空…