《Linux的权限》

本文主要对linux的一些基本权限进行讲解

文章目录

  • 前言
  • Linux权限
    • (1)权限的概念
    • (2)linux下用户分类(root,普通)
    • (3)linux的文件属性
      • 文件属性的分类
      • 文件权限
      • 修改文件权限
        • 1、`chmod`
        • 2、`chown和chgrp`
        • 3、`fiile`
  • 权限的三个重要的问题
    • 第一个问题(目录的权限)
    • 第二个问题(默认权限)
    • 粘滞位


前言

首先我们先理解一下什么是xshell
我们使用xshell的存在的意义

1、帮助进行命令行传递和返回结构(人和内核之间进行信息交互)
2、保护操作系统
注:bash是centos下的命令行解释器


Linux权限

(1)权限的概念

限制人的,访问的对象可能没有这种“属性”
权限:一件事情是否运行被谁“做”
权限 = 人 + 事物属性

(2)linux下用户分类(root,普通)

超级用户-root-超级管理员:可以再linux系统下做任何事情,不受限制(只有一个)
普通用户:在linux下做有限的事情。(可以有n个)

那么用户之间怎么相互切换了
1:su 用户名,然后再输入密码即可
2:su ,只有一个su默认是切换到root,输入root的密码即可
3:ctrl d ,这个是退回到上一个目录下。

怎么对单条指令进行提权
使用 sudo command

文件的角色划分

  1. 文件拥有者
  2. 文件所属组
    在这里插入图片描述

(3)linux的文件属性

文件属性包括:文件类型文件权限

文件属性的分类

下面介绍一下一个文件所包含的文件属性
在这里插入图片描述

文件权限

上面图中我们将文件的后三列和第一列的第一个字母感觉解释清楚了,但是其他的东西才是最关键的,才是我们权限最重要的东西,希望大家仔细观看。
权限 = 人 + 文件属性
在这里插入图片描述

修改文件权限

1、chmod

使用chmod+u/g/o/a +- r/w/x我们就可以修改权限。非常简单。可以批量化使用。
u表示拥有者,g表示所属组,o表示othera表示所有人
例如:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt

我们改权限可以使用八进制
如果有权限可以写成1,没有权限可以写成0.所以我们可以将权限写成9位二进制数,转换为八进制我们就可以用chmod+八进制数就可以修改权限了
例如
chmod 664 test.c
664=110 110 100

2、chown和chgrp

更改文件的拥有者,所属组:chown+ 改的用户,使用 chgrp+改的用户
 将文件的拥有者改掉的时候,我们要争得对方的允许。不能直接给
 所以我们需要强制给你,使用超级用户
 我们就使用 sudo chown
 例如:强行将文件的拥有者改为yaya
sudo chown yaya test.c

3、fiile

我们在介绍一个命令 file
file功能说明:帮助普通人辨识文件类型。
 语法: file+ [选项]+ 文件或目录…
 常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

权限的三个重要的问题

第一个问题(目录的权限)

如果进入一个目录,需要什么权限(一种)
  我们需要的是 X权限,我们进入目录,就是像当于执行, r和w权限可有可无。
对于目录来讲, r代表什们意思呢?
  代表没有 r权限的目录下,我们无法查看当前目录下的文件名和文件属性
对于目录来讲, w代表什们意思呢?
  在没有 w权限的目录下,我们无法直接在该目录下创建新文件以及删除文件。

第二个问题(默认权限)

为什们我们创建的普通文件(不包括可执行)?为什们默认权限是从664开始的?为什们目录的默认权限是从775开始的?
  不同的操作系统,默认的权限是不一样的。
  默认权限 ----- 你看到的(不重要的)
  起始权限 ----- 系统设定的
  最终权限 -----

普通文件起始权限:是从666开始的(没有x的),
目录文件的起始权限是:777(rwx都有)。

那么系统是怎么将文件的起始权限转换为最终权限?
  系统为了更好的控制文件权限,系统会有默认的权限掩码的概念!
  我们就需要知道文件的权限掩码,我们就需要用到 umask,在linux机器上输入umask我们就知道了。
  权限掩码:在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限!
  最终权限 == 起始权限 & ( ~ umask )
  将 umask按位取反然后于起始权限求于
  umask可以改变,如果 umask改变了,最终权限就变了

粘滞位

背景:在使用linux的时候,未来可能会有一些共享目录,被所有的用户共享,用来保存普通用户产生的临时数据

准备:共享目录一般都是root提供的,他的权限跟root的umask有关。

文件被所有人共享的时候,受权限的约束,但是拦不住别人删我的文件!!
所以为了让大家共享文件,且不让其他人随便的删除别人的文件,所以这时候就出来了粘滞位的概念。
为什们我们拦不住?
在特定的目录下,创建或者删除文件都是由目录的w权限决定的,所以我们不能将目录的w权限关闭,因为我们需要创建文件。

我们的粘滞位只能给目录添加,并且是给共享目录添加。
使用chmod+t+目录名,我们就可以给他加粘滞位了
在这里插入图片描述

谁可以删除我们的共享目录?

  1. 超级管理员删除。
  2. 该目录的所有者删除。
  3. 该文件的所有者删除。

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

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

相关文章

Java面向对象:接口的学习

本文介绍了Java中接口的基本语法, 什么是接口, java中的接口 语法规则, 接口的使用,接口的特性,如何实现多个接口,接口间的继承,以及抽象类和接口的区别 Java接口的学习一.接口的概念二.Java中的接口1.接口语法规则2.接口的使用3.接口的特性4.实现多个接口5.接口间的继承三.抽象…

C++线程池理解

线程池基本信息 线程池是一种结合池化思想衍生出来的一种线程管理及使用的方案 其主要针对服务器端多线程场景下,服务器频繁接收请求,每个请求都分配一个单独的线程去处理。 使用线程的开销: 创建和销毁线程调度线程 线程池主要解决的核…

你是真的“C”——结构体中鲜有人知的“秘密”

你是真的“C”——结构体中的精髓剖析【内存对齐】 【位段】 😎前言🙌结构体内存对齐:😊结构体内存对齐存在的意思是什么?😘内存对齐例子详细剖析:😘结构体中的位段:&…

基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目

本文是专栏《Vue SpringBoot前后端分离项目实战》的实战第一篇,将从Vue脚手架安装开始,逐步带你搭建起一套管理系统所需的架构。当然,在默认安装完成之后,会对文件目录进行初步的细化拆分,以便后续功能迭代和维护所用…

ChatGPT没有API?OpenAI官方API带你起飞

目录ChatGPT没有API?OpenAI官方API带你起飞安装 OpenAI 的 API 库包装个函数包装个UIAPI 调不通怎么办?ChatGPT没有API?OpenAI官方API带你起飞 前段时间ChatGPT爆火,OpenAI 的 GPT API也被大家疯狂调用, 但其实这个AP…

超详细的堆排序,进来看看吧。

1.堆的基本概念1.1什么是堆堆是一种叫做完全二叉树的数据结构,1.2大堆和小堆大堆:每个节点的值都大于或者等于他的左右孩子节点的值小根堆:每个结点的值都小于或等于其左孩子和右孩子结点的值1.3完全二叉树节点之间的关系leftchild parent*2 1rightchild parent*…

string类(上)

string类(上)1.标准库中的string类2.string类对象的常见构造①string()②string(const char* s)③string(size_t n,char c)④string(const string&s)⑤string(const string& str,size_t pos,size_t lennpos)⑥string(const char* s,s…

【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统

本文目录1、推荐系统的关键元素1.1 数据1.2 算法1.3 业务领域1.4 展示信息2、推荐算法的主要分类2.1 基于关联规则的推荐算法基于Apriori的算法基于FP-Growth的算法2.2 基于内容的推荐算法2.3 基于协同过滤的推荐算法3、推荐系统常见的问题1、冷启动2、数据稀疏3、不断变化的用…

java 每日一练 (9)

文章目录1. 单选2. 编程1. 单选 1. 下面程序的输出是:() A : FmNwxy B :fmnwxy C :wxyfmn D : Fmnwxy 答案 : D , 这里主要考察 toUpperCase 和 replace 方法 , 注意点 : toUpperCas…

动态规划-基础(斐波那契数、爬楼梯、使用最小花费爬楼梯、不同路径、不同路径II、整数拆分、不同的二叉搜索树)

动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的。动态规划问题,五步走:状态定义&am…

【数据结构】双向链表

🚀write in front🚀 📜所属专栏: 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是…

海思SD3403/SS928V100开发(7)mcp2515-SPI转CAN驱动开发

1. 前言 需求: 需要一路can进行收发 分析: 根据目前使用较多的方案是使用主控端SPI接口 接入MCP2515芯片进行CAN协议转换 硬件: MCP2515->SPI2->SS928 2. Uboot开发 2.1 pinmux复用配置 2.1.1 修改uboot参数表 路径: osdrv/tools/pc/uboot_tools/ SS928V100…

Android 进程间通信机制(三) 系统进程与应用进程通信

一. 概述 Android中有一个重要的系统进程(system_server),运行着系统中非常重要服务(AMS, PMS, WMS等), 针对Activity而言,系统进程需要不断地调度Activity执行,管理Activity的状态; 每一个APK都需要运行在一个应用进程中&#xf…

【动态规划】最长上升子序列(单调队列、贪心优化)

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

jvm-题库

1、JVM内存模型 JVM内存区域总共分为两种类型 线程私有区域:程序计数器、本地方法栈和虚拟机栈 线程共享区域:堆(heap)和方法区 特征 线程私有区域:依赖用户的线程创建而创建、销毁而销毁,因用户每次访问都…

带头双向循环链表

在前面我们学习了单链表,发现单链表还是有一些不够方便,比如我们要尾插,需要遍历一遍然后找到它的尾,这样时间复炸度就为O(N),现在我们引入双向带头链表就很方便了,我们先看看它的结构。通过观察,我们发现一…

Vue全新一代状态管理库 Pinia【一篇通】

文章目录前言1. Pinia 是什么?1.1 为什么取名叫 Pinia?1.2. 为什么要使用 Pinia ?2. 安装 Pinia2.1.创建 Store2.1.1. Option 类型 Store2.1.2 Setup 函数类型 Store2.1.3 模板中使用3. State 的使用事项(Option Store )3.1 读取 State3.2 …

EEPROM芯片(24c02)使用详解(I2C通信时序分析、操作源码分析、原理图分析)

1、前言 (1)本文主要是通过24c02芯片来讲解I2C接口的EEPROM操作方法,包含底层时序和读写的代码; (2)大部分代码是EEPROM芯片通用的,但是其中关于某些时间的要求,是和具体芯片相关的,和主控芯片和外设芯片都有关系&…

一天吃透TCP面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

vue模板语法

src目录文件说明: 1,数据绑定{{}} 数据绑定最常见的形式就是使用{{}}(双花括号)语法的文本插值 在template中使用{{}}文本插值语法中,设置一个变量,再在script中引入data函数,在return中进行数…