当前位置: 首页 > news >正文

【Linux】用户分类+权限管理+umask+粘滞位说明

目录

1.用户分类

su指令

2.认识Linux权限

2.1 文件访问者的分类

2.2 文件类型和访问权限

a. 文件类型

file指令

b. 访问权限

2.3 文件权值的表示方法

a. 字母表示法

b. 八进制表示法

3.如何修改文件访问者的权限及相关指令

1. chmod指令

2. chown指令

3. chgrp指令

4.权限掩码与umask指令 

umask指令

4.目录的权限

粘滞位


我们对权限并不陌生,权限代表着限制。对于某些用户做一些事情是可以的,但其他人却不行。

同样的,在Linux中也存在着权限的概念。既然是限制,那就得针对用户身份,所以Linux中,对于用户身份也有着分类。

1.用户分类

Linux下有两种用户:

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

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

其中,超级用户只能有一个,而普通用户可以有很多个。如何添加普通用户我之前已经提到过这里就不作赘述,链接:如何添加普通用户。

su指令

功能:用来切换用户身份;(例如,有些时候,作为普通用户没有权限做某些事,可以临时切换为root身份)

语法:su + [用户名字] (su root 此时root可以省略)

2.认识Linux权限

当我们用 ll(等于ls -l)显示文件的详细信息时:

我们并不知道红色方框中的内容代表什么意思,但是有些能大概猜出来。例如,7 表示的是文件名;6 代表的是文件创建时间;5 代表文件的大小(单位:字节)。

至于其他的内容我们并不清楚,接下来的内容就是认识它们。

2.1 文件访问者的分类

当我们要访问某个文件时,我们的身份又有了重新的划分:

文件和文件目录的所有者:u---User;

文件和文件目录的所有者所在的组的用户:g---Group;

其它用户:o---Others ;

对于不同身份的文件访问者,都有各自的权限;

2.2 文件类型和访问权限

我们之前看到的第 1 个红框中,有这些符号:

其中第一列代表的是文件类型,其余的代表访问权限。

a. 文件类型

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

file指令

功能:查看文件类型;

语法: file [选项]  目标文件或目录

常用选项:

-c :详细显示指令执行过程,便于排错或分析程序执行的情形;
-z :尝试去解读压缩文件的内容;

实际上Linux系统并不会识别你自己取得文件后缀(例如 test.txt 和t est.c),在系统眼中,它们都是普通文件。但是系统不关心并不代表某些软件不关心(例如不能用gcc编译  .txt文件),所以文件后缀一般还是不要省略。

b. 访问权限

除了第一列,剩下得每 3 个为一组,分为三组。

第一组表示文件和文件目录的所有者(user)的权限;

第二组表示文件和文件目录的所有者所在的组的用户(group)的权限;

第三组表示其他用户(other)的权限。

2.3 文件权值的表示方法

a. 字母表示法

b. 八进制表示法

3.如何修改文件访问者的权限及相关指令

1. chmod指令

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

语法:chmod [选项]  目标文件

常用选项:

-R :递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限。

chmod指令的不同格式:

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

+:向权限范围增加权限代号所表示的权限;
-:向权限范围取消权限代号所表示的权限;
=:向权限范围赋予权限代号所表示的权限;
用户符号: 
u:拥有者
g:拥有者同组用户
o:其它用户
a:所有用户

示例:

chmod u+r test.txt
chmod u-w test.txt
chmod u+r,u+w,o+x test.txt
chmod a+r test.txt
chmod a-w test.txt

 ②三位8进制数字

示例:

chmod 000 test.txt
chmod 777 test.txt
chmod 667 test.txt

2. chown指令

功能:修改文件的拥有者;

语法:  chown [选项] username 目标文件 

常用选项:

-R :递归修改目录文件的拥有者

示例:

chown root test.txt
chown -R hxy mydir

3. chgrp指令

功能:修改文件或目录的所属组;

语法:  chgrp [选项] 用户所属组名 目标文件 

常用选项:

-R :递归修改目录文件的所属组

示例:

chgrp root test.txt
chgrp -R hxy mydir

4.权限掩码与umask指令 

文件的权限生成其实是有一个过程的,有这样一个问题,为什么我们创建一个新文件时,它的权限是我们看到的那个样子?我们能修改这个默认的权限吗?

我们最终所看到的权限就是默认权限也叫最终权限,它的生成经过这样的过程:

最终权限 = 起始权限 & (~umask) (umask为权限掩码)。

起始权限:系统设定的,及文件一出生系统认为应该带有的权限。普通文件:666;目录文件:777。

权限掩码:三位八进制数字,用来控制最终权限的生成。

umask指令

功能:查看或修改文件掩码;

语法:  umask 权限值 

示例:

4.目录的权限

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

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

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

有个疑问:故事如下:

在公司里,张三和李四共同掌管一个共享目录。该共享目录由老板 root 创建,且对于other有rwx权限(意味着谁都可以在共享目录创建或删除文件)。

张三在共享目录下创建了一个文件,对other的权限只开放了 r 与 x;意味着李四只能读文件而不能修改内容。但是李四心生歹意,你不让我写。我就删掉你的文件。结果该文件被删除,对张三乃至公司造成了极大的损失...

那么有什么办法能限制其他人不能在共享目录删除我的文件呢?

答案是,当然有,就是给共享目录添加粘滞位

粘滞位

添加方法:

chmod +t 目标文件

当一个目录被设置为"粘滞位",则该目录下的文件只能由

▶ 超级管理员删除;

▶ 该目录的所有者删除;

▶ 该文件的所有者删除。

本章完!

相关文章:

【Linux】用户分类+权限管理+umask+粘滞位说明

目录 1.用户分类 su指令 2.认识Linux权限 2.1 文件访问者的分类 2.2 文件类型和访问权限 a. 文件类型 file指令 b. 访问权限 2.3 文件权值的表示方法 a. 字母表示法 b. 八进制表示法 3.如何修改文件访问者的权限及相关指令 1. chmod指令 2. chown指令 3. chgrp指…...

【干货】如何打造HR无法拒绝的简历?测试开发大牛带手把手你写简历!

通过率90%,优秀的软件测试简历长什么样? 也许口才好的人会觉得简历不重要,能说就行了,那是因为你没有体会过石沉大海的感觉! 很多人觉得疑惑,为什么我投了那么多简历,都没有接到面试通知&…...

nodejs学习-4:nodejs连接mongodb和相关操作

1. express生成器生成express模板 前提需要首先下载好:express-generator,命令如下(全局安装) npm install -g express-generator生成模板命令如下: express 项目名称 --viewejs // --view 参数表示前端界面使用的引擎,这里使用…...

【博客629】Linux DNS解析原理与配置

Linux DNS解析原理与配置 1、DNS缓存 作用: 程序客户端、下游的 DNS 服务器每次查询 DNS 成功之后,通常会将该 DNS 记录缓存一段时间,避免频繁发出查询请求的耗时。 Linux下的DNS缓存: Linux 系统默认不会在本地建立 DNS 缓存…...

【CSP】202212-2 训练计划

题目 问题背景 西西艾弗岛荒野求生大赛还有 天开幕! 问题描述 为了在大赛中取得好成绩,顿顿准备在 天时间内完成“短跑”、“高中物理”以及“核裂变技术”等总共 项科目的加强训练。其中第 项( )科目编号为 ,也可简…...

java基础学习 day42(继承中构造方法的访问特点,this、super的使用总结)

继承中,构造方法的访问特点 父类的构造方法不会被子类继承,但可以通过super()调用父类的构造方法,且只能在子类调用,在测试类中是不能手动单写构造方法的。子类中所有的构造方法默认先调用父类的无参构造,再执行自己构…...

生物医药多组学与生物信息方法介绍

基因组学告诉你可能发生什么,转录组学和蛋白组学告诉你即将发生什么,而代谢组学告诉你正在发生什么 1、多组学与生信方法 生物医学技术的组学包括基因组学、转录组学、蛋白质组学、代谢组学和表观基因组学等。这些组学研究领域通过大量数据的高通量技术…...

3|物联网控制|计算机控制-刘川来胡乃平版|第2章:计算机控制系统中的检测设备和执行机构-2.2过程控制中常用的执行器|课堂笔记|ppt

...

【进阶篇】线程的硬件基础

文章目录高速缓存缓存一致性协议写缓冲区和无效化队列高速缓存 简介 高速缓存是主内存与处理器之间的硬件,其容量小于主存,但存取速率远高于主存。因此处理器在执行读写操作时,可直接和高速缓存交互,提高响应速度。 我们常见的变…...

关于 ISP Tuning的学习,分享几点看法

关于学习,分享几点看法,欢迎讨论 。1、分阶段性的,阶梯式学习。2、带目的性的,任务式学习。3、有总结性的,输出式学习。如上3条,可以依次循环去执行,下面我以 ISP Tuning 的学习为例&#xff0c…...

RocketMQ源码阅读

没有用过rocketmq,但是一直对RocketMQ的实现很感兴趣,本次阅读源码基于5.0.0 一、 nameserver 通过源码阅读发现,它的作用主要是当作一个注册中心,注册broker、topic等信息,维护topic以及broker队列的路由信息&#…...

重磅 | 小O软件新品【鲸鱼地图】发布

千呼万唤始出来.......,小O系列软件又添新品【鲸鱼地图】!!! 2023年新年伊始,小O就投入到新品研发工作中,秉承“发现地理价值”理念,为用户提供更加好用、易用的地图软件产品,经过春…...

软考高级信息系统项目管理师系列之二十五:项目合同管理

软考高级信息系统项目管理师系列之二十五:项目合同管理 一、项目合同管理内容整理一、合同管理基本概念1.项目合同管理定义2.合同的分类3.合同类型选择4.合同内容二、合同管理过程1.合同管理过程的内容2.合同签订和履行管理3.合同变更和档案管理4.合同违约索赔管理项目合同管理…...

测试开发之Django实战示例 第十三章 上线

在上一章,为其他程序与我们的Web应用交互创建了RESTful API。本章将学习如何创建生产环境让我们的网站正式上线,主要内容有:配置生产环境创建自定义中间件实现自定义管理命令1创建生产环境现在该将Django项目正式部署到生产环境中了。我们将按…...

python实战应用讲解-【语法基础篇】Python中的数值类型(附示例代码)

目录 前言 数值类型 十六进制、八进制和二进制 Python 数值类型转换 数值和表达式 前言...

Git常用命令以及如何在IDEA中使用Git

前言Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等)。Git在管理文件过程中会记录日志,方便回退到历史版本;Git存在分支的概念,一个项目可以有多个分支&…...

音乐播放器-- 以及数据库数据存储

运行环境 : java1.8 数据库以及代码编写工具 : sqlserver -- mysql 也可以 工具 eclipse 编码gbk窗体 : Swing使用了jaudiotagger 进行了音乐处理 图片展示 ----- 空闲时间 做出来玩的项目 部分功能还没有完善 完善了的功能 音乐 /// 主页 &a…...

[JAVA安全]Spring Messaging之CVE-2018-1270

漏洞简介 Spring 框架中通过spring-messaging 模块来实现 STOMP (Simple Text-Orientated Messaging Protocol),STOMP是一种封装 WebSocket的简单消息协议。攻击者可以通过建立WebSocket连接并发送一条消息造成远程代码执行, spring-messagin…...

CAN通信笔记-位时间、Tq及采样点同步

本文框架1.前言2. 位时间2.1 位时间定义2.2 位时间计算3. Tq3.1 Tq的计算3.1.1 举个例子3.2 位时间与Tq的换算4. 采样点同步4.1 硬同步4.2 重同步4.2.1 延长PBS1的重同步4.2.2 缩短PBS2的重同步1.前言 本篇记录些关于CAN的一些学习笔记,说实话CAN协议发展的已经非常…...

玩转 Kubernetes 配置管理:ConfigMap 和 Secret 实战演示

目录一、简介二、ConfigMap2.1 基于目录创建 ConfigMap2.2 基于文件创建 ConfigMap2.3 从环境文件创建 ConfigMap2.4 定义从文件创建 ConfigMap 时要使用的键2.5 根据字符串创建 ConfigMap三、Secret3.1 基于文件创建Secret3.2 基于字符串创建Secret3.3 yaml文件方式创建secret…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...