【云计算学习之路】学习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
相关推荐
江畔柳前堤10 小时前
第17章:Docker 大厂面试题精选(腾讯/阿里/字节/美团)
运维·网络·spring cloud·docker·容器·eureka
远离UE410 小时前
UE5 各类型灯光学习
学习·ue5
Biomamba生信基地10 小时前
FindNeighbors()函数报错object ‘CsparseMatrix_validate’ not found
linux·运维·服务器·生物信息学
New农民工10 小时前
射频芯片学习-dBm概念
学习·射频学习
SkyWalking中文站12 小时前
认识 Horizon UI · 11/17:运行时规则与实时调试
运维·监控·自动化运维
十月的皮皮14 小时前
C语言学习笔记20260703-牛牛与后缀表达式(逆波兰表达式)
c语言·笔记·学习
阿里云大数据AI技术1 天前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
花千烬2 天前
crictl info 连不上 containerd 怎么办?endpoint、socket 与权限一次查清
云计算
你好潘先生2 天前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
orion572 天前
Missing Semester Class1:course overview and introduction of shell
linux