当前位置: 首页 > 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权限。

http://www.xdnf.cn/news/286039.html

相关文章:

  • 健康养生:从生活点滴启航
  • 解决pycharm检测不到已经装好的conda的pytorch环境
  • 项目成本管理_挣得进度ES
  • 网络:cookie和session
  • 【硬核攻坚】告别CUDA OOM!DeepSeek部署显存瓶颈终极解决方案:三大策略高效落地
  • [特殊字符]Git 操作实战:如何将本地项目提交到远程 Gitee 仓库
  • RocketMQ与Kafka的区别
  • Nuxt3还能用吗?
  • 直方图反向投影
  • Three.js + React 实战系列 - 项目展示区开发详解 Projects 组件(3D 模型 + 动效 + 状态切换)✨
  • android-ndk开发(2): macOS 安装 ndk
  • PyTorch_自动微分模块
  • 时间同步服务核心知识笔记:原理、配置与故障排除
  • 因为gromacs必须安装cuda(系统自带的NVIDIA驱动不行),这里介绍下如何安装cuda
  • 学习路线(机器人软件架构)
  • Java常用注解大全(基于JDK17+SpringBoot3)
  • 对ubuntu的简单介绍
  • Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
  • 题目 3321: 蓝桥杯2025年第十六届省赛真题-画展布置
  • SpringMVC 框架核心知识点详解与实战
  • 精益数据分析(41/126):深入解读移动应用商业模式的关键指标与策略
  • linux 高并发 文件句柄数 fs 及 tcp端口数调优
  • 泉州2025年首次网签备案登记的商品住宅并在本年度进行装修、改造及家装物品和材料购置的,在上述补贴额度的基础上上浮2万元,单个产权人补贴最高不超过5万元。
  • VScode中关于Copilot的骚操作
  • ByteArrayOutputStream 类详解
  • 基于yolov11的打电话玩手机检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • 一文说清-什么是强化学习
  • zst-2001 历年真题 程序设计语言
  • 代码随想录算法训练营 Day37 动态规划Ⅴ 完全背包 零钱兑换
  • 【Java ee初阶】多线程(7)