Linux的权限管理精细总结

 (该图由AI绘制 关注我 学习AI画图)

目录

一、权限概述

1、权限的基本概念

2、为什么要设置权限

3、Linux用户身份类别

4、user文件拥有者

5、group文件所属组内用户

6、other其他用户

7、特殊用户root

二、普通权限管理

1、ls -l命令查看文件权限

2、文件类型+权限解析

3、文件或文件夹权限设置(字母)

4、文件或文件夹权限设置(数字)

5、奇葩权限

6、练习题

7、特殊权限说明

三、文件拥有者以及文件所属组设置

1、什么是属主与属组

2、文件拥有者与所属组的查看

3、了解文件的拥有者与文件所属组来源

4、为什么需要更改文件拥有者与所属组

5、文件拥有者设置

6、文件所属组的设置

7、chown同时修改属主与属组

四、特殊权限(扩展)

1、设置位S(针对二进制文件)

☆ 设置位S的作用

☆ 去除S位权限

☆ 添加S位权限

2、沾滞位T(针对文件夹)

☆ 粘滞位作用

五、ACL访问控制

1、为什么需要ACL

2、获取某个文件的ACL权限

3、给某个文件设置ACL权限

六、umask(了解,不要更改!!!)

1、什么是umask

2、获取用户的umask值

3、修改umask值(一定不要改)

☆ 临时修改(重启后失效)

☆ 永久修改


一、权限概述

1、权限的基本概念

在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。

在Linux 中分别有读、写、执行权限:

权限针对文件权限针对目录
读r表示可以查看文件内容;cat表示可以(ls)查看目录中存在的文件名称
写w表示可以更改文件的内容;vim 修改,保存退出表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir)
执行x表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh) => 绿色表示是否可以进入目录中(cd)

注:一般给予目录读权限时,也将会给其执行权限,属于“套餐”组合

可读权限 read => r(简写),可写权限 write => w(简写),可执行权限 excute => x(简写)

2、为什么要设置权限

1)服务器中的数据价值2)员工的工作职责和分工不同3)应对自外部的攻击(挂马)4)内部管理的需要

3、Linux用户身份类别

Linux 系统一般将文件权限分为3 类:read(读)write(写)execute(执行)

4、user文件拥有者

文件的拥有者:默认情况下,谁创建了这个文件谁就是文件的拥有者。

文件的拥有者可以进行更改并不是一成不变的。

5、group文件所属组内用户

group所属组内用户代表与文件的所属组相同的组内用户。(什么玩意绕口令似的)

6、other其他用户

other其他用户代表这些人既不是文件的拥有者,也不是文件所属组内的用户,我们把这些人就称之为other其他用户。

7、特殊用户root

在Linux操作系统中,root拥有最高权限(针对所有文件),所以权限设置对root账号没有效果。

在Linux系统中,三大类用户也可以拥有简写形式user(u)、group(g)、other(o)  

二、普通权限管理

1、ls -l命令查看文件权限

# ls -l

 

2、文件类型+权限解析

Linux一共有7种文件类型,分别如下: -:普通文件 d:目录文件 l: 软链接(类似Windows的快捷方式)

(下面四种是特殊文件) b:block,块设备文件(例如硬盘、光驱等) p:管道文件 c:字符设备文件(例如猫(上网猫)等串口设备) s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)

3、文件或文件夹权限设置(字母)

# chmod [选项] 权限设置 文件或目录的名称
选项说明:
-R :递归设置,针对文件夹(目录)

——————

重点:字母设置并不难,重点看三方面

第一个:确认要给哪个身份设置权限,u、g、o、ugo(a)

第二个:确认是添加权限(+)、删除权限(-)、还是赋予权限(=)

第三个:确认给这个用户针对这个文件或文件夹设置什么样的权限,r、w、x

——————

案例:给readme.txt文件的拥有者,增加一个可执行权限

# chmod u+x readme.txt

案例:把readme.txt文件的拥有者、的可执行权限、去除

# chmod u-x readme.txt

案例:为readme.txt、中的所属组内用户、赋予rw权限

# chmod g=rw readme.txt

案例:给shop目录、及其内部的、文件统一、添加w可写权限

# chmod -R ugo+w shop

# chomd -R a+w shop

案例:给shop目录设置权限,要求拥有者rwx,组内用户r-x,其他用户r-x

# chomd -R u=rwx,g=r-x,o=r-x shop

4、文件或文件夹权限设置(数字)

经常会在技术网站上看到类似于# chmod 777 a.txt 这样的命令,这种形式称之为 数字形式权限 。

文件权限与数字的对应关系,我们会发现没有7这个数字

权限对应数字意义
r4可读
w2可写
x1可执行
-0没有权限

777 :

第一个数字7,代表文件拥有者权限

第二个数字7,代表文件所属组内用户权限

第三个数字7,代表其他用户权限

rwx = 4 + 2 + 1 = 7

rw = 4 + 2 = 6

rx = 4 + 1 = 5

案例:给readme.txt设置权限,文件的拥有者rwx,组内用户rw,其他用户r

rwx = 7
rw = 6
r = 4
# chmod 764 readme.txt

案例:给shop文件夹设置777权限

# chmod -R 777 shop

5、奇葩权限

问题:用超级管理员设置文档的权限命令是# chmod -R 731 shop

请问这个命令有没有什么不合理的地方?

答:731权限进行拆解

7 = 4 + 2 + 1 = rwx

3 = 2 + 1 = wx

1 = x

问题在权限731中的3权限,3表示写+执行权限,

但是写又必须需要能打开之后才可以写,

因此必须需要具备可读权限,因此此权限设置不合理。

注:实际工作中,各位小伙伴在设置权限时一定不要设置这种"奇葩权限",

一般情况下,单独出现2、3的权限数字一般都是有问题的权限。

6、练习题

1)使用root 用户设置文件夹/root/shop 的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置

rwx=7,rx=4+1=5,0
# chmod -R 750 /root/shop

2)请置文件/root/readme.txt 的权限,权限要求为:

属主拥有全部权限,属组要求可以读写,其他用户只读,要求使用数字形式;

# chmod 764 /root/readme.txt

3)请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;

rw=6,0,0
# chmod 600 /root/email.doc

7、特殊权限说明

在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的 目录是否有写权限 ,如果有才可以删除(同时必须具备执行权限)。

/shell/readme.txt
我们想删除readme.txt文件,必须要对shell目录具有可写权限,否则文件无法删除

三、文件拥有者以及文件所属组设置

文件拥有者:属主

文件所属组:属组

1、什么是属主与属组

属主:所属的用户,文档所有者,这是一个账户,这是一个人

属组:所属的用户组,这是一个组

2、文件拥有者与所属组的查看

 

3、了解文件的拥有者与文件所属组来源

在Linux操作系统中,每个文件都是由Linux系统用户创建的。

在Linux操作系统中,每个用户都具有一个用户名称以及一个主组的概念

# su - user1
# touch readme.txt
# ll readme.txt
-rw-rw-r--. 1 user1 user1 0 Mar 20 15:17 readme.txt

4、为什么需要更改文件拥有者与所属组

应该就是职责调动之类的吧

5、文件拥有者设置

基本语法:ch = change ,own = owner

# chown [选项] 新文件拥有者名称 文件名称
选项说明:
-R :代表递归修改,主要针对文件夹

案例:把/root/readme.txt文件的拥有者更改为user1

# chown user1 /root/readme.txt

案例:把/root/shop文件夹的拥有者更改为linuxuser

# chown -R linuxuser /root/shop

6、文件所属组的设置

基本语法: ch = change , group,chgrp

# chgrp [选项] 新文件所属组名称 文件名称
选项说明:
-R : 代表递归修改,主要针对文件夹

案例:把/root/readme.txt文件的所属组名称更改为user1

# chgrp user1 /root/readme.txt

案例:把/root/shop文件夹的所属组名称也更改为user1

# chgrp -R user1 /root/shop

7、chown同时修改属主与属组

# chown [选项] 文件拥有者名称:文件所属组名称 文件名称
或
# chown [选项] 文件拥有者名称.文件所属组名称 文件名称
选项说明:
-R : 代表递归修改,主要针对文件夹

案例:readme.txt文件的拥有者与所属组同时更改为root

# chown root:root readme.txt

# chown root.root readme.txt

案例:更改shop目录的拥有者以及所属组为root

# chown -R root:root shop

# chown -R root.root shop

四、特殊权限(扩展)

1、设置位S(针对二进制文件)

☆ 设置位S的作用

作用:为了让一般使用者临时具有该文件所属主/组的执行权限。

主要针对二进制文件(命令)

例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?

user1普通账号 => 执行/usr/bin/passwd => 修改/etc/shadow文件(存放用户的密码)

☆ 去除S位权限

# chmod u-s /usr/bin/passwd 
或者
# chmod 0755 /usr/bin/passwd

☆ 添加S位权限

# chmod u+s /usr/bin/passwd
或者
# chmod 4755 /usr/bin/passwd

2、沾滞位T(针对文件夹)

☆ 粘滞位作用

主要功能:只允许文件的创建者和root用户删除文件(防止误删除权限位)

# chmod -R o+t 文件夹的名称

# chmod -R 1777 文件夹的名称

五、ACL访问控制

1、为什么需要ACL

ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。

扩展:ACL权限可以针对某个用户,也可以针对某个组。ACL优势就是让权限控制更加的精准。

2、获取某个文件的ACL权限

基本语法:

# getfacl 文件或目录名称

3、给某个文件设置ACL权限

# setfacl [选项] u:用户名:权限 文件或目录名称
选项说明:
-m : 修改acl策略
-x : 去掉某个用户或者某个组的权限
-b : 删除所有的acl策略-R  :递归,通常用在文件夹

案例:针对readme.txt文件给linuxuser设置一个权限=>可读

setfacl -m u:linuxuser:r readme.txt

案例:针对shop文件夹给itheima组设置一个权限=>可读可写权限rw

# setfacl -R -m g:itheima:rw shop    =>     针对某个用户组开通ACL权限

案例:把linuxuser用户权限从readme.txt中移除掉

# setfacl -x u:linuxuser readme.txt

案例:把itheima用户组权限从shop中移除掉

# setfacl -x -R g:itheima shop

案例:把readme.txt文件中的所有ACL权限全部移除

# setfacl -b readme.txt

六、umask(了解,不要更改!!!)

1、什么是umask

umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)

root用户下,touch a ,文件a的默认权限是644

普通用户下,touch b ,文件b的默认权限是664

644和664我们并没有设置,其中的关键因素就是umask

扩展:实际上我们创建一个普通文件最高权限666。而创建一个文件夹其最高权限777

实际文件权限 = 最高权限 - umask的值

2、获取用户的umask值

# umask
0022
注:0022中第一位0代表特殊权限位,可以不设置。
umask的默认值,在root和普通用户下是不一样的,分别是022和002

为什么文件在root下创建就是644,在itheima下就是664

root : 666 - 022 = 644

itheima:666 - 002 = 664

3、修改umask值(一定不要改)

☆ 临时修改(重启后失效)

# umask 002
777 - 002 = 775

☆ 永久修改

# vim ~/.bashrc 
① 在文件末尾添加umask 002
② 保存退出 
③ su切换用户则立即生效

—————  本文完 —————

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目名称:无源在线词典项目

一,概述 基于C语言的网络电子词典项目,使用到了tcp协议的并发服务器设计、网络编程、文件I/O、数据库等多方面的知识。可以满足多用户同时登陆,用户登陆后可以查询单词及历史记录,具有查找快速,保密性好等优点。 开…

详细介绍MATLAB中的图论算法

MATLAB是一种功能强大的编程语言和环境,提供了许多用于图论算法的工具和函数。图论是研究图及其属性和关系的数学分支,广泛应用于计算机科学、网络分析、社交网络分析等领域。在MATLAB中,我们可以使用图论算法来解决各种问题,如最短路径问题、最小生成树问题、最大流问题等…

HDFS与MapResource笔记

客户端向NN请求上传文件 NN回应可以上传 请求上传块,返回DN 所以后面就比较慢 找最近的服务器进行 64K发到1节点,1节点立刻发给2节点,同时1节点自动开始落盘,这里,3个节点是同时落盘的. 因为缓存是在内存中,而持久化是将数据存到磁盘上. 副本节点选择: 1.安全:放不同机架 2.速…

Apache Knox Gateway

简介: Knox是一个提供认证和访问集群中hadoop服务的单个端点服务。目标是为用户和操作者简化hadoop安全。knox运行为一个服务或者集群服务,并提供集中访问一个或者多个hadoop集群。通常网关的目标如下: 1、为hadoop rest api 提供外层的安全…

深入篇【C++】谈vector中的深浅拷贝与迭代器失效问题

深入篇【C】谈vector中的深浅拷贝与迭代器失效问题 Ⅰ.深浅拷贝问题1.内置类型深拷贝2.自定义类型深拷贝 Ⅱ.迭代器失效问题1.内部迭代器失效2.外部迭代器失效 Ⅰ.深浅拷贝问题 1.内置类型深拷贝 浅拷贝是什么意思?就是单纯的值拷贝。 浅拷贝的坏处: ①…

力扣 860. 柠檬水找零

题目来源:https://leetcode.cn/problems/lemonade-change/description/ C题解:由于收到的钱币只有5,10,20三种,对于5元直接收,对于10元找零1张5元,对于20元找零15元,可以找零105或者…

echarts 横向柱状图 刻度标签

echarts 横向柱状图 刻度标签 怎么调试都不左对齐 将width去掉固定宽度 echarts会自适应

自来水收费系统适合应用于哪些场景?

自来水收费系统是一种用于自来水公司或供水管理部门的软件系统,旨在帮助自动化自来水的收费和管理过程。该系统可以帮助自来水公司更好地管理水资源,提高供水质量和效率,同时也可以为用户提供更加便捷和安全的用水服务。下面将从多个方面来介…

mysal数据库的日志恢复

目录 一 物理冷备份 二 mysqldump 备份与恢复(温备份) 三 mgsql中的增量备份需要借助mysql日志的二进制来恢复 小结 一 物理冷备份 systemctl stop mysqld yum -y install xz 压缩备份 tar Jcvf /opt/mysql_all_$(date %F).tar.xz /usr/local/mysql/…

Acwing.908 最大不相交区间数量(贪心)

题目 给定N个闭区间[ai,bi],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。输出可选取区间的最大数量。 输入格式 第一行包含整数N,表示区间数。 接下来N行,每行包含两个整数ai , bi&#xff0c…

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布,从2022年1月1号开始,Appium核心团队不会再维护Appium 1.x版本了,所有近期官方发布的平台驱动(如Android平台的UIAutomator,IOS平台的XCUITest)不再兼容Appi…

数据结构——各种常见算法的实现方法和思路

文章目录 常见的排序算法类型复杂度和稳定性 1.冒泡排序2.直接插入排序3.希尔排序4.简单选择排序方法1:双向遍历选择排序方法2:单向遍历选择排序 5.归并排序方法1:递归方法2:非递归 6.快速排序方法1:随机取keyi方法2&a…