Linux基础——权限

news2024/11/18 4:37:51

1. Linux下的用户

在 Linux 操作系统中,有两种主要类型的用户账户,分别是普通用户账户和超级用户账户(也称为 root 用户账户)。

普通用户账户(user)是在 Linux 系统上创建的普通账户,可以用于日常使用,但不能执行某些需要超级用户权限才能执行的操作。普通用户账户可以使用 sudo 命令获取临时超级用户权限执行需要的操作。通常情况下,普通用户账户是更安全的,因为它们不具备足够的权限来更改系统配置或执行危险操作。

超级用户账户(root 账户)是拥有系统上所有权限的账户,可以执行任何操作,包括更改系统配置、安装软件包等。因此,超级用户账户需要谨慎使用,以免意外地更改系统设置或删除关键文件,从而破坏系统的稳定性。通常情况下,应该尽可能避免以 root 用户身份登录,而是使用普通用户账户,并在必要时使用 sudo 命令来获取临时超级用户权限。

  

如果需要切换用户可以使用 su+对应用户名 与cd命令类似,也可以使用 su - 来进行不同用户间的快速切换 而退出身份时我们可以使用 ctrl+d或exit 命令来退出。

2. 什么是权限

在操作系统中,权限是指用户或进程能够执行的特定操作的范围。

权限决定了一件事情能否被做。而在权限进行判断时

首先认证的是身份,而Linux中身份又分为拥有者,所属组和其他人,这些身份与用户(root用户和普通用户)互相交叉,即root用户与普通用户都可能是这三个身份中的一个。

在之后,查看文件的属性,在使用 ll 指令后,我们可以看到

可以发现,最前方由10个字符组成,在这之中的第一列,即

表示的是文件的类型(因此在Linux中文件名后缀无直接意义),具体如下

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

而在第一列之后的九个字符分别表示了拥有者,所属组,其他人的权限,即

而在每一个身份中,各有r(可读)、w(可写)与x(可修改)的权限,如果对应位置是 - 则表明没有对应的权限

这之后的数字表示了该文件的硬链接数,在这之后第一个 tr 表示的是该文件的拥有者,第二个 tr 表示的是该文件的所属组,如果不在这两个之中,则表明是其他人。然后依次是文件大小、最后的修改日期、文件名。

3. 没有权限会有什么情况

对于这样一个txt文件

不同的身份查看它时有不同的结果

在拥有者查看文件内容时,有没有问题;

而在其他人查看文件时,有显示Permission denied;

但是在root用户查看时,有可以正常查看。

4. 如何修改权限

修改文件权限的指令为 chmod 

在使用chmod之前,我们知道权限分为为rwx,而因为这些权限的位置是固定的,因此有该权限就可以用1表示,没有该权限可以用0表示

举几个例子

如-wxr--r-x可以表示为011100101根据三个身份可将其分为011 100 101,我们可以将其转化为二进制码,即345;再多举几个例子 rw-r-x-wx —— 110 101 011 —— 653;r-xr-xrw- —— 101 101 110 —— 556;rwxrwxrwx —— 111 111 111 —— 777;--------- —— 000 000 000 —— 000;

而在使用chmod时,可以使用符号表示法与数字表示法

chmod语法:

chmod [选项]... 模式[,模式]... 文件...

符号表示法:

所使用的符号如下

  • u:文件所有者(user)的权限。
  • g:文件所属组(group)的权限。
  • o:其他用户(others)的权限。
  • a:所有用户(all)的权限,等同于 ugo 的组合。

这些符号可以与以下操作符组合使用:

  • +:增加权限。
  • -:删除权限。
  • =:设置权限,覆盖之前的权限设置。

比如对上述txt文件地属性进行修改

数字表示法:

在知道了上述的数字的含义后,也可以使用数字表示法,如

5. 关于权限的几个问题

1. 文件的起始权限

我们创建一个普通文件,发现权限为rw-rw-r--即664,但是实际上创建一个文件时赋予的初始权限为666

我们再创建一个目录文件,发现权限为rwxrwxr-x即775,但是实际上创建一个文件时赋予的初始权限为777

为什么会出现上述情况呢?

这与Linux中的权限掩码有关

权限掩码:凡是在umask中出现的权限,不会在最终的文件权限中出现

我们输入umask可以发现

转化为二进制即 000 000 010,由此便可以解释上述情况出现的原因,且有如下的关系

最终权限 = 初始权限 &(~umask)

2. 目录权限

对于home目录下的任何一个用户来说,其目录的所有者和所属组都是自己

而其他用户想进入就不行

但是我们将权限其他人的权限修改为r--时,我们发现此时文件可以查看此目录下的文件但是无法对目录执行任何指令

类似的将权限改为r-x时,可以进入并查看文件 

而加上x权限后,我们可以发现能够在该目录下修改或创建文件 

因此,我们可以有以下结论

在目录权限下:

r:   如果目录没有可执行权限 , 则无法 cd 到目录中
w : 如果目录没有可读权限 , 则无法用 ls 等命令查看目录中的文件内容 .
x:  写权限 : 如果目录没有可写权限 , 则无法在目录中创建文件 , 也无法在目录中删除文件 .

3. 粘滞位

在有些时候,我们需要共享数据,而在home目录下创建的文件只属于文件个人,因此我们在根目录下创建一个共享文件share

在这个目录下所有人都能在里面书写/创建文件,但问题却又随之浮现,因为,换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

因此Linux中引入了粘滞位的概念

粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,也只能针对⽬录设置,对于⽂件⽆效。则设置了粘滞位后,只有目录内文件的所有者或者root才可以删除或移动该文件。

 如

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
1. 超级管理员删除
2. 该目录的所有者删除
3. 该文件的所有者删除

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

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

相关文章

图片隐写(一)

文件隐藏 binwalk binwalk -e filename foremost foremost filename steghide & stegseek Install sudo apt-get install steghidestegseek Use steghide extract -sf filename -p passwordtime stegseek secret.file aaa.txt dd 文本隐藏 二进制文件末尾 or 文…

ffmpeg rtsp解析

一、 rtsp 协议说明 rtsp的协议层级 rtsp 属于应用层, 使用tcp传输,主要是传递服务器的一些信息,实现流连接。播放 暂停 销毁等控制 rtp 实现音视频数据包的发送,通过RTSP等协议的SDP信息协商好了RTP数据包的发送目的和传输方式…

UNIX网络编程卷一 学习笔记 第十四章 高级I/O函数

有3种方式可在涉及套接字的IO操作上设置超时方法: 1.调用alarm,它在指定超时期满时产生SIGALRM信号。此方法涉及信号处理,而信号处理在不同的实现上存在差异,且此方法可能干扰进程中已经执行过的alarm调用,可能使之前已…

【LLM系列之Tokenizer】如何科学地训练一个LLM分词器

1 背景与基础 1.1 为什么需要分词 对于人而言,在我们学会阅读之前,仍然可以理解语言。比如当你开始上学时,即使你不知道名词和动词之间的区别,但是你已经可以和你的同学交谈了,比如“我喜欢吃香蕉”,孩子…

vmware ubuntu突然无法联网的一种解决方案

记录一下vmware突然无法联网的一种解决方案。此法未必适用所有无法联网情形。Good Luck then. 今天使用vmware的ubuntu 18.04时,突然无法联网。Firefox在访问百度时显示“The proxy server is refusing connections”,随即检查了浏览器的proxy设置&#…

详解Jetpack Compose中的状态管理与使用

前言 引用一段官方描述,如下 由于 Compose 是声明式工具集,因此更新它的唯一方法是通过新参数调用同一可组合项。这些参数是界面状态的表现形式。每当状态更新时,都会发生重组。因此,TextField 不会像在基于 XML 的命令式视图中那…

头歌计算机组成原理实验—运算器设计(9)第9关:原码一位乘法器设计

第9关:原码一位乘法器设计 实验目的 学生掌握原码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个 8*8位的无符号数乘法器。 视频讲解 ####实验内容 在 alu.circ 文件中的原码一位乘法器子电…

分布式消息中间件RocketMQ概述

RocketMQ 概述 MQ概述 MQ简介 ​ MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。 MQ用途 在网络上上可以查…

React学习笔记五-props

此文章是本人在学习React的时候,写下的学习笔记,在此纪录和分享。此为第五篇,主要介绍react中的props。 目录 1.props的基本使用 2.props的批量传递 2.1展开运算符的复习 2.1.1数组中的展开运算符 2.1.2函数中的展开运算符 2.1.3构造字面…

部署图的画法

部署图画法 1.部署图 1.1含义 部署图是把软件制品装配到计算机节点以及配置软件环境的工作 软件部署包含环境部署和软件制品部署 1.2软件部署 软件部署通过部署图对软件进行建模 1.3部署图 部署图常见的有制品 节点 设备 运行环境和部署规范 1.4部署图关系 在UML&…

UnityVR--Managers--对象池2

目录 前言 基本结构 对象池代码 对象池管理器代码 使用 总结 前言 经过上一篇对象池1的了解,已经做到了使用Unity自带的ObjectPool进行内存优化。本篇自己构建一个对象池管理器(Manager),实现对象池的创建、删除、加载资源…

机器视觉工程师很苦吗?年轻人不怕苦,就怕学不到东西,机器视觉销售>项目经理>视觉>电气>机械>老板

年轻人不怕苦,就怕学不到东西。 对于年轻人来说,需要规划,更需要发展。如果学不到东西,就会限制其发展,最重要的体现就是限制待遇上限。 一个非标自动化公司出差的频次(各个公司略有差别,大多…

062:cesium设置泛光折线材质(material-6)

第062个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置泛光折线材质,请参考源代码,了解PolylineGlowMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共89行)相关API参考:专…

蓝桥:前端开发笔面必刷题——Day2 数组(三)

文章目录 📋前言🎯两数之和 II📚题目内容✅解答 🎯移除元素📚题目内容✅解答 🎯有序数组的平方📚题目内容✅解答 🎯三数之和📚题目内容✅解答 📝最后 &#x…

Cloud Studio 内核升级之持续优化

前言 Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低&#…

Xcode 14.3 和 iOS 16.4 为 SwiftUI 带来了哪些新功能?

0. 概览 今年年初,Apple 推出了最新的 Xcode 14.3 以及对应的 iOS 16.4 。 与此同时,它们对目前最新的 SwiftUI 4.0 也添加了一些新功能: sheet 弹窗后部视图(Interact with a view Behind a sheet)可交互&#xff…

头歌计算机组成原理实验—运算器设计(7) 第7关:6位有符号补码阵列乘法器

第7关:6位有符号补码阵列乘法器 实验目的 帮助学生掌握补码阵列乘法器的实现原理。 视频讲解 实验内容 在 Logisim 中打开 alu.circ 文件,在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器,实验框架如图所示&a…

Linux - Shell 权限 权限管理 权限修改 权限身份的认证 目录的权限 粘滞位

shell命令以及运行原理 我们来输入指令的本质就是 输入字符串。 而指令的本质,就是编译好的文件和脚本,而只要是文件,就会在系统的特定路径下存放。 我们使用所有的指令最终都要在 OS (操作系统)内部运行,…

〖Python网络爬虫实战㉖〗- Selenium库和ChromeDriver驱动的安装

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

【C++】内存泄漏 智能指针

目录 一、什么是内存泄漏二、如何检测内存泄漏1、内存占用变化排查法2、valgrind定位法3、mtrace定位法 三、智能指针分类及作用1、unique_ptr2、shared_ptr3、weak_ptr 一、什么是内存泄漏 在实际的 C 开发中,我们经常会遇到诸如程序运行中突然崩溃、程序运行所用…