欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【Linux】Linux权限

【Linux】Linux权限

2025/4/3 17:40:56 来源:https://blog.csdn.net/tan_run/article/details/146959969  浏览:    关键词:【Linux】Linux权限

📝前言:
上篇文章我们对Linux的基本指令进行了收尾,这篇文章我们来理解一下Linux的权限

🎬个人简介:努力学习ing
📋本专栏:Linux
🎀CSDN主页 愚润求学
🌄其他专栏:C++学习笔记,C语言入门基础,python入门基础,C++刷题专栏


Linux权限

  • 一,shell命令介绍
  • 二,Linux权限
    • 1. Linux下的用户
    • 2. 命令su
    • 3. Linux权限管理
      • 3.1. 文件访问者
    • 4. 修改权限
      • 1. 修改目标属性
      • 2. 修改拥有者
        • chown
        • chgrp
    • 5. 缺省权限
      • umask
      • t 粘滞位

一,shell命令介绍

在了解Linux操作权限之前,我们先补充一个知识点,shell——命令行解释器。对于Linux而言,Linux是操作系统,它是内核,用户无法直接对操作系统进行操作,于是就有了kernel的“外壳”程序:shell
shell的作用:

  • 将使⽤者的命令翻译给核⼼(kernel)处理。
  • 同时,将核⼼的处理结果翻译给使⽤者。

二,Linux权限

权限 = 角色 + 目标属性,修改权限,起始就是该角色,或者改目标属性。

1. Linux下的用户

Linux下分为两种用户:root用户和普通用户

  • root用户具有超极权限,不受权限约束,做任何事情不受限制
  • 普通用户受到权限的约束
  • 超级⽤⼾的命令提⽰符是#,普通⽤⼾的命令提⽰符是$

只有具有对应的权限才可以进行某些操作,比如要在usr/bin目录下安装程序,这时候就需要root权限。
如果普通用户没有root权限,可以通过sudo来进行短暂提升权限。
sudo的提权是基于root用户设置的“白名单”,在白名单内的用户才能够提权。

tr用户未在白名单里面:
在这里插入图片描述


2. 命令su

su 用户名su - 用户名两种方式,su切换时,当前的目录不变,用su-切换时,相当于用另一个用户重新登录。

  • 对于root切换到其他用户,不需要输入密码
  • 其他用户切换到root,需要输入密码(输入密码的时候不回显)

root用户切换到用户tr(注意看目录还是/home):
在这里插入图片描述

tr切换到root(注意看目录变成了~家目录):
在这里插入图片描述

创建用户:使用adduser 用户名,这条命令会自动在/home目录下生成用户目录


3. Linux权限管理

3.1. 文件访问者

  • ⽂件和⽂件⽬录的所有者:u—User
  • 件和⽂件⽬录的所有者所在的组的用户:g—Group
  • 其它用户:o—Others

ug以外的就是o
在这里插入图片描述
第一个root代表拥有者,第二个root代表所属组
我们再看:第一个-代表文件属性,后面每三个字符为一组,代表对应的访问者的权限
在这里插入图片描述
每个字符都是两态的,即表示允许(1)或拒绝(0),即:r-
且顺序必须是rwxr:读权限,w写权限,x可执行权限(有了可执行权限并不代表文件就可执行,还要求文件是可执行文件才可执行)。
因此某一用户的权限也可以用一个8进制的数字来表示:如6代表:110,即:rw-

对于目录

  • r:是否能查看目录内容和目录里面的文件,如ls,以及:就算内部文件有r权限,但是父目录没有r,则也看不了这个内部文件
  • w:是否能在该目录创建和删除文件,一个文件能否被删除和文件本身权限无关,与该文件所在的目录的w权限有关。
  • x:是否能够进入这个目录

默认情况下,如果要新建一个目录,则rwx权限都要有


4. 修改权限

1. 修改目标属性

命令:chmod [参数] 权限 ⽂件名
说明:只有⽂件的拥有者和root才可以改变⽂件的权限
常⽤选项:

  • R 递归修改⽬录⽂件的权限

chmod命令权限值的格式:
用户表示符 +/-/= 权限字符

权限字符作用
+增加
-删除
=赋予
用户符号含义
u拥有者
g所属组
o其他用户
a所有用户

实例:

  • chmod u+w abc.txt,修改单人单权限
  • chmod o-rwx abc.txt,修改单人多权限
  • chmod u+x, g-rw abc.txt,修改多人多权限

三位8进制数字:

  • chmod 664 abc.txt,(即:拥有者:rw-,所属组:rw-,其他人:r--
  • chmod 640 abc.txt

当我们访问一个文件时,如果没有对应的权限,系统就是拒绝我们的访问

centos下,权限只确定一次,且确定权限的顺序是:拥有者→所属组→其他用户(即先判断是不是拥有者,如果是则按拥有者的权限,如果不是就再判断是不是所属组,以此类推)


2. 修改拥有者

chown

chown命令:
格式:chown [参数] 用户名[:所属组] ⽂件名
前提:必须有root级别的权限才可以修改拥有者(root用户,或者sudo提权)
如,普通用户无法把文件拥有者改成别人:
在这里插入图片描述
root用户:
在这里插入图片描述


chgrp

chgrp命令:
功能:修改⽂件或⽬录的所属组(也需要root权限)
格式:chgrp [参数] 用户组名 ⽂件名
常⽤选项:-R:递归修改⽂件或⽬录的所属组
在这里插入图片描述


5. 缺省权限

如图,创建一个文件的时候,系统自动会给不同角色赋予默认的权限,如这里是664,这就是缺省权限。
在这里插入图片描述
系统在创建的时候,默认权限分别是:文件:666,目录:777


那为什么这里是664呢?
这就要谈到umask

umask

umask是系统中存在的权限掩码,即:凡是umask中出现的权限,最终权限中都不能出现。
在这里插入图片描述

umask四位数字的构成和含义

umask 显示为四位八进制数,其中第一位表示特殊权限位,后三位分别对应所有者、所属组和其他用户的权限掩码

  • 特殊权限位(第一位):这一位用于设置特殊权限,也就是 setuid(4)、setgid(2)和 sticky(1)。例如,若 umask0022,第一位的 0 表示不设置特殊权限
  • 所有者权限掩码(第二位):对应所有者的权限掩码,在 0022 中,第二位的 0 表示不对所有者的默认权限进行屏蔽。
  • 所属组权限掩码(第三位):对应所属组的权限掩码,0022中的第三位 2 表示屏蔽所属组的写权限。
  • 其他用户权限掩码(第四位):对应其他用户的权限掩码,0022 中的第四位 2 表示屏蔽其他用户的写权限。

具体计算方法:最终权限 = 起始权限 & (~umask),其实也是起始权限 - 对应位umask

比如对于所属组:起始权限:111,umask是010,则最终权限:111 & 101 = 101

为什么要有umask呢?

  1. umask可以去除一些不必要的权限,满足需求和保证安全
  2. 配置umask,可以控制新生成的文件的默认权限,满足更多用户的需求

umask也可以修改:
在这里插入图片描述


Linux的多用户之间的“隔离”也是通过这个实现的。当我们新建用户的时候,会在/home目录下创建独立的用户文件,这个文件默认对自身开放所有权限,但是对其他非root用户的权限都禁止。
在这里插入图片描述


t 粘滞位

对于共享类目录(即other都有rwx权限),想让other都能新建文件,但是非文件的拥有者无法删除别人的文件(即使有该目录的w权限),如何实现呢?

方法:目录设置一个"粘滞位"t(在删文件时对权限做再判断)
语法:chmod o+t 目录名

当⼀个⽬录设置了"粘滞位",则该⽬录下的⽂件只能由

  1. 超级管理员删除
  2. 该⽬录的所有者删除
  3. 该⽂件的所有者删除

如,根目录下的tmp就自带t
在这里插入图片描述


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词