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

Linux的权限

目录

1、用户分类

1.1 超级用户(root)和普通用户

1.2 普通<->超级

1.3 sudo

2、文件和目录的权限

2.1 chown&&chgrp

2.1.1 chown

2.1.2 chgrp

2.2 chmod

总结一下:

3、文件和目录的默认权限

4、共享文件

4.1 理解多用户隔离

4.2 /tmp/


1、用户分类

1.1 超级用户(root)和普通用户

超级用户:可以在 Linux 系统下执行任何操作,几乎不受权限限制。

普通用户:在linux下做有限的操作。一般只能在/home/用户名,自己家操作。

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

创建普通用户 → 设置密码 → 彻底删除普通用户。使用root用户创建用户,就不需要sudo。

sudo useradd -m 用户名    # 创建用户并自动建立家目录(/home/用户名)
sudo passwd 用户名        # 设置密码(交互式输入)
sudo userdel -r 用户名    # 彻底删除用户及其家目录、邮件

1.2 普通<->超级

普通->超级需要root用户的密码,普通用户权限低

su root,root可省略,切换到root用户,路径不变

su - root,root可省略,以root用户身份重新登录路径改变

超级->普通不需要密码,root用户权限高

su 用户名,切换到该用户,路径不变

su - 用户名,以该用户身份重新登录路径改变

1.3 sudo

sudo指令的短暂提权,如:安装软件,需要root的权限。需要用户自己的密码

注意:

只有在/etc/sudoers的这个“白名单”里面,才能使用sudo进行指令的短暂提权

2、文件和目录的权限

访问身份判定条件权限标识
所有者(Owner)当前用户是文件的创建者
组用户(Group)当前用户是文件所属组的成员g
其他用户(Others)既不是所有者也不在组中o

对于文件的权限

  • r取文件内容

  • w修改文件内容

  • x可执行(如果是程序/脚本)。文件的可执行权限(机会)+文件可以执行(能力) = 可执行

对于目录的权限

  • r列出目录内容,如:ls

  • w创建/删除/重命名 目录内文件/目录文件/目录的删除文件/目录本身无关与所在目录的w权限有关

  • xcd目录

如:对于普通文件(对目录一样)

注意:

访问身份只确定一次,按照所有者组用户其他用户的顺序。 

如:Lzc用户有所有者和组用户的访问身份,

但Lzc用户访问时,确定为所有者,就只看所有者对文件的权限了。

2.1 chown&&chgrp

2.1.1 chown

功能:修改文件或目录所有者所有者和组

chown [选项] 新所有者 文件/目录chown [选项] 新所有者:新组 文件/目录
选项作用
-R递归修改(用于目录,同时修改目录内所有子文件、子目录的所有者和组)
2.1.2 chgrp

功能:修改文件或目录

chgrp [选项] 新组名 文件/目录chgrp -R 新组名 目录名/
选项作用
-R递归修改(用于目录,同时修改目录内所有子文件、子目录的组)

注意:

  • 允许操作的用户

    • root 用户(可直接修改任何文件的所有者和组)。

    • 文件所有者(但仅限以下情况):

      • 修改文件/目录时,目标组必须是该用户所属的组(否则需 sudo)。

      • 普通用户不能直接修改文件/目录所有者(需 sudo,即使自己是当前所有者)。

2.2 chmod

功能:设置访问身份(所有者,组,其他用户)对应文件或目录的访问权限。以下以文件为例。

注意:

  • 允许操作的用户

    • 文件/目录的所有者(Owner)。

    • root 用户(超级用户,无限制)。

chmod [选项] 权限模式 文件/目录
选项作用
-R递归修改(用于目录,同时修改目录内所有子文件、子目录的访问权限)

权限模式:

(1)符号模式(u/g/o/a +/-/= r/w/x

符号含义
u文件所有者(user)
g所属组(group)
o其他用户(others)
a所有用户(all)
+添加权限
-移除权限
=直接设置权限

例:可以用,连续操作

a是all,一起操作

=,直接设置

(2)数字模式(3位8进制数)

数字权限
4读(r
2写(w
1执行(x

例:666就是,rw-rw-rw- 

总结一下:

root用户随意

普通用户权限能力 = 访问身份对应的 文件系统权限

身份决定你适用哪组权限规则(u/g/o

文件/目录权限决定具体的操作许可(rwx

3、文件和目录的默认权限

普通文件起始权限 666,默认不带可执行x。如:gcc后,会自动加x。

普通目录起始权限 777,一般都要r(如:ls),w(修改),x(如:cd)。

但是,还存在一个umask权限掩码。想要临时修改umask,如:umask 002。

默认权限 = 起始权限 & (~umask)umask后三位八进制参与位运算

效果:umask中出现(为1)权限,都不会在默认权限中出现(为0),可以灵活控制文件/目录的默认权限

4、共享文件

4.1 理解多用户隔离

普通用户都在/home/下。

任何用户(root用户例外)不能进入其他用户的家目录。

4.2 /tmp/

需求:任何人都能新建文件/目录,但是非所有者不能删除该文件(只能删自己的文件/目录)。

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

  1. 超级用户(root)可以删除

  2. 该目录的所有者可以删除

  3. 文件的所有者可以删除

其他用户即使有写权限(w)也无法删除这些文件。

/tmp/就是满足这个需求的目录,其他用户可以创建文件/目录,但是只能删自己的文件/目录

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

相关文章:

  • RISC-V MCU定时器架构与低功耗设计
  • Redis ssd是什么?Redis 内存空间优化的点都有哪些?embstr 和 row、intset、ziplist分别是什么?
  • 区块链:去中心化应用(DApp)开发全流程解析
  • 区块链基石解码:分布式账本的运行奥秘与技术架构
  • Java 深度与实战 · 每日一读 :高频面试真题解析 · ReentrantLock / CAS / AQS 篇
  • 智慧水库与AI深度融合的实现方案及典型应用场景
  • CREATION OF UNIVERSES FROM NOTHING
  • 练习普通话,声音细柔和
  • Spring Boot配置中YAML文档结构的理解
  • Nacos-SpringBoot 配置无法自动刷新问题排查
  • React自定义Hook之useMutilpleRef
  • CD33.【C++ Dev】初识模版
  • 深度学习4.1 多层感知机
  • 基础的贝叶斯神经网络(BNN)回归
  • 【C++详解】C++入门(二)引用、内联函数、nullptr宏
  • 23种设计模式-行为型模式之备忘录模式(Java版本)
  • MSO-Player:基于vlc的Unity直播流播放器,支持主流RTSP、RTMP、HTTP等常见格式
  • Python包的编译、构建与打包指南
  • 解析 OpenHarmony、HarmonyOS 与 HarmonyOS Next:优雅草卓伊凡的观点
  • AI医疗革命:DeepMind CEO展望十年内攻克疾病难题
  • 权力结构下的人才价值重构:从 “工具论” 到 “存在论” 的转变​
  • 《深入浅出Git:从版本控制原理到高效协作实战》​
  • AOSP Android14 Launcher3——Launcher的状态介绍LauncherState类
  • 文章记单词 | 第49篇(六级)
  • 20250427 对话1: 何东山的宇宙起源理论
  • Java学习-Java基础
  • JavaEE-多线程实战01
  • VScode在 Markdown 编辑器中预览
  • err: Error: Request failed with status code 400
  • 大模型——Spring.new快速构建AI驱动的定制化商业应用