18.权限管理之文件权限管理

1|0一.基本权限介绍

1|11.基本权限类型

  • r : 4 : 可读
  • w : 2 : 可写
  • x : 1 : 可执行

1|22.权限归属

  • u : 属主
  • g : 属组
  • o : 其他人

1|33.设置权设置属主,属组

  • 命令: chown
  • 选项: -R 递归设置
🌲同时设置属主和属组 [root@shawn song]# ll /home/song/a.txt ---------- 1 root root 12 1029 17:22 /home/song/a.txt [root@shawn song]# chown song.song !$ chown song.song /home/song/a.txt [root@shawn song]# ll !$ ll /home/song/a.txt ---------- 1 song song 12 1029 17:22 /home/song/a.txt 🌲只设置属主 [root@shawn song]# chown root !$ chown root /home/song/a.txt [root@shawn song]# ll !$ ll /home/song/a.txt ---------- 1 root song 12 1029 17:22 /home/song/a.txt 🌲只设置属组 [root@shawn song]# chown .root !$ chown .root /home/song/a.txt [root@shawn song]# ll !$ ll /home/song/a.txt ---------- 1 root root 12 1029 17:22 /home/song/a.txt

1|44.修改 u, g, o, 对应的权限

  • 命令: chmod

  • 选项: -a 所有, -R 递归

  • 加减法

🌲单独加减一个权限和多个一起加减都可以 [root@shawn song]# ll 总用量 4 ---------- 1 root root 12 1029 17:22 a.txt 🌲写在一起加一些权限(也可以单独拎一个"u+xw") [root@shawn song]# chmod u+rw,g+rx,o+wx a.txt [root@shawn song]# ll a.txt -rw-r-x-wx 1 root root 12 1029 17:22 a.txt 🌲写在一起减一些权限 [root@shawn song]# chmod u-w,g-wx,o-x a.txt [root@shawn song]# ll a.txt -r--r---w- 1 root root 12 1029 17:22 a.txt
  • 赋值法
🌲"a"代表所有权限一起设置 [root@shawn song]# ll 总用量 4 -r--r---w- 1 root root 12 1029 17:22 a.txt [root@shawn song]# chmod a=rwx a.txt [root@shawn song]# ll a.txt -rwxrwxrwx 1 root root 12 1029 17:22 a.txt 🌲逐个赋值 [root@shawn song]# chmod u=x,g=x a.txt [root@shawn song]# ll a.txt ---x--xrwx 1 root root 12 1029 17:22 a.txt 🌲或者多个一起赋值 [root@shawn song]# chmod uo=r,g=w a.txt [root@shawn song]# ll a.txt -r---w-r-- 1 root root 12 1029 17:22 a.txt
  • 数字法
🌲"u"=4, "g"=2, "0"=1 [root@shawn song]# ll a.txt -r---w-r-- 1 root root 12 1029 17:22 a.txt 🌲"777"开放所有权限 [root@shawn song]# chmod 777 a.txt [root@shawn song]# ll a.txt -rwxrwxrwx 1 root root 12 1029 17:22 a.txt 🌲"000"不开放权限 [root@shawn song]# chmod 000 a.txt [root@shawn song]# ll a.txt ---------- 1 root root 12 1029 17:22 a.txt 🌲可以按需求设置 [root@shawn song]# chmod 421 a.txt [root@shawn song]# ll a.txt -r---w---x 1 root root 12 1029 17:22 a.txt

2|0二.权限对文件与目录的意义

2|11.对文件的意义

  • r : 读取文件的内容
  • w : 修改文件内容
  • x : 可以把文件当成一个命令 / 程序运行

2|22.对目录的意义

  • r : 可以浏览该目录下的子目录名和子文件名字
  • w : 创建, 删除, 移动文件
  • x : 可以进入该目录, 只要我们要操作目录下的内容, 一定要对该目录有 x 权限

2|33.操作文件夹下的文件内容

  • 🍡查看一个文件内容至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件的 r 权限

  • 🍡修改一个文件内容至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件的 w 权限

  • 🍡执行一个自己制作的命令文件至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件的 r 以及 x 权限
对于解释型的执行文件需要"r"+"x",而二进制执行文件只需要"x"

2|44.操作文件夹下面的子文件与子文件夹( 不是操作文件内容)

  • 🍡在目录下创建, 删除, 移动文件至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件夹的 wx 权限

  • 🍡浏览一个目录下的子目录与子文件名至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件夹的 rx 权限

3|0三.文件管理权限之特殊权限

3|11.SUID

  • 作用
🌲只能给可执行的文件加(命令) 🌲设置有"s"权限的命令 🌲普通用户使用时会临时变成该命令的属主 🌲也就是获得该命令的属主权限
  • 修改密码passwd
在 Linux 中,用户密码都在"/etc/shadow"中,我们可以看到它对于其他人是没有权限的

然而普通用户却可以使用"passwd"修改密码,我们来看看这个命令

⛅我们发现它在属主权限里多了个"s"权限,这就是所谓的"尚方宝剑" ⛅当普通用户使用带有这种权限的命令时 ⛅普通用户会暂时获得这个命令属主的所有权限 ⛅也就是成为了这个命令的主人(一般是root,root不受权限压制)
  • 实验
让我们为 "cat" 命令加上 "s" 权限看看会发生什么

1|0🌟首先我们使用root创建一个文件,并设置内容

1|0🌟将 test.txt 对其他人的权限变成 0

1|0🌟我们切换普通用户 song 来 cat 下 test.txt, 发现无权限,

1|0🌟再看看 cat 命令是没有SUID权限的

1|0🌟来使用 root 帮 cat 添加一下 SUID 权限

1|0🌟我们再使用普通用户 song 来 cat 下 /test.txt , 发现尚方宝剑奏效了

3|22.SGID

  • 当SGID作用于普通文件时
和SUID类似,在执行该文件时,用户将获得该文件所属组的权限
  • 当SGID作用于目录时
当一个用户在一个具有 "s" 权限的初始目录下创建子目录以及子子目录时 这些所有的子目录与子子目录所在的属组都将是初始目录所在的属组

3|33.SBIT

  • 作用
目前只对目录有效果 用来阻止非文件的所有者删除具有"SBIT"权限文件夹下的文件 比如"tmp"目录就是这种目录
权限信息中最后一位t表明该目录被设置了SBIT 权限 SBIT 对目录的作用是:当用户在该目录下创建新文件或目录时 仅有自己和root才有权力删除,主要作用于一个共享的文件夹

  • 演示

1|0🌟我们可以自己创建一个这样的目录

1|0🌟使用三个不同的用户在此目录下分别创建三个文件

1|0🌟分别切换到不同用户来做删除操作

1|0🌟由此我们可以看出每个用户只能对自己所创建的文件进行删除

4|0四.权限管理之 umask (了解)

4|11.作用

  • 我们无论是用 root ,还是 UID > 199 的系统用户 / 普通用户创建的文件或者目录
  • 它们的默认权限都是由 umask 来决定的

4|22.文件与目录权限的计算

  • Linux文件默认的权限为 666, 目录权限为 777
  • 但会收受到 umask 大小的影响

🌟文件权限计算方法: 偶数位直接相减,奇数位相减后加1

文件起始权限umask值运算计算后的文件权限
666 002 相减 644
666 033 相减后奇数为加1 644
666 325 相减后奇数为加1 442

🌟目录权限计算方法: 直接相减

目录起始权限umask值运算目录计算后权限
777 022 相减 755
777 033 相减 744
777 325 相减 452

🌟UID > 199 的系统用户或者普通用户

默认 "umask": 0002 文件权限:664 目录权限:775

🌟ROOT用户

默认 "umask": 0022 文件权限:644 目录权限:755

4|33.设置 umask 的方法

须知 umask 越小, 权限就越大

  • 临时设置命令
# umask 000
  • 永久设置命令
# vim /etc/profile ⛅或者 # vim /etc/bashrc ⛅内容是一致的

 

 

5|0一.基本权限介绍

5|11.基本权限类型

  • r : 4 : 可读
  • w : 2 : 可写
  • x : 1 : 可执行

5|22.权限归属

  • u : 属主
  • g : 属组
  • o : 其他人

5|33.设置权设置属主,属组

  • 命令: chown
  • 选项: -R 递归设置

🌲同时设置属主和属组 [root@shawn song]# ll /home/song/a.txt ---------- 1 root root 12 1029 17:22 /home/song/a.txt [root@shawn song]# chown song.song !$ chown song.song /home/song/a.txt [root@shawn song]# ll !$ ll /home/song/a.txt ---------- 1 song song 12 1029 17:22 /home/song/a.txt 🌲只设置属主 [root@shawn song]# chown root !$ chown root /home/song/a.txt [root@shawn song]# ll !$ ll /home/song/a.txt ---------- 1 root song 12 1029 17:22 /home/song/a.txt 🌲只设置属组 [root@shawn song]# chown .root !$ chown .root /home/song/a.txt [root@shawn song]# ll !$ ll /home/song/a.txt ---------- 1 root root 12 1029 17:22 /home/song/a.txt

5|44.修改 u, g, o, 对应的权限

  • 命令: chmod

  • 选项: -a 所有, -R 递归

  • 加减法

🌲单独加减一个权限和多个一起加减都可以 [root@shawn song]# ll 总用量 4 ---------- 1 root root 12 1029 17:22 a.txt 🌲写在一起加一些权限(也可以单独拎一个"u+xw") [root@shawn song]# chmod u+rw,g+rx,o+wx a.txt [root@shawn song]# ll a.txt -rw-r-x-wx 1 root root 12 1029 17:22 a.txt 🌲写在一起减一些权限 [root@shawn song]# chmod u-w,g-wx,o-x a.txt [root@shawn song]# ll a.txt -r--r---w- 1 root root 12 1029 17:22 a.txt
  • 赋值法

🌲"a"代表所有权限一起设置 [root@shawn song]# ll 总用量 4 -r--r---w- 1 root root 12 1029 17:22 a.txt [root@shawn song]# chmod a=rwx a.txt [root@shawn song]# ll a.txt -rwxrwxrwx 1 root root 12 1029 17:22 a.txt 🌲逐个赋值 [root@shawn song]# chmod u=x,g=x a.txt [root@shawn song]# ll a.txt ---x--xrwx 1 root root 12 1029 17:22 a.txt 🌲或者多个一起赋值 [root@shawn song]# chmod uo=r,g=w a.txt [root@shawn song]# ll a.txt -r---w-r-- 1 root root 12 1029 17:22 a.txt
  • 数字法

🌲"u"=4, "g"=2, "0"=1 [root@shawn song]# ll a.txt -r---w-r-- 1 root root 12 1029 17:22 a.txt 🌲"777"开放所有权限 [root@shawn song]# chmod 777 a.txt [root@shawn song]# ll a.txt -rwxrwxrwx 1 root root 12 1029 17:22 a.txt 🌲"000"不开放权限 [root@shawn song]# chmod 000 a.txt [root@shawn song]# ll a.txt ---------- 1 root root 12 1029 17:22 a.txt 🌲可以按需求设置 [root@shawn song]# chmod 421 a.txt [root@shawn song]# ll a.txt -r---w---x 1 root root 12 1029 17:22 a.txt

6|0二.权限对文件与目录的意义

6|11.对文件的意义

  • r : 读取文件的内容
  • w : 修改文件内容
  • x : 可以把文件当成一个命令 / 程序运行

6|22.对目录的意义

  • r : 可以浏览该目录下的子目录名和子文件名字
  • w : 创建, 删除, 移动文件
  • x : 可以进入该目录, 只要我们要操作目录下的内容, 一定要对该目录有 x 权限

6|33.操作文件夹下的文件内容

  • 🍡查看一个文件内容至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件的 r 权限

  • 🍡修改一个文件内容至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件的 w 权限

  • 🍡执行一个自己制作的命令文件至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件的 r 以及 x 权限

对于解释型的执行文件需要"r"+"x",而二进制执行文件只需要"x"

6|44.操作文件夹下面的子文件与子文件夹( 不是操作文件内容)

  • 🍡在目录下创建, 删除, 移动文件至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件夹的 wx 权限

  • 🍡浏览一个目录下的子目录与子文件名至少需要具备的条件
  • 🍡沿途所有文件夹的 x 权限
  • 🍡对目标文件夹的 rx 权限

7|0三.文件管理权限之特殊权限

7|11.SUID

  • 作用

🌲只能给可执行的文件加(命令) 🌲设置有"s"权限的命令 🌲普通用户使用时会临时变成该命令的属主 🌲也就是获得该命令的属主权限
  • 修改密码passwd

在 Linux 中,用户密码都在"/etc/shadow"中,我们可以看到它对于其他人是没有权限的

然而普通用户却可以使用"passwd"修改密码,我们来看看这个命令

⛅我们发现它在属主权限里多了个"s"权限,这就是所谓的"尚方宝剑" ⛅当普通用户使用带有这种权限的命令时 ⛅普通用户会暂时获得这个命令属主的所有权限 ⛅也就是成为了这个命令的主人(一般是root,root不受权限压制)
  • 实验

让我们为 "cat" 命令加上 "s" 权限看看会发生什么

1|0🌟首先我们使用root创建一个文件,并设置内容

1|0🌟将 test.txt 对其他人的权限变成 0

1|0🌟我们切换普通用户 song 来 cat 下 test.txt, 发现无权限,

1|0🌟再看看 cat 命令是没有SUID权限的

1|0🌟来使用 root 帮 cat 添加一下 SUID 权限

1|0🌟我们再使用普通用户 song 来 cat 下 /test.txt , 发现尚方宝剑奏效了

7|22.SGID

  • 当SGID作用于普通文件时

和SUID类似,在执行该文件时,用户将获得该文件所属组的权限
  • 当SGID作用于目录时

当一个用户在一个具有 "s" 权限的初始目录下创建子目录以及子子目录时 这些所有的子目录与子子目录所在的属组都将是初始目录所在的属组

7|33.SBIT

  • 作用

目前只对目录有效果 用来阻止非文件的所有者删除具有"SBIT"权限文件夹下的文件 比如"tmp"目录就是这种目录

权限信息中最后一位t表明该目录被设置了SBIT 权限 SBIT 对目录的作用是:当用户在该目录下创建新文件或目录时 仅有自己和root才有权力删除,主要作用于一个共享的文件夹

  • 演示

1|0🌟我们可以自己创建一个这样的目录

1|0🌟使用三个不同的用户在此目录下分别创建三个文件

1|0🌟分别切换到不同用户来做删除操作

1|0🌟由此我们可以看出每个用户只能对自己所创建的文件进行删除

8|0四.权限管理之 umask (了解)

8|11.作用

  • 我们无论是用 root ,还是 UID > 199 的系统用户 / 普通用户创建的文件或者目录
  • 它们的默认权限都是由 umask 来决定的

8|22.文件与目录权限的计算

  • Linux文件默认的权限为 666, 目录权限为 777
  • 但会收受到 umask 大小的影响

🌟文件权限计算方法: 偶数位直接相减,奇数位相减后加1

文件起始权限umask值运算计算后的文件权限
666 002 相减 644
666 033 相减后奇数为加1 644
666 325 相减后奇数为加1 442

🌟目录权限计算方法: 直接相减

目录起始权限umask值运算目录计算后权限
777 022 相减 755
777 033 相减 744
777 325 相减 452

🌟UID > 199 的系统用户或者普通用户

默认 "umask": 0002 文件权限:664 目录权限:775

🌟ROOT用户

默认 "umask": 0022 文件权限:644 目录权限:755

8|33.设置 umask 的方法

须知 umask 越小, 权限就越大

  • 临时设置命令

# umask 000
  • 永久设置命令

# vim /etc/profile ⛅或者 # vim /etc/bashrc ⛅内容是一致的

 


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/articles/14443131.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(79)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示