07-Linux基本权限

news/2024/5/18 12:03:13/文章来源:https://blog.csdn.net/qq_46137324/article/details/126647817

1. 权限基本概述

1.1 什么是权限?

权限: 操作系统对用户能够执行的功能所设立的限制, 主要用于约束用户能对系统所做的操作, 
以及内容访问的范围, 或者说, 权限是指某个特定的用户具有特定的系统资源使用权力.

1.2 为什么要有权限?

因为系统中不可能只存在一个root用户, 一定会存在多个用户, 为了保护每个登陆用户的隐私和工作环境, 所以就有了权限.

1.3 权限与用户之间的关系?

在Linux系统中, 针对文件定义了三种身份,
分别是属主(owner)、属组(group)、其他人(others), 
每一种身份又对应三种权限, 分别是可读(readable)、可写(writable)、可执行(excutable).

img

用户对文件资源, 有三种角色, 一个用户访问文件流程如下:1. 判断用户是否为文件所有者, 如果是, 则按所有者的权限进行访问  
2. 判断用户是否为文件所有组成员, 如果是, 则按组的权限进行访问  
3. 如果不是所有者, 也不是该文件所属组, 则按匿名权限进行访问

1.4 权限中的rwx分别代表什么含义?

使用ls -l查看一个文件的详细属性时, 能看到每个文件都有一个9位基本权限位, 
比如: rwxr-xr-x 其中每三位字符为一组, 分别表示属主权限位, 属组权限位, 匿名权限位.  
linux中基本权限位则是使用这9位字符来表示, 主要控制文件属主(User)、属组(Group)、其他用户(Other)
字母含义对应权限
r(read)读取权限4
w(write)写入权限2
x(execute)执行权限1
-(没有权限)没有权限0
PS: 如果权限位不可读、不可写、不可执行, 则全部使用-作为占位符表示.
文件示例: rwxrw-r– alice hr file1.txt  Q1: alice对file1文件拥有什么权限?  alice是文件的属主对应rwx, 拥有文件读写执行权限.Q2: jack  file1.txt 文件有什么权限? 前提:jack 属于 hr   jack 属于 hr, hr属组对应rw-, 拥有文件的读写权限.Q3: tom  file1.txt 文件有什么权限?tom没有前题条件输入其他用户对应-r–, 对文件只有读的权限.

2. 权限设置方法

Linux下使用chmod命令来变更权限, root用户可以变更所有文件的权限, 而普通用户仅能变更属于自己的文件.
选项:  -R递归修改  

2.1 文件设置权限方式1

字母缩写含义:
a = all
u = user
g = group
o = other运算符含义:
= 设置权限 a=rwx 为所有用户设置读写执行权限
+ 添加权限 g+x   为属组设置添加执行权限
- 删除权限 g-x   为属组设置删除执行权限
 # 创建文件  
[root@kid ~]# touch file  
# 给所有人添加读写执行权限
[root@kid ~]# chmod a=rwx file     
# 取消所有的权限
[root@kid ~]# chmod a=-rwx file       
# 属主读写执行, 属组读写, 其他人无权限 
[root@kid ~]# chmod u=rwx, g=rw, o=- file    
# 属主属组读写执行, 其他人读权限
[root@kid ~]# chmod ug=rwx, o=r file           
[root@kid ~]# ll file  
-rwxrw-r-- 1 root root 0 Apr 13 03:29 file  

2.2 文件设置权限方式2

number
# 创建文件
[root@kid ~]# touch file  
# 属主读写执行  属组其他人可读
[root@kid ~]# chmod 644 file  
# 属主读写执行 属组其他人没有权限
[root@kid ~]# chmod 600 file  
[root@kid ~]# ll file  
-rw------- 1 root root 0 Apr 13 03:29 file  

2.3 目录设置权限

# 针对目录设定权限  
[root@kid ~]# mkdir dir  
# 修改目录允许所有人访问  
[root@kid ~]# chmod 777 dir/    
# 修改目录及子目录权限 
[root@kid ~]# chmod -R 755 dir/  
[root@kid ~]# ll -d dir/  
drwxr-xr-x 2 root root 6 Apr 13 03:34 dir/  
针对 hr 部门的访问目录/home/hr 设置权限, 要求如下:  
1. root 用户和 hr 组的员工可以读、写、执行  
2. 其他用户没有任何权限
# 创建hr用户(会自动创建/home/hr目录)
[root@kid ~]# groupadd hr  
# 设置用户, 并设置分组
[root@kid ~]# useradd hr01 -G hr  
[root@kid ~]# useradd hr02 -G hr  # 设置权限 
[root@kid ~]# chmod 770 /home/hr  
[root@kid ~]# ll -d /home/hr  
drwxrwx--- 2 root hr 6 Apr 13 03:26 /home/hr  

3. 文件权限与目录权限

在Linux中权限对文件和对目录的影响是有不同区别的.
权限对文件的影响对目录的影响
读取权限(r)具有读取阅读文件内容权限具有浏览目录及子目录
写入权限(w)具有新增、修改文件内容的权限具有增加和删除目录内文件 具有增加和删除目录内文件(需要x权限, 单独w屁都没有)
执行权限(x)具有执行文件的权限具有访问目录的内容(取决于目录中文件权限)

3.1 文件权限

# 1.新建文件, 并添加内容至文件中
[root@kid ~]# echo "date" > filename  
# 默认文件其他用户仅有读权限 
[root@kid ~]# ll filename 
-rw-r--r--. 1 root root 5 Aug 31 15:19 filename
# 2.切换为普通用户  
[root@kid ~]#  su - qq 
s/1# 3.普通用户查看root下的文件, 提示没有权限
[qq@kid /]$ cat  /root/filename 
cat: /root/filename: Permission denied# 切换到根目录
[qq@kid ~]$ cd /# 普通用户对root目录没有任何权限
[qq@kid /]$ ll
...
dr-xr-x---.   2 root root  180 Aug 31 15:19 root
...# 提供 访问目录的内容 权限
[qq@kid /]$ su - root
Password: 
[root@kid ~]# chmod o=x /root# 切换为普通用户
[root@kid ~]#  su - qq 
# 查看文件内容
[qq@kid ~]$ cat /root/filename
date
# 4.使用root增加文件的可执行权限(x)  
[root@kid ~]# chmod o+x /root/filename  
[root@kid ~]# ll /root/filename  
-rw-r--r-x. 1 root root 5 Aug 31 15:19 /root/filename# 5.测试x权限是否真的能执行该文件  
[root@kid ~]# /root/filename  
# 普通非脚本文件执行就显示当前时间
Wed Aug 31 16:01:39 CST 2022 # 如果普通用户需要执行文件, 需要配合r权限
# 删除r权限
[root@kid ~]# chmod o-r /root/filename 
[root@kid ~]# ll /root/filename 
-rw-r----x. 1 root root 5 Aug 31 15:19 /root/filename
[root@kid ~]# su - qq
# 再次执行文件, 提示没有权限
[qq@kid ~]$ /root/filename
bash: /root/filename: Permission denied# 6.增加w执行权限  
[root@kid ~]# chmod o+w /root/filename  
[root@kid ~]# ll /root/filename  
-rw-r--rwx 1 root root 5 Jan 24 08:24 /root/filename  # 7.测试编辑权限  
[kid@kid ~]$ vim /root/filename 
...
PS: 总结rwx对文件的影响  
读取权限(r)具有读取阅读文件内容权限  
1. 只能使用查看类命令cat、head、tail、less、more写入权限(w)具有新增、修改文件内容的权限  
1. 使用vim编辑会提示权限拒绝,  但可强制保存, 会覆盖文件的所有内容  
2. 使用echo命令重定向的方式可以往文件内写入数据, >>可以进行追加  
3. 不能删除文件, 因为删除文件看的不是文件的属性, 需要看上级目录是否有w的权限执行权限(x)具有执行文件的权限  
1. 执行权限对文本文件没有实际的用处  
2. 如果普通用户需要执行文件, 需要配合r权限文件r权限,  只给用户查看, 无其他操作  
文件rw权限,  可以查看和编辑文件内容  
文件rx权限,  允许查看和执行文件、但不能修改文件
文件rwx权限,  能读, 能写, 能执行, 但不能删除, 因为删除需要看上级目录的权限有没有w权限
文件的x权限小心给予, 文件通常设定的权限是644

3.2 目录权限

创建目录, 并在该目录下创建文件, 匿名用户对目录没有w权限, 所有对文件有777权限   
#  创建目录
[root@kid ~]# mkdir ./dirname  # 查看权限
[root@kid ~]# ll
...
drwxr-xr-x. 2 root root    6 Aug 31 16:21 dirname
..# dirname目录下创建文件
[root@kid ~]# echo "test" >> ./dirname/filename  
[root@kid ~]# chmod 777 ./dirname/filename  [root@kid ~]# ll dirname/
-rwxrwxrwx. 1 root root 5 Aug 31 16:23 filename
# 普通用户验证权限, 能正常查看 
[kid@kid ~]$ cat ./dirname/filename  
test  
[kid@kid ~]$ rm -f /dirname/filename  
# 某些老版本可能无法删除[linux7我测试是没有问题的] 
rm: cannot remove ‘/dirname/filename’: Permission denied  
PS: 总结rwx对目录的影响  
读取权限(r), 如果目录只有r权限: 仅仅只能浏览目录内的文件名, 无其他操作权限1. 可以使用ls命令浏览目录及子目录,  但同时也会出现权限提示 2. 使用ls -l命令浏览目录及子目录, 文件属性会带问号, 并且只能看到文件名  写入权限(w), 如果目录只有w权限: 什么权限都没有...
执行权限(x), 如果目录只有x权限: 只能进入目录, 不能进行浏览、复制、移动、删除的操作目录rx权限,  允许浏览目录内文件以及子目录、 不允许创建、删除文件和目录  
目录wx权限,  能进入目录, 能删除内容, 能写入内容, 但就是无法使用ls cat这样的命令
目录rw权限,  能看, 能写, 但无法进入目录
* 目录的 w权限小心给予,  通常目录设定的权限是755  

4. 属主属组设置

变更文件属主和属组的意义?  
比如:
A出售房子dir进行变现, 将房子dir过户给B, 过户成功房字dir就属于B, 
那么此时房子dir的拥有者就属于属于B而不再属于A.  

img

在Linux中如何变更一个文件或者一个资源的属主和属组呢, 可以使用chown、chgrp命令实现.  
chown能设置属主和属组, chgrp仅能设置属组.

4.1 测试环境

# 准备环境, 创建文件和目录  
[root@kid ~]# mkdir dir && touch dir/file# 创建用户q1
[root@kid ~]# useradd q1
uid=1009(q1) gid=1017(q1) groups=1017(q1)

4.2 chowm命令

设置属主和属组命令: 
chown [属主].[属组] 参数
仅设置属主 chown [属组.] 参数
设置属主 chown [属组] 参数 或chown [.属组] -R:递归修改  
1. 仅修改属主
# 修改属主为q1
[root@kid ~]# chown q1. dir
[root@kid ~]# ll
drwxr-xr-x. 2 q1   root     18 Sep  1 16:58 dir
...
2. 仅修改属组
# 修改属组为q1 (.可以省略)
[root@kid ~]# chown .q1 dir/  
[root@kid ~]# ll
drwxr-xr-x. 2 q1   q1     18 Sep  1 16:58 dir
...
3. 修改属主与属组
# 递归修改目录及目录下的所有文件属主和属组  
[root@kid ~]# chown -R root.root dir
[root@kid ~]# ll
drwxr-xr-x. 2 root root   18 Sep  1 16:58 dir
...

4.3 chgrp命令

设置属组命令: chgrp [属组] 参数
-R:递归修改  
# 递归修改目录及目录下的所有文件属组 
[root@kid ~]# chgrp -R q1 dir
[root@kid ~]# ll
drwxr-xr-x. 2 root q1     18 Sep  1 16:58 dir
...

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

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

相关文章

最详解消息队列以及RabbbitMQ之HelloWorld

1、消息队列 1、MQ的相关概念 1、什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。 在互联…

webpack中的插件

1.webpack插件的作用通过安装和配置第三方插件,可以拓展webpack的能力,从而让webpack用起来更方便。最常用的webpack插件如下有两个:webpack-dev-server 类似于node.js阶段用到的nodemon工具 每当修改了源代码,webpack会自动进行项目的打包和构建html-webpack-pluginwebpac…

(分布式缓存)Redis哨兵

对应的教程视频: 高级篇Day3-03-Redis哨兵_哔哩哔哩_bilibili 目录: 哨兵的作用和原理搭建哨兵集群RedisTemplate的哨兵模式 一、哨兵的作用和原理 二、搭建哨兵集群 1.集群结构 这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Re…

C++版本的OpenCV 5.x编译生成opencv-python==5.x(GPU版本)接口并进行调用

实现文章连接:强力推荐】基于Nvidia-Docker-Linux(Ubuntu18.04)平台:新版OpenCV5.x(C)联合CUDA11.1(GPU)完美配置视觉算法开发环境 目录1、关于有粉丝私信问我怎么调用的问题2、opencv5.x(GPU)测试成功opencv-python5.x测试代码Op…

黑马C++ 02 核心6 —— 类和对象_继承(重难点)

文章目录1.1 继承基本语法普通实现(重复率高)继承实现(减少重复代码)1.2 继承方式公共继承保护继承私有继承1.3 继承中的对象模型1.4 继承中构造与析构顺序1.5 继承同名成员处理方法同名成员属性同名成员函数1.6 继承同名静态成员处理方式1.6.1 同名静态成员属性通过对象访问通…

第9章 Spring的数据库编程

目录/Contents第9章 Spring的数据库编程学习目标学习内容1 Spring JDBC1.1 JDBCTemplate概述1.1.1 JDBCTemplate作用1.1.2 抽象类JdbcAccessor的属性1.2 Spring JDBC的配置1.2.1 Spring JDBC中的4个包说明1.2.2 dataSource配置4个属性的含义1.2.3 dataSource属性值的设定要求2 …

【中秋怎么过】许一个愿,希望成都不要在静默管理中过中秋

今年的中秋又要到啦,诚邀亲爱的博主参与投稿,分享“程序员”视角下的中秋夜之美! 内容可以是: 程序员过中秋的正确方式:团圆、赏月、还是惨兮兮地加班?互联网大厂的中秋仪式感:壕无人性&#…

嵌入式Linux入门-Linux文件IO讲解并实现copy程序

嵌入式Linux入门学习教程汇总:嵌入式Linux教程—裸机、应用、驱动完整教程目录 在Linux系统中,一切都是“文件”:普通文件、驱动程序、网络通信等等。所有的操作,都是通过“文件IO”来操作的。 IO就是input和output,…

[PostgreSQL的 SPI_接口函数]

Server Programming Interface(SPI)是PostgreSQL内核中的一个模块,这个模块让内核开发者可以在C函数中执行SQL语句,并具备管理事务的能力。通过它我们可以用C语言去调用数据库里的各种SQL。 这个SPI_比较便利的一点在于&#xff…

如何使用 Bootstrap 处理 CSS

如何使用 Bootstrap 处理 CSS 大家好!如果您像我一样开始使用 CSS 编码并使用它进行任何大型项目,那么您肯定会因为响应式布局、溢出和选择器特异性而感到数不清的头痛。这就是几周前我决定学习 Bootstrap 的原因,这里是它的文档和主要功能的简短描述,所以你也可以。引导程…

一、Azkaban简明笔记

1、azkaban部署 主要是集群部署安装。 1.1 准备安装包Downloads (azkaban.github.io)1.2 配置MySQL启动mysql mysql -uroot -proot创建azkaban数据库 create database azkaban;创建azkaban用户并赋予权限(可以不设置账号,继续使用root账号) -- 显示相关变量 SHOW VARIABLES …

实体店主最爱的中秋活动方案,直接照搬就能轻松爆单!

中秋将至,传统佳节和营销好时机一起到了!利用氛围浓厚的节日进行营销活动,是吸引客户、增粉卖货的最佳手段之一,商户老板们可千万不能错过! 但是,活动人人都能做,如何在一片节日促销中脱颖而出&…

JVM详解

1. 源文件 源文件就是我们编写Java代码的文件。文件扩展名为.java 2. 字节码文件 字节码文件是源文件编译后的文件。字节码文件是二进制文件,需要通过特定的工具才能查看。里面存放了源文件编译后的字节码指令。 3. 类加载器 Class Loader Java 程序运行时会由…

USB转GPIO应用方案

概述 沁恒提供的多款USB转接系列芯片均提供GPIO引脚功能,各引脚支持独立的输出输入,GPIO功能的使用需要与计算机端厂商驱动程序和应用软件配合使用。各芯片的默认GPIO引脚状态有所区别,可查阅芯片技术手册或参考方案中附表。 型号 CH344Q …

基于神经网络的图像识别,人工神经网络图像识别

如何通过人工神经网络实现图像识别 。 人工神经网络(ArtificialNeuralNetworks)(简称ANN)系统从20世纪40年代末诞生至今仅短短半个多世纪,但由于他具有信息的分布存储、并行处理以及自学习能力等优点,已经…

Jmeter(五) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)

一.测试计划(Test Plan)要素 1.JMeter中一个脚本就是一个测试计划(Test Plan),也是一个管理单元。JMeter 的请求模拟与并发数(设置线程数,一个线程代表一个虚拟用户)设置都在脚本文件中一起设置。JMeter 不…

雨夜赶长路,房企必经的三场“价值战事”

今年上半年,地产行业一直在高压下运行。市场周期震荡叠加疫情等因素,为房企的销售、土拍、融资带来不确定性。 下半年以来,虽然不确定性和高压仍在,但市场有望恢复,下行趋势似乎已到拐点。 面对高压,不同…

安装 ZooKeeper 并配置服务

官网 访问官方下载页面安装 # 注意替换一下新的链接 curl -sSLO https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /opt/ cd /opt ln -s zookeeper-3.4.10 ./zookeepercd zookeeper m…

微服务项目:尚融宝(8)(后端接口:积分等级CRUD)

认清现实,放弃幻想,准备斗争 一、积分等级列表接口 1、编写积分等级管理接口 在controller中添加admin包,添加AdminIntegralGradeController类CrossOrigin RestController RequestMapping("/admin/core/integralGrade") public cl…

Mac中无法运行旧版本印象笔记:版本太旧 你的本地印象笔记数据是由新版印象笔记管理

📢📢📢📣📣📣 哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝 一位上进心十足的【Java ToB端大厂…