Linux的权限

目录

1、用户分类

[1.1 超级用户(root)和普通用户](#1.1 超级用户(root)和普通用户)

[1.2 普通<->超级](#1.2 普通<->超级)

[1.3 sudo](#1.3 sudo)

2、文件和目录的权限

[2.1 chown&&chgrp](#2.1 chown&&chgrp)

[2.1.1 chown](#2.1.1 chown)

[2.1.2 chgrp](#2.1.2 chgrp)

[2.2 chmod](#2.2 chmod)

总结一下:

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

4、共享文件

[4.1 理解多用户隔离](#4.1 理解多用户隔离)

[4.2 /tmp/](#4.2 /tmp/)


1、用户分类

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

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

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

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

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

bash 复制代码
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) 当前用户是文件的创建者 u
组用户(Group) 当前用户是文件所属组的成员 g
其他用户(Others) 既不是所有者也不在组中 o

对于文件的权限

  • r取文件内容

  • w修改文件内容

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

对于目录的权限

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

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

  • xcd目录

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

注意:

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

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

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

2.1 chown&&chgrp

2.1.1 chown

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

bash 复制代码
chown [选项] 新所有者 文件/目录

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

功能:修改文件或目录

bash 复制代码
chgrp [选项] 新组名 文件/目录

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

注意:

  • 允许操作的用户

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

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

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

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

2.2 chmod

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

注意:

  • 允许操作的用户

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

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

bash 复制代码
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/** 就是满足这个需求的目录,其他用户可以创建文件/目录 ,但是只能删自己的文件/目录

相关推荐
GanGuaGua25 分钟前
linux:进程的替换
linux·运维·服务器
梓䈑1 小时前
【Linux系统】详解Linux权限
linux·运维·bash
小茬粥1 小时前
kvm网卡发现的采集信息脚本COLT_CMDB_KVM_NETDISC.sh
linux·kvm
Mr_sun.2 小时前
Day23-Web开发——Linux
linux·运维·服务器
星雨流星天的笔记本2 小时前
1、Linux操作系统下,ubuntu22.04版本切换中英文界面
linux·学习
muxue1782 小时前
centos 7 网络配置(2):ping命令出现问题
linux·网络·centos
唐僧洗头爱飘柔95272 小时前
(云计算HCIP)HCIP全笔记(九)本篇介绍操作系统基础,内容包含:操作系统组成、分类和定义,Linux的特性结构和Linux版本分类
linux·笔记·华为云·云计算·hcip·openeuler·操作系统概述
电鱼智能的电小鱼3 小时前
EFISH-SBC-RK3588 —— 厘米级定位 × 旗舰算力 × 工业级可靠‌
linux·人工智能·嵌入式硬件·边缘计算
yuanlaile3 小时前
Go全栈_Golang、Gin实战、Gorm实战、Go_Socket、Redis、Elasticsearch、微服务、K8s、RabbitMQ全家桶
linux·redis·golang·k8s·rabbitmq·gin
程序员JerrySUN3 小时前
驱动开发硬核特训 · Day 22(上篇): 电源管理体系完整梳理:I2C、Regulator、PMIC与Power-Domain框架
linux·驱动开发·嵌入式硬件