Linux:权限的概念与理解

目录

1. Linux权限的概念

2. Linux权限管理

01.文件访问者的分类

02.文件类型和访问权限

03.文件权限值的表示方法

04. 文件访问权限的相关设置方法

3. 使用 sudo分配权限

4. 目录的权限


---------- 权限 = 用户角色(具体的人) + 文件权限属性 ----------

1. Linux权限的概念

 Linux下有两种用户:超级用户(root)普通用户

(1)超级用户(root):可以再linux系统下做任何事情,不受限制.

(2)普通用户:在linux下做有限的事情。

(3)超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 suroot(root可以省略),此时系统会提示输入root用户的口令。

2. Linux权限管理

01.文件访问者的分类

a. 文件和文件目录的所有者:u---User
b. 文件和文件目录的所有者所在的组的用户:g---Group
c. 其它用户:o---Others 

02.文件类型和访问权限

a. 文件类型 

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

【注意】 :在Windows系统下是通过后缀名来区分文件类型的。而在Linux系统是通过第一个属性列来区分的!但是!在Linux下的一些工具的使用要严格遵守后缀名规则(例如:GCC)。

b. 基本权限

1.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
2.写(w/2)Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
3.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限。

03.文件权限值的表示方法

a. 字符表示方法

b. 8进制数值表示方法


【注意】:

a. 如何让理解可执行权限 VS 可执行 :

                        能执行 = 具有可执行权限 + 文件本身就是一个可执行文件 

b. 如何理解文件

        文件 = 内容(该目录里的所有文件信息详细数据) + 属性

04. 文件访问权限的相关设置方法

a. chmod

功能:设置文件的访问权限 

格式:chmod[参数]权限 文件名

常用选项:

        a. R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式

①用户表示符+/-=权限字符:

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

  用户符号:

 u:拥有者
 g:拥有者同组用
 o:其它用户
 a:所有用户

②三位8进制数字

a. chown
功能:修改文件的拥有者
 格式:chown [参数] 用户名 文件名


b. chgrp
功能:修改文件或目录的所属组
 格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组 

c.umask

功能:查看或修改文件掩码
           新建文件夹默认权限=0666
           新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

file指令:

功能说明:辨识文件类型。
语法:file [选项] 文件或目录...
常用选项: -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
                   -z 尝试去解读压缩文件的内容。

3. 使用 sudo分配权限

(1)修改/etc/sudoers 文件分配文件

# chmod 740 /etc/sudoers
# vi /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令

(2)使用 sudo 调用授权的命令

$ sudo –u 用户名 命令

4. 目录的权限

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

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

c. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

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

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

相关文章

代码随想录--排序算法

912.排序数组 快速排序 思路&#xff1a; 1. 设置一个pivot2. 将小于nums[pivot]的值 放在左边3. 将 大于nums[pivot]的值 放在 右边4. 递归调用注意&#xff1a;必须先比较nums[high] 与pivot 代码&#xff1a; class Solution {int partition(vector<int>&nu…

无人机采集图像的相关知识

1.飞行任务规划 一般使用飞行任务规划软件进行飞行任务的设计&#xff0c;软件可以自动计算相机覆盖和图像重叠情况。比如ArduPilot (ArduPilot - Versatile, Trusted, Open) 和UgCS (http://www.ugcs.com)是两个飞行任务规划软件&#xff0c;可以适用大多数无人机系统。 2.图…

每日shell脚本之自动配置Prometheus.yml并支持选择监控的节点数量、输入自定义IP和端口设置

每日shell脚本之自动配置Prometheus.yml并支持选择监控的节点数量、输入自定义IP和端口设置 #!/bin/bash# 获取用户输入的节点数量 read -p "请输入要监控的节点数量&#xff1a; " node_count# 生成Prometheus.yml配置文件 cat << EOF > Prometheus.yml g…

Vue 中给 data 中的对象属性添加一个新的属性时会发生什么?如何解决?

<template> <div><ul><li v-for"value in obj" :key"value"> {{value}} </li> </ul> <button click"addObjB">添加 obj.b</button> </div> </template><script>export defau…

QT作业。。

1.使用手动连接&#xff0c;将登录框中的取消按钮使用t4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数将登录按钮使用t5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断u界面上输入的账号是否为"admin"&#xff0c;密码是否为&q…

【计算机视觉】Gaussian Splatting源码解读补充(一)

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址&#xff1a;https://github.com/graphdeco-inria/gaussian-splatting 论文地址&#xff1a;https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

mac 用electron-builder打包,如何切换到notarytool

背景&#xff1a;altool已经被遗弃了&#xff0c;我们必须要使用notarytool进行打包,如何从altool切换到notarytool 在打包的配置中afterSign执行的js中 加入teamId和tool teamId在你的开发者账号中可以获取到

二、SpringBoot3 配置文件

本章概要 统一配置管理概述属性配置文件使用YAML 配置文件使用批量配置文件注入多环境配置和使用 2.1 统一配置管理概述 SpringBoot工程下&#xff0c;进行统一的配置管理&#xff0c;你想设置的任何参数&#xff08;端口号、项目根路径、数据库连接信息等等)都集中到一个固定…

docker镜像复制与常见命令

一、前言 最近通过阿里的镜像仓库远程拉取镜像&#xff0c;发现以前的版本不见了&#xff0c;拉取了最新的镜像&#xff0c;有发现版本不配问题。那么想使用老版本的镜像那就要从别的环境获取。于是就需要进行离线镜像复制&#xff0c;打包&#xff0c;上传&#xff0c;重新导入…

安卓Java面试题 191- 195

191. 简述Android启动一个应用的流程是怎样的呢 ?我们都知道平常在使用 Activity的过程中,只需要调用Activity的startActivity方法,传入适当的参数就可以启动一个我们想要启动的Activity 了,但是你知道这个过程中经历了些什么吗?今天我想从FrameWork层面解释下从系统启动到…

用conda和pip隔离Python环境

用conda和pip隔离Python环境 在同一台服务器上运行多个不同的项目&#xff0c;多个项目依赖同一个包的不同版本&#xff0c;如果这些项目都使用全局环境&#xff0c;会发生依赖包冲突&#xff0c;因此有必要引入虚拟环境对不同的项目依赖进行管理。Python的virtualenv包可以用…

6个免费的ChatGPT网站

AI 大模型的出现给时代带来了深远的影响&#xff1a; 改变了产业格局&#xff1a;AI 大模型的发展推动了人工智能技术在各行业的广泛应用&#xff0c;改变了传统产业的运作方式&#xff0c;促进了新兴产业的崛起&#xff0c;如智能驾驶、医疗健康、金融科技等。提升了科学研究…

设计模式:面向对象设计的六大原则

目录 前言六大原则 单一职责原则开闭原则里氏替换原则依赖倒置原则接口隔离原则迪米特原则总结 前言 很久没有写博客了&#xff0c;一直给自己找借口说太忙了&#xff0c;过几天有空再写&#xff0c;几天之后又几天&#xff0c;时间就这么快速的消逝。说到底就是自己太懒了&a…

MNN 执行推理(九)

系列文章目录 MNN createFromBuffer&#xff08;一&#xff09; MNN createRuntime&#xff08;二&#xff09; MNN createSession 之 Schedule&#xff08;三&#xff09; MNN createSession 之创建流水线后端&#xff08;四&#xff09; MNN Session 之维度计算&#xff08;五…

编程思想-状态机

前言 对于开发者来说&#xff0c;状态机思想的重要性体现在多个方面&#xff0c;无论是设计复杂的系统还是处理简单的逻辑流程&#xff0c;状态机都能提供清晰、可维护且易于扩展的解决方案。以下是状态机思想对开发者而言的几个关键重要性&#xff1a; 逻辑清晰&#xff1a;状…

两台电脑简单的通信过程详解(经过两个路由器,不同网段)

一、eNSP拓扑图 二、配置4台电脑的IP地址、子网掩码、网关地址。 三、配置路由器 注意拓扑图的接口与本博客是否相符&#xff0c;判断以下命令中的ip是否需要修改。 1.AR1-接口对应IP <Huawei>sys #进入系统视图 [Huawei]int g0/0/0 #进入0/0/0接口 [Huawei-GigabitE…

【计算机网络篇】数据链路层(1)数据链路层的地位,问题

文章目录 &#x1f354;数据链路层在网络体系结构中的地位&#x1f354;链路&#xff0c;数据链路&#xff0c;帧&#x1f354;数据链路层的三个重要问题&#x1f95a;封装成帧和透明传输&#x1f95a;差错检测&#x1f95a;可靠传输 &#x1f354;数据链路层在网络体系结构中的…

飞天使-k8s知识点26-kubernetes温故知新1-pod

文章目录 创建一个podpod的启动命令和参数更改pod 镜像拉取策略 pod 的三种探针pod 探针的实现方式prestop 和 prestart 创建一个pod apiVersion: v1 # 必选&#xff0c;API 的版本号 kind: Pod # 必选&#xff0c;类型 Pod metadata: # 必选&#xff0c;元数据name: nginx # …

Linux文件 profile、bashrc、bash_profile区别

Linux系统中&#xff0c;有三种文件 出现的非常频繁&#xff0c;那就是 profile、bash_profile、bashrc 文件。 1、profile 作用 profile&#xff0c;路径&#xff1a;/etc/profile&#xff0c;用于设置系统级的环境变量和启动程序&#xff0c;在这个文件下配置会对所有用户…

欣瑞达信息技术邀您莅临2024长三角快递物流展

2024数字物流技术展 2024新能源商用车及物流车展 2024电商物流包装展 2024冷链物流展 2024年7月8-10日 | 杭州国际博览中心 参展企业介绍 深圳市欣瑞达信息技术有限公司&#xff08;曾用名&#xff1a;深圳市欣瑞达液晶显示技术有限公司&#xff09;成立于1997年&#xff0c;是…