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

linux权限管理

权限管理

文件的权限针对三类对象进行定义

  • owner属主,缩写u
  • group属组,缩写g
  • other其他,缩写o

1、文件的一般权限

(1)r,w,x的作用及含义:

权限对文件影响对目录影响
r(read:读)可以读取文件内容
可以列出目录的内容,即目录下的文件的文件名
w(write:写)
可以更改文
件的内容
可以创建或者删除目录中的任一文件(只有w权限无法创建删除文件,需要和x权限一起使用)
x(execute:执行)
可作为可执行文件
可以切换到目录
-没有权限

PSroot账户不受文件权限的读写限制,执行权限受限制

(2)相应二进制可表示对应权限:

所属者/所属组/其他用户权限的字符表示
二进制表示
八进制表示
---0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx1117

如图:

(3)常见普通权限组合

  • 目录:r-x;rwx;---
  • 文件(文本文件):r-x;rw-;rwx;r--;---

2、修改权限

(1)修改文件或目录的权限 --- chmod

  • 格式1:chmod  [选项]  [ugoa][+-=][rwx]  文件或目录..
  • 格式2:chmod  [选项]  nnn  文件或目录...
  • 常用选项:
u g o a
权限设置所针对的用户类别。
u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他用户;a(all)表示所有用户(即u+g+o)
+ 或 - 或 =
设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定的权限,并取消原有的权限
rwx
用字符形式表示的所设置的权限,可以是其中一个字母或组合
nnn
用三位八进制数字表示的权限

例1:修改文件a1的权限

[root@tianqinwei test]# ll --- 查看文件权限
total 0
-rw-r--r--. 1 root root 0 Mar  6 17:45 a1
[root@tianqinwei test]# chmod o-r a1 --- 对其他用户去掉可读权限
[root@tianqinwei test]# ll a1 
-rw-r-----. 1 root root 0 Mar  6 17:45 a1
[root@tianqinwei test]# chmod g=--- a1 --- 将所属组权限改为---
[root@tianqinwei test]# ll a1
-rw-------. 1 root root 0 Mar  6 17:45 a1
[root@tianqinwei test]# chmod 640 a1 --- 用数字来修改权限,参考上方二进制转为八进制
[root@tianqinwei test]# ll a1
-rw-r-----. 1 root root 0 Mar  6 17:45 a1
[student@tianqinwei test]$ cat a1 --- 验证,普通用户对a1没有权限
cat: a1: Permission denied
[root@tianqinwei ~]# ll -d /root/
drwxrwxrwx. 16 root root 4096 Mar  6 18:18 /root/
[root@tianqinwei test]# chmod a-w /root/ --- 将/root/用户,所属组,其他用户的写权限全都修改
[root@tianqinwei test]# ll -d /root/
dr-xr-xr-x. 16 root root 4096 Mar  6 18:18 /root/

例2:将文件a2改为所属组和其他用户可读可写

[root@tianqinwei test]# chmod g=rw-,o=rw- a2 --- 中间部分命令用逗号隔开(系统会把o部分认为是文件名称,所以用空格分隔会报错)
[root@tianqinwei test]# ll a2
-rw-rw-rw-. 1 root root 0 Mar  6 17:45 a2
[student@tianqinwei test]$ cat a2 --- 验证,可对文件进行可读操作
azsdfgarhae5rhjndtgnsrt6jnjmrfsngxer5dyhusrtn

(2)修改文件或目录的属主和属组

<1> chown:可同时修改属主和属组

  • 格式:chown  [选项]  新属主[:[新属组]]  文件或目录

例:修改文件a2所属主,所属组

[root@tianqinwei test]# ll a2
-rw-rw-rw-. 1 root root  46 Mar  6 18:05 a2
[root@tianqinwei test]# chown student a2 --- 修改所属主
[root@tianqinwei test]# ll a2
-rw-rw-rw-. 1 student root 46 Mar  6 18:05 a2
[root@tianqinwei test]# chown :student a2 --- 修改所属组
[root@tianqinwei test]# ll a2
-rw-rw-rw-. 1 student student 46 Mar  6 18:05 a2
[root@tianqinwei test]# chown root:root a2 --- 同时修改所属主和所属组
[root@tianqinwei test]# ll a2
-rw-rw-rw-. 1 root root 46 Mar  6 18:05 a2

<2> chgrp:只能修改文件的所属组

  • 格式:chgrp  [选项]  [新属组]  文件或目录...

例:修改文件a3所属组

[root@tianqinwei test]# ll a3
-rw-r--r--. 1 root root 39 Mar  6 18:05 a3
[root@tianqinwei test]# chgrp student a3
[root@tianqinwei test]# ll a3
-rw-r--r--. 1 root student 39 Mar  6 18:05 a3

(3)例:student用户可读可写a3,其他用户都不可进行操作

[root@tianqinwei test]# ll a3 --- 查看a3文件的权限以及所属主和组
-rw-r--r--. 1 root student 39 Mar  6 18:05 a3
[root@tianqinwei test]# chmod 600 a3 --- 将文件所属组和其他用户的所有权限取消
[root@tianqinwei test]# ll a3
-rw-------. 1 root student 39 Mar  6 18:05 a3
[root@tianqinwei test]# chown student:root a3 --- 将文件的所属主改为student,所属组改为root
[root@tianqinwei test]# ll a3 
-rw-------. 1 student root 39 Mar  6 18:05 a3
则此时文件仅可由student用户进行读写

3、文件的特殊权限

(1)SUID(u+s)权限

<1> 含义为了让一般用户在执行某些程序的时候, 在程序的运行期间, 暂时获得该程序文件所属者的权限


如:

[root@tianqinwei test]# ll /usr/bin/passwd 
--- 当用户使用passwd命令的时候,短暂拥有该命令所有者root的权限,
所以此时普通用户就可在shadow上进行操作修改,且只能在二进制执行文件上使用
-rwsr-xr-x. 1 root root 34512 Aug 13  2018 /usr/bin/passwd
[root@tianqinwei test]# ll /etc/shadow
----------. 1 root root 1309 Oct 21 08:51 /etc/shadow
student 用户在执行 passwd 修改自己的密码时, 其修改的密码, 最终是需要保存到 /etc/shadow 这个文件中,而这个文件的权限是 --------- ,它的拥有者是 root ,也只有root 可以“ 强制” 存储, 其他用户连看都不行。可student 去执行 passwd (/usr/bin/passwd) ,却可以更新自己的密码

<2> 例:将文件a1和a2得到权限修改为SUID(u+s)

[root@tianqinwei test]# ll
total 12
-rwxrwxrwx. 1 root    root 241 Mar  6 18:05 a1
-rw-rw-rw-. 1 root    root  46 Mar  6 18:05 a2
[root@tianqinwei test]# chmod u+s a1 --- 将用户权限修改为u+s
[root@tianqinwei test]# chmod u+s a2 
[root@tianqinwei test]# ll
total 12
-rwsrwxrwx. 1 root    root 241 Mar  6 18:05 a1 --- 若该文件是可执行文件,显示为s
-rwSrw-rw-. 1 root    root  46 Mar  6 18:05 a2 --- 若改文件是不可执行文件,显示为S

有 s 权限的存在,当 s权限在拥有者的权限位上时, 即如 -rwsr-xr-x 这样时, 称为SUID 。SUID 即 Set UID , UID 指的是拥有者的的 ID, 而这个程序 (/usr/bin/passwd) 的拥有者为(root)

PS:

  • SUID仅对二进制文件有效
  • 执行过程中,调用者暂时获得该文件所有者权限
  • 该权限只在执行过程中有效

(2)SGID(g+s)权限

<1> 作用

  • 文件:如果 SGID 设置在二进制文件上,则不论用户是谁,在执行该程序时,程序所属组将会变成该程序文件的所属组
  • 目录:若SGID设置在A目录上,则A目录内所建立的文件和目录的所属组,将会是A目录的所属组

<2> 例:将用户haha放入student组中,在该组中将权限更改为SGID,使得haha用户也可创建或删除文件

[root@tianqinwei test]# useradd haha --- 添加用户haha
[root@tianqinwei test]# gpasswd -a haha student --- 添加用户haha到student组中
Adding user haha to group student
[root@tianqinwei test]# tail -2 /etc/group
student:x:1000:haha
haha:x:1001:
[root@tianqinwei test]# ll -d /test
drwxr-xr-x. 2 root root 36 Mar  6 18:05 /test
[root@tianqinwei test]# chown :student /test --- 将目录/test所属组改为student
[root@tianqinwei test]# ll -d /test
drwxr-xr-x. 2 root student 36 Mar  6 18:05 /test
[root@tianqinwei test]# chmod g+s /test --- (g+s的效果:只要在所属组中的用户,都可在该目录下创建或删除文件,操作的文件都在student这个组中)
[root@tianqinwei test]# chmod g+w /test --- 给所属组添加可写权限
[root@tianqinwei test]# ll -d /test
drwxrwsr-x. 2 root student 36 Mar  6 18:05 /test
验证:
[student@tianqinwei test]$ touch ss
[haha@tianqinwei test]$ touch dd
[root@tianqinwei test]# ll
-rw-rw-r--. 1 haha    student   0 Mar  6 20:07 dd --- haha用户创建出的文件所属主为haha,所属组为student
-rw-rw-r--. 1 student student   0 Mar  6 20:07 ss --- student用户创建出的文件所属主为student,所属组为student

(3)Sticky Bit--SBit(o+t):只针对目录有效, 对文件没有效果

<1> 含义具有 SBit 的目录下, 用户若在该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件或目录时, 只有文件拥有者与 root 才有权力删除

<2> 例:将目录 /test 其他用户的权限更改为SBit

[root@tianqinwei test]# ll -d /test
drwxrwsrwx. 2 root student 56 Mar  6 20:07 /test
[root@tianqinwei test]# chmod o+t /test
[root@tianqinwei test]# ll -d /test
drwxrwsrwt. 2 root student 56 Mar  6 20:07 /test --- o用户在该目录下只可针对自己创建的文件进行“删除/重命名/移动”操作

4、ACL权限

(1)含义若想指定一个用户想访问一个组中的文件,而该组中无此用户,则可用ACL权限指定该用户,赋予其相应权限。

(2)命令:

<1> 查看权限:getfacl  [文件名]

<2> 设定权限:setfacl 选项 文件名

  • 常用选项
-m
设定 ACL 权限。如果是给予用户 ACL 权限,则使用 (u:用户名:权限 )格式赋予;如果是给予组 ACL 权限,则使用( g:组名:权限) 格式赋予
-x
删除指定的ACL权限
-b删除所有的ACL权限
-d设定默认ACL权限。只对目录生效,目录中新建立的文件有此默认权限
-k删除默认ACL权限
-R递归设定ACL权限。指设定的ACL权限会对子目录下所有文件生效

例:文件权限为rwx rw- ---,文件所属主为wu,文件所属组为csa。若让组外用户xixi对此目录中文件可读可写,且不让其他用户拥有权限,命令为:setfacl -m u:xixi:rw- cs

5、umask(权限掩码)

(1)作用设置新建文件或目录的默认权限

(2)默认umask:

在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask值有关,其具体关系是:

  • 新建文件的默认权限=0666-umask值
  • 新建目录的默认权限=0777-umask值
[root@tianqinwei test]# umask --- 查看默认umask值
0022

(3)例:umask默认值为033,则对应的文件和目录的默认权限是什么?

则文件对应默认权限是644;目录对应默认权限为744

相关文章:

linux权限管理

权限管理 文件的权限针对三类对象进行定义&#xff1a; owner属主&#xff0c;缩写ugroup属组&#xff0c;缩写gother其他&#xff0c;缩写o 1、文件的一般权限 &#xff08;1&#xff09;r,w,x的作用及含义&#xff1a; 权限对文件影响对目录影响r&#xff08;read&#xf…...

提高生活质量,增加学生对校园服务的需求,你知道有哪些?

随着电子商务平台利用移动互联网的趋势提高服务质量&#xff0c;越来越多的传统企业开始关注年轻大学生消费者的校园市场。 提高生活质量&#xff0c;增加学生对校园服务的需求 大学生越来越沉迷于用手机解决生活中的“吃、喝、玩、乐”等服务&#xff0c;如“吃、喝”——可…...

Antlr4:使用grun命令,触发NoClassDefFoundError

1. 意外的发现 在学习使用grun命令时&#xff0c;从未遇到过错误 最近使用grun命令&#xff0c;却遇到了NoClassDefFoundError的错误&#xff0c;使得grun测试工具无法成功启动 错误复现&#xff1a; 使用antlr4命令编译Hello.g4文件&#xff0c;并为指定package&#xff08;…...

基于rootfs构建Docker镜像

1. 背景 在实际工作中&#xff0c;由于系统本身版本过低&#xff0c;在接受新项目时出现系统版本过低而无法开始工作的问题。 为了解决该问题&#xff0c;使用Docker构建基于ubuntu-18.04的Docker镜像&#xff0c;以解决版本兼容问题。 2. 构建rootfs 2.1. 下载ubuntu-18.0…...

电脑文件软件搬家迁移十大工具

10 大适用于 Windows 的数据迁移软件。 数据迁移至关重要&#xff0c;几乎所有组织都依赖于此。如果您认为数据传输不是一件容易的事&#xff0c;那么数据迁移软件可以帮上忙。 1、奇客电脑迁移 将现有操作系统、软件、文件迁移到 新电脑的最佳方法之一是使用名为奇客电脑迁移…...

【数据库】排名问题

返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…...

【redis学习篇】主从哨兵集群架构详解

一、Redis主从架构 1.1 redis主从架构搭建 1、复制一份redis.conf文件 2、将相关配置修改为如下值&#xff1a; port 6380 pidfile /var/run/redis_6380.pid # 把pid进程号写入pidfile配置的文件 logfile "6380.log" dir /usr/local/redis-5.0.3/data/6380 # 指…...

基于jdk8的HashMap源码解析

hashMap常见面试题总览 为什么重写Equals还要重写HashCode方法&#xff1f;HashMap如何避免内存泄漏问题&#xff1f;HashMap1.7底层是如何实现的&#xff1f;HashMapKey为null存放在什么位置&#xff1f;HashMap如何解决Hash冲突问题&#xff1f;HashMap底层采用单链表还是双…...

深度学习J1周-ResNet50算法实战与解析_鸟类识别(CNN)

&#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊] 本周任务&#xff1a; ●1.请根据本文 TensorFlow 代码&#xff08;训练营内部阅读&#xff09;&#xff0c;编写…...

SpringBoot中一行代码解决字符串向枚举类型转换的问题

1. 场景 在WEB开发&#xff0c;客户端和服务端传输的数据中经常包含一些这样的字段&#xff1a;字段的值只包括几个固定的字符串。 这样的字段意味着我们需要在数据传输对象&#xff08;Data Transfer Object, DTO&#xff09;中对该字段进行校验以避免客户端传输的非法数据持…...

Praat之基频分析

Praat之基频分析 测量基频F0的方法 自相关 Autocorrelation&#xff08;易出现pitch-halving\pitch-double&#xff09;窄带谱图 Narrowband spectrogram&#xff08;第一谐波就是基频&#xff09;倒谱分析 Cepstral analysis测量声门波 glottal pluse&#xff08;通过波形&a…...

乡村企业门户网站

技术&#xff1a;Java、JSP等摘要&#xff1a;随着时代的发展&#xff0c;电脑与Internet已经进入我们的生活。信息时代的来临&#xff0c;知识经济的扩张&#xff0c;网站已越来越靠近我们的生活。据CNNIC报告显示&#xff0c;中国上网用户有6800万。通过Internet来经营运作一…...

Deploy Workshop|DIY部署环境,让OceanBase跑起来

2023 年 3 月 25 日&#xff0c;我们将在北京开启首次 OceanBase 开发者大会&#xff0c;与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势&#xff0c;分享全新的产品 Roadmap&#xff0c;交流场景探索和最佳实践&#xff0c;此外&#xff0c;OceanBase 开源技术全…...

【CPP】定义一个类

一&#xff1a;当实现一个类的时候&#xff0c;编译器都做了什么 前言&#xff1a;当我们实现一个类的时候&#xff0c;编译器为我们做了什么&#xff1b;在对类进行操作的时候&#xff0c;有哪些特殊的成员函数可以帮助我们更好的操纵类&#xff1b; class A {A();//默认构造…...

谷歌广告投放步骤流程是什么?一文带你全方位了解实操细节

谷歌&#xff0c;大家都不陌生吧&#xff0c;一个人们很常用的搜索引擎。而谷歌还可以打广告&#xff0c;即谷歌广告&#xff0c;那这跟跨境电商有什么关心呢&#xff1f;东哥告诉大家&#xff0c;关系大了去了&#xff0c;毕竟如果用户搜索与我们相关的关键词&#xff0c;就有…...

TypeScript 怎么去查找类型定义的?

TypeScript 怎么去查找类型定义的&#xff1f;类型文件分类第三方库的类型自定义类型结论类型文件分类 我们项目中的类型文件分为两种&#xff1a;一类是第三方库的类型&#xff0c;一类是在项目中的自定义类型。 第三方库的类型 &#xff08;1&#xff09;Jquery&#xff1…...

NPM包管理器

文章目录一、NPM包管理器1、简介2、安装NPM3、使用npm管理项目3.1项目初始化3.2修改npm镜像3.3 npm install命令的使用3.4其它命令一、NPM包管理器 1、简介 什么是NPM NPM全称Node Package Manager&#xff0c;是Node.js包管理工具&#xff0c;是全球最大的模块生态系统&…...

IT英语记录

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言1、Classification2、Logistic Regression3、网络相关3.1 WAN&#xff08;Wide Area Network&#xff09;、LAN&#xff08;Local Area Network&#xff09;网络…...

SRS4.0 源码分析- RTC模块相关类

前言 本文介绍SRS4.0涉及RTC模块的C类&#xff0c;主要包括RTC Server和Session相关的。 SrsGoApiRtcPlay 处理webrtc client的播放请求&#xff0c;解析client的offer&#xff0c;并且生成server的answer&#xff0c;并且为这次请求创建一个session。SrsRtcServer 监听udp端…...

数位DP

数位dp的题目一般会问&#xff0c;某个区间内&#xff0c;满足某种性质的数的个数。 利用前缀和&#xff0c;比如求区间[l,r]中的个数&#xff0c;转化成求[0,r]的个数 [0,l-1]的个数。利用树的结构来考虑&#xff08;按位分类讨论&#xff09; 1081. 度的数量 #include<…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...