【云计算学习之路】学习Centos7系统-权限管理

Linux下权限管理

Linux权限的用途

权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过该机制限制不同用户/用户组对文件的操作行为。

系统中每个进程均以某一用户身份运行,进程权限等同于对应用户权限,用户权限越大,对应进程权限越高。


Linux权限说明

Linux 中每个文件都具备三类基础权限,作用区分如下:

权限 对文件的影响 对目录的影响
r(只读) 可读取文件内容 可列出目录内容
w(写入) 可修改文件内容 可在目录内创建、删除文件
x(执行) 可将文件当作命令执行 可进入、访问目录内部
目录必须拥有 x 权限,否则无法正常进入查看内容

UGO 权限模型

  • Linux 权限基于 UGO 模型管控
text 复制代码
U = User  代表文件所有者
G = Group 代表文件所属组
O = Other 代表其他所有用户

文件权限分为三组 rwx,依次对应 U、G、O
每个文件绑定专属属主与属组,非属主、非属组用户匹配 Other 权限

查看文件权限信息

使用 ls -l 命令查看文件完整属性

bash 复制代码
[root@itocean ~]# ls -l
total 2206976
-rw-r--r-- 1 root root     545051 May  9 10:29 100w.zip
-rw-r--r-- 1 root root 2165742151 May  9 10:13 2024-2026.zip
-rw-r--r-- 1 root root   93640286 May  9 10:30 aaaa.zip
drwxr-xr-x 3 root root       4096 Apr 20 12:31 gitee
字段拆分 示例内容 详细解释
文件类型 - 普通文件;d目录;l软链接
属主权限 rw- 文件所有者:可读、可写、无执行权限
属组权限 r-- 同组用户:仅可读
其他权限 r-- 外来用户:仅可读
硬链接数 1 文件硬链接统计数量
所属用户 root 文件拥有者
所属组 root 文件归属用户组
文件大小 2165742151 单位:字节
修改时间 May 9 10:13 文件最后修改时间
文件名称 2024-2026.zip 文件名

权限变更操作

一、符号方式修改权限 chmod

语法规则

text 复制代码
u 属主  g 属组  o 其他  a 全部用户
+ 增加权限  - 移除权限  = 直接设定权限

实操示例

bash 复制代码
# 查看原始权限
[root@itocean ~]# ls -l aaaa.zip 
-rw-r--r-- 1 itocean cloud 93640286 May  9 10:30 aaaa.zip

# 给属主添加执行权限
[root@itocean ~]# chmod u+x aaaa.zip 
# 设定属组为读写执行
[root@itocean ~]# chmod g=rx aaaa.zip 
# 移除其他用户读权限
[root@itocean ~]# chmod o-r aaaa.zip 

# 查看修改后权限
[root@itocean ~]# ls -l aaaa.zip 
-rwxr-x--- 1 itocean cloud 93640286 May  9 10:30 aaaa.zip

二、数字方式修改权限 chmod

权限数值规则

  • r (读) = 4( 2 2 2^2 22)
  • w (写) = 2( 2 1 2^1 21)
  • x (执行) = 1( 2 0 2^0 20)

常用权限组合

  • rw- = 4+2 = 6
  • r-x = 4+1 = 5
  • rwx = 4+2+1 = 7
  • r-- = 4
  • -wx = 3
  • --x = 1
  • --- = 0

三位数字含义

  1. 第一位:属主权限
  2. 第二位:属组权限
  3. 第三位:其他用户权限

通用默认权限

  • 644 = rw-r--r-- 普通文件默认权限
  • 755 = rwxr-xr-x 目录/脚本默认权限
  • 777 = rwxrwxrwx 全开所有权限

数字权限实操

bash 复制代码
# 统一设置为755权限
[root@itocean ~]# chmod 755 aaaa.zip
[root@itocean ~]# ls -l
total 2206976
-rw-r--r-- 1 root    root      545051 May  9 10:29 100w.zip
-rw-r--r-- 1 root    root  2165742151 May  9 10:13 2024-2026.zip
-rwxr-xr-x 1 itocean cloud   93640286 May  9 10:30 aaaa.zip
drwxr-xr-x 3 root    root        4096 Apr 20 12:31 gitee

三、修改文件所属用户与组

1. chown 修改属主+属组

bash 复制代码
# 格式:chown 用户名:组名 文件名
[root@itocean ~]# chown itocean:itocean aaaa.zip
[root@itocean ~]# ls -l
total 2206976
-rw-r--r-- 1 root    root        545051 May  9 10:29 100w.zip
-rw-r--r-- 1 root    root    2165742151 May  9 10:13 2024-2026.zip
-rw-r--r-- 1 itocean itocean   93640286 May  9 10:30 aaaa.zip
drwxr-xr-x 3 root    root          4096 Apr 20 12:31 gitee

2. chgrp 仅修改所属组

bash 复制代码
[root@itocean ~]# chgrp cloud aaaa.zip
[root@itocean ~]# ls -l
total 2206976
-rw-r--r-- 1 root    root      545051 May  9 10:29 100w.zip
-rw-r--r-- 1 root    root  2165742151 May  9 10:13 2024-2026.zip
-rw-r--r-- 1 itocean cloud   93640286 May  9 10:30 aaaa.zip
drwxr-xr-x 3 root    root        4096 Apr 20 12:31 gitee

递归批量修改权限

如需一次性修改整个目录+内部所有文件 ,加 -R 递归参数

测试目录环境

bash 复制代码
[root@itocean ~]# ls -ld /mnt
drwxr-xr-x. 5 root root 4096 May 21 09:10 /mnt
[root@itocean ~]# ls -l /mnt
total 0
-rw-r--r-- 1 root root 0 May 21 09:10 10.txt
-rw-r--r-- 1 root root 0 May 21 09:10 1.txt
-rw-r--r-- 1 root root 0 May 21 09:10 2.txt
-rw-r--r-- 1 root root 0 May 21 09:10 3.txt
-rw-r--r-- 1 root root 0 May 21 09:10 4.txt
-rw-r--r-- 1 root root 0 May 21 09:10 5.txt
-rw-r--r-- 1 root root 0 May 21 09:10 6.txt
-rw-r--r-- 1 root root 0 May 21 09:10 7.txt
-rw-r--r-- 1 root root 0 May 21 09:10 8.txt
-rw-r--r-- 1 root root 0 May 21 09:10 9.txt

递归修改权限

bash 复制代码
[root@itocean ~]# chmod -R 777 /mnt
[root@itocean ~]# ls -ld /mnt
drwxrwxrwx. 5 root root 4096 May 21 09:10 /mnt
[root@itocean ~]# ls -l /mnt
total 0
-rwxrwxrwx 1 root root 0 May 21 09:10 10.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 1.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 2.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 3.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 4.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 5.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 6.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 7.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 8.txt
-rwxrwxrwx 1 root root 0 May 21 09:10 9.txt

递归修改属主属组

bash 复制代码
[root@itocean ~]# chown -R itocean:itocean /mnt
[root@itocean ~]# ls -ld /mnt
drwxrwxrwx. 5 itocean itocean 4096 May 21 09:10 /mnt
[root@itocean ~]# ls -l /mnt
total 0
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 10.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 1.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 2.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 3.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 4.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 5.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 6.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 7.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 8.txt
-rwxrwxrwx 1 itocean itocean 0 May 21 09:10 9.txt

递归仅修改所属组

bash 复制代码
[root@itocean ~]# chgrp -R cloud /mnt
[root@itocean ~]# ls -ld /mnt
drwxrwxrwx. 5 itocean cloud 4096 May 21 09:10 /mnt
[root@itocean ~]# ls -l /mnt
total 0
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 10.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 1.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 2.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 3.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 4.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 5.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 6.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 7.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 8.txt
-rwxrwxrwx 1 itocean cloud 0 May 21 09:10 9.txt

权限掩码 umask

作用

umask 决定新建文件、目录的默认初始权限

计算规则

  • 目录默认最大权限:777
  • 文件默认最大权限:666
  • 实际权限 = 最大权限 - umask 值

系统默认值

  • root 用户默认 umask:022
  • 普通用户默认 umask:002

权限计算示例

  1. root 用户

    新建文件:666 - 022 = 644

    新建目录:777 - 022 = 755

  2. 普通用户

    新建文件:666 - 002 = 664

    新建目录:777 - 002 = 775

常用命令

bash 复制代码
# 查看当前umask值
umask
# 临时修改umask
umask 022

Linux 特殊权限

除基础 rwx 权限外,系统还有三类高级特殊权限

权限 数值 作用说明
SUID 4 文件属主身份执行程序,而非当前执行用户
SGID 2 目录内新建文件自动继承目录所属组
Sticky 1 防误删目录:仅文件所有者可删除自己文件

设置方式

符号设置

bash 复制代码
chmod u+w 文件名    # 加SUID
chmod g+s 文件名    # 加SGID
chmod o+t 目录名    # 加粘滞位

数字组合设置

格式:特殊权限+普通三位权限

示例:

bash 复制代码
# 4 代表SUID,755普通权限
chmod 4755 test.sh
相关推荐
闲猫4 分钟前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端
2023自学中24 分钟前
imx6ull 开发板 贪吃蛇, C++11 SDL2 无硬件GPU优化版
linux·c++
你驴我1 小时前
WhatsApp 消息撤回与编辑的幂等性设计实践
java·服务器·前端·后端·python
tiannian12201 小时前
RFID资产管理系统投入产出全拆解:硬件、软件、部署、运维四笔账一次算清
运维·rfid·资产管理系统
我头发多我先学1 小时前
Linux入门:简要认识Linux和基础指令
linux·运维·服务器
weixin_666593991 小时前
自然资源时空智能体建设方案:从数字化到智能化的演进路径
大数据·人工智能·大模型·云计算·agent·云平台·空间数据库
Urbano2 小时前
职业工装外套核心缝制工序自动化替代分析与多品牌设备选型报告
运维·自动化
逍遥德2 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker
名字还没想好☜2 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
冰封之寂2 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器