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

[ linux-系统 ] 权限管理

Linux 严格意义上讲是一个操作系统的核心(Kernel),但一般用户不能直接使用 Kernel,而是通过 Kernel 的“外壳”程序,即 Shell,与 Kernel 进行通信。

Shell 的定义:

命令行解释器 (Command Interpreter):将用户的命令翻译给内核 (Kernel) 处理,同时将内核的处理结果翻译给用户

Linux 权限的概念

在 Linux 系统中,权限是用于控制用户对文件和目录的访问级别。它是保障系统安全和数据完整性的重要机制。

Linux 下有两种用户:超级用户 (root) 和普通用户。

超级用户 (root):可以在 Linux 系统下做任何事情,不受限制。
普通用户:只能做有限的事情。

命令提示符

超级用户的命令提示符是 #
普通用户的命令提示符是 $

切换用户的命令:

使用 su [用户名] 命令。
从 root 用户切换到普通用户 user:su user
从普通用户 user 切换到 root 用户:su (默认 root)

linux权限管理

权限=人+事物属性

1.访问者的分类 

分类符号解释
文件和目录的所有者uUser
文件和目录的所有者所在组的用户gGroup
其它用户oOthers

2.文件类型和访问权限

 (1).文件类型

符号解释
d文件夹
-普通文件
l软链接 (类似 Windows 快捷方式)
b块设备文件 (如硬盘、光驱等)
p管道文件
c字符设备文件 (如屏幕等串口设备)
s套接口文件

(2).文件基本权限

  • 文件基本权限是指文件或目录的基本访问权限,通常由 9 个字符组成,分为 3 组,每组 3 个字符,分别表示文件的所有者、用户组和其他用户的权限。
符号权限解释
rRead,对文件而言,读取文件内容权限;对目录而言,浏览该目录信息权限
wWrite,对文件而言,修改文件内容权限;对目录而言,删除和移动目录内文件的权限
x执行Execute,对文件而言,执行文件权限;对目录而言,进入目录的权限
-拥有该项权限

 (3) 权限值表示方法

访问权限的设置

(1) chmod

  • 功能: 设置文件的访问权限。
  • 格式chmod [参数] 权限 文件名
  • 常用选项-R 递归修改目录文件的权限

用户表示符与权限字符: 

符号解释
+增加权限
-取消权限
=赋予权限

用户符号

符号解释
u拥有者
g拥有者同组用户
o其它用户
a所有用户

给所有用户赋权的三种复合使用方法

chmod a=x   # 设置文件所有用户有执行权限
chmod 755  # 使用三位8进制表示法
chmod u+x,g+x,o+wx 

(2) chowm

修改文件拥有者命令:chown

  • 功能: 修改文件的拥有者。
  • 格式chown [参数] 用户名 文件名

(3) chgrp

  • 功能: 修改文件或目录的所属组。
  • 格式chgrp [参数] 用户组名 文件名
  • 常用选项-R 递归修改文件或目录的所属组

(4) umask

  • 功能: 设置或查看新建文件的默认权限掩码
  • 格式: umask [参数] [权限掩码]

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

不同系统可能有差异吗?

创建的时候为什么不可以都是 777?

这些都是因为权限掩码的存在。

 umask 命令用于设置新建文件的默认权限掩码,它决定了新文件创建时的默认权限

  • 新建文件默认权限:
    • 新建文件夹默认权限:0666
    • 新建目录默认权限:0777
    • 默认掩码 0002

掩码的计算:按位取反& 

目录权限

r:查看目录下的内容

w:是否允许在当前路径下创建,更改,删除

x:是否允许用户进入当前目录

下面举个例子,如果有一个共享目录,A用户在里面写了一个文件,并设置除所有者外的用户只能读不能写不能执行,其目的是不想让其他用户修改甚至删除自己写的文件,可是如此一来,B用户具有这个目录的写权限,那么他是不是就可以删除这个目录中的文件,而不用管是否具有这个文件的写权限了吗,这合理吗,显然不合理,为此Linux引入了粘滞位的概念。

粘滞位

以 root 身份给 all 目录添置粘滞位,这样用户就不能随意删除了

当一个目录设置为"粘滞位" (用 chmod + t),则该目录下的文件删除权限如下:

  1. 超级管理员可以删除
  2. 目录所有者可以删除
  3. 文件所有者可以删除

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

相关文章:

  • Android平台FFmpeg视频解码全流程指南
  • Hadoop MapReduce 图文代码讲解
  • C++ 复习(一)
  • 洛谷 P3811:【模板】模意义下的乘法逆元
  • 监控系统进阶方案:OpenObserve的Docker部署与远程访问配置指南
  • 深入理解 java `isAssignableFrom` 方法
  • Qt 通过控件按钮实现hello world + 命名规范(7)
  • 【QT】: 初识 QWidget 控件 | QWidget 核心属性(API) | qrc 文件
  • 【JavaScript】二十九、垃圾回收 + 闭包 + 变量提升
  • 射频前端模组芯片(PA)三伍微电子GSR2337 兼容替代SKY85337, RTC7646, KCT8247HE
  • 组合优化中常用的数据结构
  • Linux系统(OpenEuler22.03-LTS)部署FastGPT
  • 《构建社交应用用户激励引擎:React Native与Flutter实战解析》
  • 2025年3月电子学会等级考试五级题——4、收费站在哪里
  • 安全月演讲比赛活动讲话稿
  • 【deepseek教学应用】001:deepseek如何撰写教案并自动实现word排版
  • 关于MySQL 数据库故障排查指南
  • 「Mac畅玩AIGC与多模态26」开发篇22 - 多项兴趣格式化建议输出工作流示例
  • debian安装docker
  • 克里金模型+多目标优化+多属性决策!Kriging+NSGAII+熵权TOPSIS!
  • GoWeb开发
  • JWT深度解析:现代Web身份验证的通行证-优雅草卓伊凡
  • vue3的深入组件-组件 v-model
  • jquery+ajax+SpringBoot实现前后端分离技术
  • React Native基础环境配置
  • 自学嵌入式 day 16-c语言-第10章 指针
  • 基础算法 —— 二分算法 【复习总结】
  • Ubuntu Linux系统配置账号无密码sudo
  • 差分OPA verilogaA 模型
  • 各厂大模型及其优势