Linux 文件权限详解-程序员宅基地

技术标签: 运维  linux  服务器  RHCSA  

目录

一、文件的一般权限

1、针对三类对象进行定义

2、针对每类访问者定义了三种主要权限

二、修改权限

1、修改文件或目录的权限 chmod

2、对文件和目录来说,rwx有着不同的作用和含义

1)对文件:无意义权限 -wx -w-

2)对文件夹:无意义权限 rw- -w-

3、修改文件或目录的属主和属组

1)修改文件或目录的所属者

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

三、ACL权限

四、文件和目录的特殊权限

1、SUID -- 让普通用户临时获取root权限

2、SGID -- 共享目录权限

3、Sticky Bit

五、修改文件属性 chattr

六、umask


一、文件的一般权限

1、针对三类对象进行定义

  • owner        属主(u)
  • group         属组(g)
  • other          其他(o)

2、针对每类访问者定义了三种主要权限

  • r        Read 读
  • w       Write 写
  • x        eXecute 执行

rwx = 111 = 7
rw- = 110 = 6
r-x  = 101 = 5
r--   = 100 = 4

注意:root账户不受文件权限的读写限制,执行权限受限制

二、修改权限

1、修改文件或目录的权限 chmod

        ——change mode

格式:1)chmod [选项] [ugoa] [+-=] [rwx] 文件或目录...

        :2)chmod [选项] nnn 文件或目录

        ==>chmod [选项] 权限字 文件

选项:-r :递归修改指定目录下所有文件、子目录的权限

权限字:  

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

第一种方式:

第二种方式:

2、对文件和目录来说,rwx有着不同的作用和含义

1)对文件:无意义权限 -wx -w-

        (wx权限是建立在r权限之上,当用了r的权限时,wx的权限才有意义)

2)对文件夹:无意义权限 rw- -w-

        (当文件具有x权限的时候w权限才有意义,对于文件夹来说 r--和rw-没有区别都是只能显示文件内容)

3、修改文件或目录的属主和属组

1)修改文件或目录的所属者

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

        选项-R 可递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的所属关系。

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

        格式

                1)chown [选项] :新属组 文件或目录……

                2)chgrp [选项] 新属组 文件或目录……        (change group修改文件的组信息)

        ===>chown 用户:组 文件名

                 chown 用户.组 文件名

                 chown 用户 文件名 

                 chgrp 用户组 文件

        选项:-R        递归修改权限 

三、ACL权限

        ——给指定的用户指定目录分配指定的权限

        查看ACL权限:getfacl 文件名

        设定ACL权限:setfacl [选项] [u:用户名:权限] 文件名

                选项:

                        -m        添加扩展权限 【如setfacl -m u:redhat:rwx 123.txt】

                        -x         删除指定的ACL扩展权限

                        -b         清空所有的ACL扩展权限

                        -d         设定默认 ACL 权限 只对目录生效 指目录中新建立的文件拥有此默认权限

                        -k         删除默认ACL权限

                        -R        递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效

#给用户和用户组添加ACL权限
给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名
#通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限
setfacl -Rm u:用户名:权限 -R 文件名
# 如果给父目录设定了默认的 ACL 权限,那么父目录中所有新建的子文件会继承父目录的 ACL 权限
setfacl -m d:u:用户名:权限 文件名
setfacl -md u:用户名:权限 文件名
[root@localhost ~]# setfacl -m u:new_user:rwx a
[root@localhost ~]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
user:new_user:rwx
group::r--
mask::rwx
other::r--

#删除指定用户的 ACL 权限

setfacl -x u:用户名 文件名

#删除指定用户组的 ACL 权限

setfacl -x g:组名 文件名

#删除文件的所有 ACL 权限

setfacl -b 文件名 

# 当会用-x删除扩展权限时,虽然权限已经删除掉了 但此时使用ll还能看到.的位置上是一个+,如果想要变回.则取消使用-b
[root@localhost ~]# setfacl -x u:new_user a
[root@localhost ~]# getfacl a

四、文件和目录的特殊权限

1、SUID -- 让普通用户临时获取root权限

rws------.

当设置了SUID权限到可执行文件上时,假如文件本身是rwx------.,此时就会变为rws------.

当普通用户运行 u权限具有s的可执行文件时(即该程序的权限为-rwsr-xr-x.),普通户在程序的运行过程中临时具备root权限,所以普通户在运行passwd命令时可以,修改/etc/shadow文件

#cat可执行文件本身全显示rwxr-xr-x,也就是说普通用户无法通过cat命令阅读权限不允许的文件
#当使用suid将cat命令权限改为 rwsr-xr-x时,普通用户在使用cat时可以临时获取root权限,这时普通户可以阅读任何文件
[root@localhost tmp]# chmod u+s /usr/bin/cat
[root@localhost tmp]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 36320 Jan  6  2023 /usr/bin/cat
[root@localhost tmp]# cat 123.txt
123

suid仅对二进制文件有效。

在执行过程中,调用者会暂时获得该文件的所有者权限。

该权限只在程序执行的过程中有效。

2、SGID -- 共享目录权限

SGID权限一般赋予给目录,任何用户管在该目录中创建新文件,这个新文件的属组都是拥有SGID这个目录的属组

当设置了SGID权限到文件夹上时,假如文件夹本身是---rwx---.,此时就会变为---rws---.

一般用于协同工作,共同在同一目录下进行文件管理。

#任意用户创建的文件,该文件的属组本应属于该用户的基本组
[qqqq@localhost tmp]$ mkdir qqqqDir
[qqqq@localhost tmp]$ mkdir test
[qqqq@localhost tmp]$ touch test/a
[qqqq@localhost tmp]$ ll test/a
-rw-r--r--. 1 qqqq qqqq 0 Sep 24 21:21 test/a

#当目录具有SGID权限时,任何用户在该目录下创建新文件,文件的属组都会变为用户SGID权限的目录的属组。
[qqqq@localhost tmp]$ chmod g+s qqqqDir/
[qqqq@localhost tmp]$ chmod g=rws qqqqDir/
[qqqq@localhost tmp]$ ll qqqqDir/ -d
drwxrwSr-x. 2 qqqq qqqq 6 Sep 24 21:12 qqqqDir/
[qqqq@localhost tmp]$ cd qqqqDir/
[qqqq@localhost qqqqDir]$ touch a
[qqqq@localhost qqqqDir]$ ll a
-rw-r--r--. 1 qqqq qqqq 0 Sep 24 21:14 a

3、Sticky Bit 粘滞位

当设置了SBit权限到文件夹上时,假如文件夹本身是------rwx.,此时就会变为------rwt.

但目录具有sbit权限时,在文件中的文件只能被文件的所有者删除

#使用redhat创建个test目录 权限给满 这时任何人都可以在这个目录中删除任何文件
[redhat@RHEL tmp]$ mkdir test
[redhat@RHEL tmp]$ chmod 777 test/
[redhat@RHEL tmp]$ ll test/ -d
drwxrwxrwx. 2 redhat redhat 6 Sep 24 11:55 test/
[redhat@RHEL tmp]$ touch test/a
#此时普通用户还可以删除其他用户的文件
[caixukun@RHEL test]$ rm -rf a
#当设置了粘滞位sticky bit权限后,普通用户只能删除自己的文件,别人不可以。
[redhat@RHEL tmp]$ chmod a=rwxrwxrwt test/
[redhat@RHEL tmp]$ ll test/ -d
drwxrwxrwt. 2 redhat redhat 6 Sep 24 11:56 test/
[redhat@RHEL tmp]$ touch test/a
#此时普通用户就不可以删除其他人的文件了
[caixukun@RHEL test]$ rm -rf a
rm: cannot remove 'a': Operation not permitted

为文件或目录添加三种特殊权限同样可以通过chmod命令来实施,使用“u±s”、“g±s”、“o±t”的字符权限模 式分别用于添加和移除SUID、GUID、sticky权限。

若使用数字形式的权限模式,可采用“nnnn”格式的四位八进制数字表示,其中:后面三位是一般权限的数 字表示,前面第一位则是特殊权限的标志数字:

0——表示不设置特殊权限

1——表示只设置sticky

2——表示只设置GUID权限

3——表示只设置SGID和sticky权限

4——表示只设置SUID权限

5——表示只设置SUID和sticky权限

6——表示只设置SUID和SGID

7——表示同时设置SUID、GUID、sticky3种权限

五、修改文件属性 chattr

        ——change attribute

        格式:chattr [选项] 文件名

        选项:

              +a 不可修改 -a拿掉不可修改的属性(root不可以删)

              +i 表示只读 -i取消只读

              +d 不可删除 -d取消不可删除(root可以删)

六、umask

        ——权限掩码

        权限掩码直接影响到新建文件的权限

        新建文件的权限时 666 = rw-rw-rw-

​                                      666 - 权限掩码 rw-r--r--

        新建目录的默认权限=0777-umask值

[root@localhost ~]# umask //查看当前用户的umask权限
0022
#临时赋予权限掩码
[root@RHEL tmp]# umask 000

#永久性质的权限掩码设置 可以在.bashrc .bash_profile 添加 umask 000
[root@localhost ~]# vim .bashrc
#重新加载配置
[root@localhost ~]# source .bashrc

另一种方式:
#修改shell umask值(永久)
[root@localhost ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
[root@localhost ~]# source /etc/profile //立即在当前shell中生效

# 在/etc/login.defs中记录权限掩码等系统配置(轻易不要修改)
[root@localhost ~]# vim /etc/login.defs

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_68256171/article/details/133231076

智能推荐

Spring Cloud Eureka项目切换注册中心到Nacos_eureka切换nacos-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏7次。Spring Cloud 项目平滑将注册中心迁移到Nacos上1.问题概述由于项目升级,需要将Eureka注册中心改为阿里的Nacos作为注册中心项目环境1、Java 使用的 JDK-1.82、Spring Boot 使用的 Spring Boot-2.1.4.RELEASE3、Spring Cloud 使用的是 Greenwich.RELEASE2.方案设计2.1 业务应用多注册到Nacos和EurekaSpring Cloud应用默认不支持启动时双向注册,但是阿里商业版上云edas_eureka切换nacos

嵌入式基本知识必备_嵌入式中40u表示什么?-程序员宅基地

文章浏览阅读1.6k次,点赞4次,收藏15次。关于嵌入式产品常用元器件知识,本文多数资料来源网络,再次做整理总结。好了,开始启程!一、IC的三个温度等级芯片上表示对应温度范围C:表示商业级集成芯片(IC),温度定额为 0℃~+70℃;I: 工业级集成芯片(IC),温度定额为 -40℃~+85℃;A: 汽车工业级芯片(IC),温度定额为 -40℃~+125℃M:..._嵌入式中40u表示什么?

还原二叉树-程序员宅基地

文章浏览阅读202次。给定一棵二叉树的前序遍历序列和中序遍历序列,要求计算该二叉树的高度。

用CPLEX写个数学模型就这么难?_cplex does not support nonconvex quadratic constra-程序员宅基地

文章浏览阅读6.4k次,点赞20次,收藏148次。一、前言小编有个小伙伴,隔三差五就过来跟我说:这个模型CPLEX怎么写呢?我说我不是给你讲过好多次?他说CPLEX太复杂了,俺没学过学不会呢。Similarly,遇到这个问题的不止小编这个小伙伴。很多刚入行的小伙伴都表示CPLEX对初学者来说并不是很友好,就连学习资料都不知道去哪里看,不像Excel或者Word,百度一下出来好多资料。其实吧,这玩意儿并没有大家想的那么难,尤其是简单使用CPLEX求解一个模型的话,用来用去都是那几个函数而已。下面小编来给大家好好理一下,看完相信你也能用CPLEX跑一下论_cplex does not support nonconvex quadratic constraints

R语言在矢量地图上绘制分级设色散点图_r语言在地图上绘制不同颜色散点图-程序员宅基地

文章浏览阅读1.9k次。实现效果:R语言中ggplot2包提供绘制地图、散点图的方法,是实现在矢量地图上绘制分级设色散点图核心包绘制多边形geom_polygon(data,aes,fill, colour) 绘制点 geom_point .....0、需要用到的包library(maptools) # 读取shp数据常用,可以将shp数据读取为SpatialPolygonsDataFrame 格式,为DataFrame(数据帧)子类,也称为空间多边形数据帧library(ggplot2) #绘图核..._r语言在地图上绘制不同颜色散点图

【matlab】求空间两个向量之间的夹角_matlab 向量夹角-程序员宅基地

文章浏览阅读3.1w次,点赞28次,收藏73次。原点O[0,0,0]OA=[1,1,0];OB=[1,0,0];sigma = acos(dot(OA,OB)/(norm(OA)norm(OB)));%弧度制sigma/pi180%换算成角度_matlab 向量夹角

随便推点

群论期中考试必会题目_z2群-程序员宅基地

文章浏览阅读1.2k次。(1) 置换群 拉格朗日(2) 对称性(3) X= 0 这个是舒尔引理二,要背下来(4) 相同,这是重排定理(5) 这个题目讲了连续群在做(6) A(7) 相等(8) Z2群{1,-1}, 为阿贝尔群,D3群为非阿贝尔群二.(1) 封闭性,结合性,恒元,逆元(2) 不构成,没有逆元(3) 群表示矩阵的迹..._z2群

STM32CubeMX配置W25Q128_stm32 w25q128jvsim配置-程序员宅基地

文章浏览阅读444次,点赞9次,收藏7次。W25Q128是华邦公司推出的一款SPI接口的NOR Flash芯片,其存储空间为128Mbit,相当于16M字节。W25Q128V芯片是串行闪存,可以通过标准/两线/四线SPI控制。W25Q128JV阵列被组织成65536个可编程页面,每个页面256字节。一次最多可编程256个字节。页面可以按16组(4KB扇区擦除)、128组(32KB块擦除)、256组(64KB块擦除或整个芯片(芯片擦除)擦除。W25Q128JV分别具有4096个可擦除扇区和256个可擦除块。_stm32 w25q128jvsim配置

java.lang.ProcessBuilder类(系统进程)_processbuilder pb = new processbuilder-程序员宅基地

文章浏览阅读546次。转载地址:http://lavasoft.blog.51cto.com/62575/15662/一、概述 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。 每个 Proces_processbuilder pb = new processbuilder

满城中学-程序员宅基地

文章浏览阅读1.5k次。自传4、在满城中学上高一----拉黎耕地 一九五九年九月,我到满城上高中。这是一所县办校,当时只招高中生。校址设在城南部,校外坡下黄土坑。砖墙瓦盖东西院,临近大街路畅通。东院教室有三栋,里面充满读书声。西院师生当宿舍,水井台在院当中。两院中隔宽街道,由南向北直贯通。南端书店汽车站,北去商店理发厅。化学老师班主任,三十几岁黑面容。穿着整齐而朴素,对人严肃而真诚。俄语老师张琳娜,中国姑娘苏联名。..._满城中学9708班

QUESTION 41-benefits of installing Grid Infrastructure software_which are two benefits of installing grid infrastr-程序员宅基地

文章浏览阅读97次。What are two benefits of installing Grid Infrastructure software for a stand-alone server before installing and creating an Oracle database? (Choose two.)A. Effectively implements role separationB. Enables you to take advantage of Oracle Managed Files.C._which are two benefits of installing grid infrastructure software for a stan

基于SegNet和UNet的遥感图像分割代码解读_unet遥感图像分割-程序员宅基地

文章浏览阅读5.6k次,点赞9次,收藏104次。基于SegNet和UNet的遥感图像分割代码解读目录基于SegNet和UNet的遥感图像分割代码解读前言概述代码框架代码细节分析划分数据集gen_dataset.pyUNet模型训练unet_train.py模型融合combind.pyUNet模型预测unet_predict.py分类结果集成ensemble.pySegNet模型训练segnet_train.py前言上了一学期的课,趁着寒假有时间,看了往年论文和部分比赛的代码,现在整理出来。整理的这部分内容以实际操作为主,主要讲解代码部分的分析。概_unet遥感图像分割