【云计算学习之路】学习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
相关推荐
我先去打把游戏先11 小时前
Ubuntu虚拟机(服务器版本)Git安装教程(附常用命令)——从零开始掌握版本控制
服务器·c语言·c++·git·嵌入式硬件·物联网·ubuntu
xhbh66611 小时前
MC端口映射完全教程:路由器虚拟服务器配置+防火墙放行+内网穿透备用方案
运维·服务器·网络·网络协议·tcp/ip·智能路由器·流量端口转发
weixin_4261507011 小时前
AI辅助Oracle容量规划:告别拍脑袋扩容
运维·数据库·人工智能·oracle
code monkey.11 小时前
【Linux之旅】Linux 网络基础全解析:从协议分层到 Socket 编程,构建高性能网络服务的底层基石
linux·网络·php
程序猿编码11 小时前
大模型的“文字障眼法“:FlipAttack 文本反转越狱技术全解析
linux·python·ai·大模型
吃好睡好便好11 小时前
在Matlab中绘制质点运动轨迹图
开发语言·学习·算法·matlab·信息可视化
艾莉丝努力练剑11 小时前
【Linux网络】Linux 网络编程:HTTP(四)从手写服务器到生产级 Nginx 与 cpp-httplib 实战
linux·运维·服务器·网络·c++·nginx·http
Yunzenn11 小时前
深度分析字节最新研究cola-DLM第 01 章:语言生成的三次范式之争 —— 从 RNN 到 AR 到扩散
linux·人工智能·rnn·深度学习·机器学习·架构·transformer
楼田莉子11 小时前
C#学习之C#入门学习
开发语言·后端·学习·c#