当前位置: 首页 > news >正文

Linux:权限的理解

目录

引言:为何Linux需要权限?

一、用户分类与切换

1.1、用户角色

1.2、用户切换命令

二、权限的基础概念

2.1、文件属性

三、权限的管理指令

3.1、chmod:修改文件权限

3.2、chown与chgro:修改拥有者与所属组

四、粘滞位与umask

4.1、问题1:起始权限问题

 4.2、关于目录权限


引言:为何Linux需要权限?

想象一下,你的私人日记被陌生人随意修改,或是公司服务器上的关键数据被误删——这类风险在Linux系统中通过权限机制得以有效防范。
作为多用户操作系统的核心安全特性,Linux权限不仅保护用户隐私,还确保系统稳定性。本文将带你深入理解权限管理的每个细节。


一、用户分类与切换

Linux中,不同用户有着不同的权限。所以在讲解权限之前,先了解用户概念:

1.1、用户角色

  • 超级用户(root):

        权限最高,可执行任何操作(如修改系统文件、管理用户)

        类似windows的管理员,但权限比它更大。

  • 普通用户:

        Linux中除了root用户,其他都是普通用户。

        普通用户受权限约束,操作受限。

1.2、用户切换命令

  • su + 用户名 :切换用户身份(需要输入目标用户密码)    
  • exit或ctrl+D:退回原用户    

  • sudo命令:临时以root权限执行命令(需当前用户密码)
sudo apt update  # 普通用户临时提权更新系统

不过目前我们用adduser新建的用户,没有办法执行sudo,因为系统不信任你。除非将普通用户添加到系统的白名单里。普通用户需被添加到/etc/sudoers文件才可使用。

userA ALL=(ALL:ALL) ALL   # 允许userA使用sudo执行所有命令

二、权限的基础概念

2.1、文件属性

一个文件创建出来无非就是读/写,有些文件还可执行。

而每个文件/目录的权限由三组角色控制:

  • 拥有者(Owner):文件创建者,拥有最高控制权。

  • 所属组(Group):共享权限的用户组(如开发团队)。

  • 其他人(Others):系统内其他所有用户。

文件类型:
d:文件夹

-:普通文件(文本文件,二进制文件等)

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

  • 读(r)

    • 文件:查看内容(如cat test.txt)。

    • 目录:列出内容(如ls /dir)。

  • 写(w)

    • 文件:修改内容(如vim test.txt)。

    • 目录:创建或删除文件(需配合x权限)。

  • 执行(x)

    • 文件:运行脚本或程序(如./install.sh)。

    • 目录:进入目录(如cd /project)。

  • 无权限(-)

通过ll指令查看文件属性,下面有详细说明:

以上图test.txt为例说明:

  • test.txt:文件类型是普通文件,拥有者权限可读可写不可执行,所属组权限可读可写不可执行,其他人权限可读不可写不可执行

三、权限的管理指令

3.1、chmod:修改文件权限

符号模式:直观增删权限。

chmod u+rwx,g+rx,o-r test   # 拥有者加rwx,组加rx,其他人去r

  • u(user拥有者)、g(group所属组)、o(other其他)、a(所有角色)

数字模式(八进制):快速设置权限。

chmod 755 test   # rwxr-xr-x(7=4+2+1, 5=4+1)
  • r=4, w=2, x=1,按角色顺序组合。

3.2、chown与chgro:修改拥有者与所属组

修改拥有者与所属组

chown alice:developers test.txt   # 将文件拥有者设为alice,组设为developers

仅修改s所属组(需root权限):

sudo chgrp team /project/   # 将目录/project的组设为team

四、粘滞位与umask

4.1、问题1:起始权限问题

为什么我们创建普通文件的默认权限是:664,目录文件的默认权限是:775   ???

补充知识:
1、默认给普通文件的起始权限其实是666

2、默认给目录文件的起始权限其实是777

3、权限掩码(umask):凡是在umask中出现的权限,不会再最终的文件权限中出现,默认权限掩码是0002

4、最终权限 = 起始权限 & (~umask)


 4.2、关于目录权限

对于目录文件:
r:
是否允许我们查看指定目录下的文件内容

w:是否允许我们在当前目录下进行创建、更改、删除

x:是否允许用户进入对应的目录

mkdir demo
chmod 300 demo     # 权限为-wx--x---(可进入但不可查看内容)
cd demo            # 允许进入(有x)
touch file.txt     # 失败!需目录的w权限

1、普通用户自己的家目录权限是700,这意味着我在我的家目录下创建的文件,别人都看不到

2、有时,我们多个用户想进行文件数据的共享。那么我们所建立的共享文件不能再任何一个人的家目录下

3、一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定

4、如果我们去掉了共享文件目录的w权限,我们也无法创建文件,无法共享

5、粘滞位:给目录设置,一般是文件共享,大家可以在目录进行各自文件的增删查改,只允许文件拥有者或 root 能删这个文件,其他人一概不允许,t是一种特殊的x权限。

相关文章:

  • 湖北理元理律师事务所:债务法律服务的民生价值重构
  • 人工智能应用:从技术突破到生态重构的演进之路
  • MySQL JOIN详解:掌握数据关联的核心技能
  • 使用 vllm 部署 Llama3-8b-Instruct
  • simulink使能子系统的四种配置
  • 【云备份】服务端业务处理模块设计与实现
  • 2.在Openharmony写hello world
  • 解决跨域的4种方法
  • Redis 中简单动态字符串(SDS)的深入解析
  • 基于Redis实现优惠券秒杀——第3期(分布式锁-Redisson)
  • Java学习手册:Spring 多数据源配置与管理
  • 【题解-洛谷】B4303 [蓝桥杯青少年组省赛 2024] 字母移位
  • kotlin 02flow-sharedFlow 完整教程
  • PyCharm 安装教程
  • Docker(三):DockerFile
  • 从零开始学Flink:开启实时计算的魔法之旅
  • 【RocketMQ Broker 相关源码】-注册 broker 信息到所有的 NameServer
  • 【Spring Boot】Spring Boot + Thymeleaf搭建mvc项目
  • Kubernetes控制平面组件:Controller Manager 之 内置Controller详解
  • SpringBoot企业级开发之【文章列表(条件分页)】
  • 上市不足一年,吉利汽车拟私有化极氪并合并:整合资源,杜绝重复投入
  • 吴清稳市场稳预期发布会十要点:谈平准基金、股市稳定、公募改革和巴菲特
  • 前瞻|中俄元首今年将首次面对面会晤,专家:国际变局中构建更坚韧的合作架构
  • 牛市早报|“五一”假期预计跨区域人员流动量累计14.67亿人次
  • 贵州游船侧翻248名消防员已在搜救
  • 文旅局局长回应游客住家里:“作为一个宣恩市民我也会这么做”