Linux系统中的权限问题

在 Linux 系统中,用户身份管理是系统安全与权限控制的基石。主要分为两类用户:

  • Root 用户(超级管理员):拥有系统的最高权限,可以执行任何操作,包括安装软件、修改系统配置、管理其他用户等。
  • 普通用户:权限受限,只能操作自己的文件和目录,无法影响系统整体环境

身份切换

su:切换到 root 用户
su - yyy:切换到普通用户yyy

sudo:指令的短暂提权

比如:安装软件,安装到系统中,需要管理员root权限------其实只安装了一份,允许大家同时使用

权限

权限的本质是能不能做什么事情

我们为什么要将用户进行区分呢?全都一样不是更好管理吗?

  1. 控制用户行为,防止一些不必要的错误发生
  2. 权限首先限制的对象是角色(人)。要求必须具有对应属性的角色才可以对文件进行对应的操作

权限 = 角色 + 目标属性
Linux下一切皆文件,面对的所有内容本质上都是文件。如果是文件就存在对应的属性:读(r)、写(w)、执行(x)

在Linux中所有的角色都被分为三大类:

  1. 拥有者
  2. 所属者
  3. other

当我们在一个目录下执行ll命令时,会出现以上图片的内容。

其中第一个yls是拥有者的名字,第二个yls则是所属组的名字。那other呢?为什么不显示other?很简单。other不需要记录

拥有者很好理解,即谁拥有这个文件,谁就是这个文件的拥有者。
那什么是所属组?为什么要有所属组?

所属组是 Linux 中一组用户的集合。简单来说,拥有者代表哪个用户拥有这个文件,这个用户属于哪个用户组,这个用户组就拥有这个文件。所属组代表哪个用户组拥有它。
更精细化的权限管理,首先要有更精细化的角色身份。

第一个-代表的是文件类型,这个在后面再细说。接下来9个字符代表的是各个角色的文件权限。

其中r代表允许读w代表允许写x代表允许执行。没有对应字母则代表该角色没有对应权限,无法执行对应操作。

那我们是否可以修改文件的对应权限呢?如果可以,如何操作?

复制代码
chmod u-r my.txt:拥有者,删去r权限
chmod u+r my.txt:拥有者,加上r权限
chmod g-r my.txt:所属组,删去r权限
chmod g+r my.txt:所属组,加上r权限
chmod a+r my.txt:所有人加上r权限
chmod o+r my.txt:other加上r权限

重点:

  1. 能改任何人的文件权限吗?用户只能更改自己的文件权限
  2. 没有权限会怎么样?无法操作,被系统拒绝访问
  3. 确认权限信息是,系统会先确认用户是谁?拥有者,所属组还是other?
    在centos下,用户角色确定只确定一次,顺序是:拥有者,所属者,other
  4. root用户的权限?不受权限约束
  5. 如何理解可执行?可执行权限 != 文件可以执行
    可执行是允许执行,不拦着你

修改角色

首先我们需要直到,系统默认不允许我们将文件给别人。想要将文件给别人,必须要有高权限。即root权限。
sudo chown yls::yls cmd: 修改后,cmd文件的拥有者是yls,所属组也是yls

修改文件权限

两态的:可以看成二进制

允许读 r(1) 不允许读 -(0)

允许写 w 不允许写 -

允许执行 x 不允许执行 -

因为文件权限可以看作二进制,因此我们可以直接使用chmod+八进制直接修改文件权限:

(注意看code.c文件的权限变化)

几个重要问题

想进入一个目录,需要什么权限?

需要可执行权限(x权限)

rw权限对于目录意味着什么?

如果对目录没有r,就无法查看目录里面的文件

如果对目录没有w,就无法在指定目录新建文件

Linux多用户之间怎么互相隔离?

任何用户都无法进入其他用户的家目录!

为什么默认权限是我们看到上面的这样?

对于普通文件 来讲:起始权限是666,默认不带可执行

对于目录文件 来讲:起始权限是777,默认携带可执行

umask

我们可以看到最终权限和我们设定的权限不太一样,这是为什么呢?
因为系统中会存在一个叫做权限掩码的概念:最终权限 = 起始权限 & (~umask)

  1. umask目的是什么?希望凡是在umask中出现的权限,都不允许在最终权限中出现
  2. 为什么要有umask?
    a.默认权限,有OS自主决定,无法在创建前进行修改------系统可配置,可以灵活满足需求的一种表现
    b.特殊情况下,配置umask,可以控制文件的默认权限,让我们的艾玛都是可控的

umask是可以修改的。

umask 0777:就是把umask权限修改成0777

粘滞键

一个文件是否能被删除,与文件本身无关!与文件所处的目录的w权限有关。

对于共享类文件,不想让非文件拥有者删除对应的文件!

任何一个人都能在共享目录下新建,但是不能让非文件拥有者删除==>权限标志位:t,粘滞位:chmod +t 对应目录。

特征:只能给需要共享的目录添加粘滞位

相关推荐
青花瓷3 小时前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
mzhan0173 小时前
Linux: lock: preempt_count 是一个线程级别的变量
linux·lock
问简3 小时前
docker 镜像相关
运维·docker·容器
Dream of maid4 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾4 小时前
统信系统UOS常用命令集
linux·运维·服务器
Benszen4 小时前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…4 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
一叶知秋yyds6 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
专吃海绵宝宝菠萝屋的派大星6 小时前
使用Dify对接自己开发的mcp
java·服务器·前端