Linux权限管理(umask、粘滞位)

news2024/11/15 4:59:34

 

目录

Linux权限管理

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

目录的权限

umask

粘滞位


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

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

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

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

命令:su [用户名]

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

Linux权限管理

 文件访问者的分类

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

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

其它用户:o---Others 

 

 文件类型

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

基本权限

1.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

2.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

3.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

4.“—”表示不具有该项权限 

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

chmod

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

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

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

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

1.用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:  

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户 

chmod u+x new_test

chmod o-x new_test 

 2.三位8进制数字

chmod 664 test.txt

chmod 640 abc.txt

 

 chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

chown user1 f1

chown -R user1 filegroup1//递归修改

 当我们直接使用chown的时候,会发现这个操作不被允许,试想一下,如果你想把一个东西给别人,需不需要征求别人的同意?如果你的账户里无缘无故多了一百万,你慌不慌?那是不是就不可以修改文件的拥有者了?修改也可以,但是需要提升权限,就可以把这个文件强制给别人。

用sudo提升权限,但是一般Linux下使用sudo需要配置,将普通用户添加到信任列表中。

sudo chown root new_test

chgrp 

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

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

chgrp users /abc/f2

 

目录的权限

如果我们要进入一个目录,需要一个什么样的权限?

答案是可执行权限。

对于目录来讲,r代表什么呢?w又代表什么呢?

x --- 可执行权限

r ---可读权限

w ---可写权限

在没有r权限的目录下,我们无法查看当前目录下的文件名和文件属性。

在没有w权限的目录下,我们无法直接在该目录下创建新文件。 

umask

 

为什么我们创建的普通文件(不包括可执行)默认权限是从664开始的,目录的默认权限是从775开始的?

起始权限(系统设定的)

普通文件起始权限是666(rw-),没有可执行权限,目录文件的起始权限是777(rwx)。系统为了更好的控制文件权限,会有默认的权限掩码(在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限)。

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

把002按位取反后和起始权限按位与就是我们所看到的权限。我们所看到的就是最终权限。最终权限=起始权限&(~umask)。666/777和按位取反的002 再按位与就可以得到664/775。

格式:umask 权限值

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

粘滞位

背景:在使用Linux的时候,未来可能会有一些共享目录,被所有的普通目录共享,用来保存普通用户的临时数据。比如张三把一个文件放在这个共享目录下,李四就可以来读取这个文件,因为李四不能直接访问张三的文件,但是在日常使用中,我们需要共享一些东西。

共享目录通常是由root提供的。文件被所有人共享的时候,文件的所有者可以设置权限,决定其他人是否能看或者读该文件,其他人是受权限约束的,但是我们会发现我们拦不住别人删除我的文件,万一我这个文件我设置别人不能看不能读,别人一气之下删除我的文件怎么办?所以删除我的文件应该受权限约束,不能随便让别人删除我在共享目录下的文件。设置粘滞位,会让别人无法删除我的文件。所以粘滞位的作用是为了让大家共享文件,且不让其他人随便删除别人的文件。

chmod +t  目录名称

粘滞位只能给目录添加。能够在特定目录下创建或者删除文件是由w权限决定的,既然我们要拦住别人删除我的文件,去掉w权限就好了呀,为什么要设置粘滞位呢?如果我们去掉w权限,这就会导致不能在共享目录下创建文件,共享目录就会失去它的意义。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

1、超级管理员删除

2、该目录的所有者删除

3、该文件的所有者删除

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

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

相关文章

闲鱼话术,必须收藏

今天分享:闲鱼卖货,常用的客服话术。建议收藏 很多学员,货也上了,有人咨询的时候忽然手忙脚乱,懵啊,怎么感觉没人问期待有人问,有人问,自己啥也说不出来了呢?哈哈,不知…

【BOOST C++ 19 应用库】(6)序列数据封装和优化

一、说明 用于优化的包装函数&#xff1a;本节介绍包装函数以优化序列化过程。这些函数标记对象以允许 Boost.Serialization 应用某些优化技术。 二、示范和代码 示例 64.14。在没有包装函数的情况下序列化数组 #include <boost/archive/text_oarchive.hpp> #include &…

[附源码]计算机毕业设计springboot医院门诊管理信息系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SpringBoot中使用MySQL存用户信息, 日志的使用

SpringBoot中使用MySQL存用户信息 UserController类 package com.tedu.secboot.controller; import com.tarena.mnmp.api.SendParam; import com.tedu.secboot.entity.User; import com.tedu.secboot.util.DBUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory;…

flink教程(2)-source- sink

一、flink可识别的source分类 Sources are where your program reads its input from. You can attach a source to your program by using StreamExecutionEnvironment.addSource(sourceFunction). Flink comes with a number of pre-implemented source functions, but you c…

[附源码]计算机毕业设计游戏商城平台论文Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]计算机毕业设计springboot线上评分分享平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Android App】人脸识别中OpenCV根据人脸估算性别和年龄实战(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~ 人脸蕴含的信息量巨大&#xff0c;不管是青春还是年少&#xff0c;还是老年沧桑&#xff0c;都能体现出来&#xff0c;不过从人脸估算年龄估算年龄全凭经验&#xff0c;毕竟计算机无法根据固定框架判断年龄&#xff0c;那么计算机的…

ZYNQ之FPGA学习----IIC协议驱动模块仿真实验

1 IIC通信协议简介 IIC通信协议基础知识学习&#xff1a;硬件设计基础----通信协议IIC 2 实验任务 设计IIC驱动模块&#xff0c;并进行仿真验证&#xff0c;观察仿真波形 3 实验设计 3.1 创建工程 新建工程&#xff0c;操作如图所示&#xff1a; 输入工程名和路径&#x…

C++I/O流详解

目录 一&#xff0c;引入 二&#xff0c;C中的输入输出 1&#xff0c;输入输出流分类 2&#xff0c;I/O流类的安全性和可扩展性 (1)I/O流类的安全性 (2)I/O流类的扩展性 三&#xff0c;流类库简介 1&#xff0c;I/O流类库 2&#xff0c;缓冲区类 四&#xff0c;标准输…

python入门基础

1 变量和简单数据类型 变量命名格式&#xff1a;变量名 “赋值” 1.1 变量使用规范 使用变量时&#xff0c;需要遵守一些规则。违反这些规则将引发错误。 ~变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。 ~变量名不能将Python保留字和函数名…

SpringColud——Eureka注册中心

目录 1、SpringColud概述 1.1、什么是微服务 1.2、什么是SpringColud&#xff1f; 1.3、SpringColud的特点 2、SpringColud环境准备 2.1、创建父工程 2.2、修改pom.xml文件 2.3、服务提供者——创建子工程 2.4、编写启动类 2.5、编写User类 2.6、编写UserMapper接口…

永磁同步电机恒压频比(V/F)开环控制系统Matlab/Simulink仿真分析及代码生成到工程实现

文章目录前言一、 恒压频比&#xff08;V/F&#xff09;控制原理二、永磁同步电机恒压频比开环控制系统Matlab/Simulink仿真分析2.1.仿真电路分析2.1.1.恒压频比控制算法2.1.2.输出处理2.1.3.主电路2.2.仿真结果分析2.2.1.设定目标转速为1200r/min2.2.1.设定目标转速为变化值三…

消息中间件ActiveMQ入门概述

目录 举一反三 思考 背景 消息中间件的作用 MQ的定义 MQ的特点 MQ的缺点 消息中间件已经成为互联网企业应用系统内部通信的核心手段&#xff0c;是目前企业内主流标配技术&#xff0c; 它具有解耦、异步、削峰、签收、事务、流量控制、最终一致性等一系列高性能架构所需…

并发编程详解: 十三个工具类, 十大设计模式, 从理论基础到案例实战

前言 对于 Java 程序员而言&#xff0c;熟练掌握并发编程是判断其卓越性的重要标准之一。因为并发编程是 Java 语言中最晦涩的知识点&#xff0c;它涉及操作系统&#xff0c;内存&#xff0c;CPU&#xff0c;编程语言等的基本功&#xff0c;并且还测试了程序员的内功。 那么如…

【Android App】人脸识别中借助摄像头和OpenCV实时检测人脸讲解及实战(附源码和演示 超详细)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、借助摄像头实时检测人脸 与Android自带的人脸检测器相比&#xff0c;OpenCV具备更强劲的人脸识别功能&#xff0c;它可以通过摄像头实时检测人脸&#xff0c;实时检测的预览空间是JavaCameraView 常用方法说明如下 setCvC…

舵机应该如果选择?讲讲模拟舵机,数字舵机和总线舵机的区别

推荐视频&#xff1a;模拟舵机&#xff0c;数字舵机和总线舵机科普 &#xff1b;舵机从入门到放弃&#xff1b; 很多时候&#xff0c;我们购买舵机就只知道考虑扭矩以及控制方式。对舵机的分类有所耳闻&#xff0c;但是不清楚其中的区别。接下来我将详细说明模拟舵机&#xff0…

【机器学习】基于机器学习的反弹shell命令识别

引言 本文介绍一个基于机器学习识别反弹shell的项目。 在主机安全检测中&#xff0c;一般是采用基于原理的方式识别反弹shell, 通过判断socket通信相关特征&#xff0c;可以准确地识别到主机中的反弹shell。 但是在容器场景下&#xff0c;检测反弹shell 的能力&#xff0c;可能…

[附源码]计算机毕业设计springboot疫情物资管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

2022年第十一届认证杯数学中国数学建模国际赛小美赛:C 题 对人类活动进行分类 建模方案及代码实现

2022年第十一届认证杯数学中国数学建模国际赛小美赛&#xff1a;C 题 对人类活动进行分类 建模方案及代码实现 1 题目 人类行为理解的一个重要方面是对日常活动的识别和监控。可穿戴活动识别系统可以在许多关键领域提高生活质量&#xff0c;如门诊监测、居家康复、跌倒检测等。…