Linux12位权限管理体

news/2024/11/13 20:38:38/文章来源:https://www.cnblogs.com/liaofy/p/18544738

1. Linux12位权限管理体

1.1 权限管理概述

  • Linux通过rwx3种权限控制系统与保护系统,组成9位权限.
  • Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系.
  • Linux这简单的rwx控制整个Linux系统的安全,权限与用户共同组成Linux系统的安全防护体系.

1.2 Linux权限计算

2.0 rwx

权限 含义
r read 是否可读
w write 是否可写
x execute 是否可执行(一般是命令,脚本)

2.1 何为9位权限?

  • Linux下面任何一个文件/目录与用户的关系有3种关系
文件/目录与用户的关系 含义
所有者 这个文件或目录属于某个用户(所有者)。你自己
用户组(家庭) 这个文件或目录属于某个用户组(家庭)。家人。
其他人(陌生人) 这个文件或目录不属于某个用户 也不属于这个用户组。隔壁老王
  • 如何快速知晓文件或目录的所有者情况

image

  • 9位权限与用户关系
    • 确定你当前是什么用户
    • 确认用户与文件关系(所有者,用户组,其他人)
    • 根据关系获取对应的权限

image

2.2 如何计算权限

人们为了更加方便的使用权限,于是给每个权限字母设置了一个对应的数字,通过数字表示对应的权限。

权限 含义 权限对应的数字
r read 是否可读 4
w write 是否可写 2
x execute 是否可执行(一般是命令,脚本) 1
- 没有权限 0
-rw-r--r--.  1 root root    0 7月  18 08:53 oldboy01.txt
420 400 400
6    4   4
oldboy01.txt的权限是644
  • 习题案例
字母 ----> 数字
-rwxr-xr-x 755   
-r -r -r - 444  
-r -rw-rw- 466  数字 ----->字母(文件)
644   -rw-r--r--
750   -rwxr-x--- 
700   -rwx------
600   -rw-------

2.3 修改权限

chmod命令: change mode 使用数字或字母形式修改权限。

chown命令: change owner 修改文件所有者,用户组。

# 修改oldboy.txt的权限为755.
chmod 755 oldboy.txt # 修改oldboy.txt所有者和用户组为oldboy(存在)。
chown oldboy.oldboy oldboy.txt

image

chmod 基于字符形式的权限设置:

image

chmod u+rw oldboy.txt
ll oldboy.txt
chmod u+rw,g+r,o+r oldboy.txt
ll oldboy.txt
-rw-r--r--. 1 1888 1888 0 8月  22 17:27 oldboy.txt
  • 案例:给/etc/rc.d/rc.local(所有位置)增加执行权限
# chmod u+x,g+x,o+x /etc/rc.d/rc.local
# chmod ugo+x /etc/rc.d/rc.local
# chmod a+x /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local   最后的必会。
-R 改所有(危险)

chmod字符形式说明:主要掌握增加执行权限即可,其他情况一般使用数字形式即可。

2. 权限与文件,目录

1. 概述

权限 文件 目录(教室)
r 是否可以读取文件内容 是否可以查看目录内容,需要x权限配合
w 是否可以修改文件内容,一般还需要r权限配合. 是否可以在目录中创建,删除,重命名文件权限,需要x权 限配合
x 是否可以执行文件,(命令,脚本),一般还需要r权限 配合. 是否可以进入目录,是否可以访问目录下文件属性

2. 测试文件权限

  • 通过root修改权限,oldboy用户测试权限
mkdir -p /oldboy-mode/
echo 'hostname' > /oldboy-mode/oldboy.sh
ll /oldboy-mode/oldboy.sh
chown oldboy.oldboy /oldboy-mode/oldboy.sh
chmod 777 /oldboy-mode/oldboy.sh
  • root用户整体测试读,写,执行
[root@myvps oldboy-mode]# ll oldboy.sh 
-rwxrwxrwx. 1 1888 1888 9 9月   9 16:22 oldboy.sh
# 读取权限
[root@myvps oldboy-mode]# cat oldboy.sh 
hostname
# 写入权限
[root@myvps oldboy-mode]# echo 'whoami' >>oldboy.sh 
# 执行权限
[root@myvps oldboy-mode]# /oldboy-mode/oldboy.sh 
myvps
root
[root@myvps oldboy-mode]# ./oldboy.sh 
myvps
root
前提要有x
  • root 用户-修改权限

    root 修改 chmod u=r oldboy.sh

![image-20240909215404738](1. Linux12位权限管理体.assets/image-20240909215404738.png)

  • oldboy 查看

![image-20241013214942262](1. Linux12位权限管理体.assets/image-20241013214942262.png)

[oldboy@myvps oldboy-mode]$ cat oldboy.sh 
hostname
whoami
pwd
whoami
[oldboy@myvps oldboy-mode]$ ll 
总用量 4
-r-----r--. 1 1888 1888 27 10月 13 15:55 oldboy.sh
[oldboy@myvps oldboy-mode]$ echo 'pwd' >>oldboy.sh   # 没有 w权限导致的
-bash: oldboy.sh: 权限不够
[oldboy@myvps oldboy-mode]$ ./oldboy.sh      # 没有  x权限导致的
-bash: ./oldboy.sh: 权限不够
  • root 修改 chmod o=w oldboy.sh

image

  • oldboy 查看

image

image

oldboy@myvps oldboy-mode]$ ll 用量 4
--w-------. 1 oldboy oldboy 27 10月 13 15:55 oldboy.sh
[oldboy@myvps oldboy-mode]$ cat oldboy.sh 
cat: oldboy.sh: 权限不够
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ echo 'pwd' >> oldboy.sh 
[oldboy@myvps oldboy-mode]$ ./oldboy.sh
-bash: ./oldboy.sh: 权限不够

得出小结论:

核心:对于文件来说只有w权限不够,需要有r权限配合.

如果文件只有w只能通过追加方式写入,如果vi/vim写入会清空文件内容只留最新的(:wq!)。

  • root 修改 chmod u=x oldboy.sh

image

  • oldboy 查看

image

[oldboy@myvps oldboy-mode]$ ll 
总用量 4
---x------. 1 oldboy oldboy 30 10月 13 16:27 oldboy.sh
[oldboy@myvps oldboy-mode]$ cat oldboy.sh 
cat: oldboy.sh: 权限不够
[oldboy@myvps oldboy-mode]$ echo 'hostname' >>oldboy.sh 
-bash: oldboy.sh: 权限不够
[oldboy@myvps oldboy-mode]$ ./oldboy.sh 
bash: ./oldboy.sh: 权限不够
[oldboy@myvps oldboy-mode]$ 

小结论:

x权限需要 r 配合

  • 增加了rw权限后测试
[root@myvps oldboy-mode]# chmod u+r oldboy.sh 
[root@myvps oldboy-mode]# ll 
总用量 4
-r-x------. 1 oldboy oldboy 30 10月 13 16:27 oldboy.sh
[oldboy@myvps oldboy-mode]$ ll 
总用量 4
-r-x------. 1 oldboy oldboy 30 10月 13 16:27 oldboy.sh
[oldboy@myvps oldboy-mode]$ cat oldboy.sh 
echo oldboy linux
pwd 
whoai[oldboy@myvps oldboy-mode]$ ./oldboy.sh 
oldboy linux
/oldboy-mode
./oldboy.sh:行3: whoai: 未找到命令
[oldboy@myvps oldboy-mode]$ echo '996' >>oldboy.sh 
-bash: oldboy.sh: 权限不够

image

3.测试目录权限

  • 环境
环境准备:
mkdir -p /oldboy-mode/oldboydir/
touch /oldboy-mode/oldboydir/oldboy{10..20}.txt
chown -R oldboy.oldboy   /oldboy-mode/oldboydir/[root@myvps ~]# cd /oldboy-mode/
[root@myvps oldboy-mode]# ll 
总用量 4
drwxr-xr-x. 2 root   root   243 10月 13 17:32 oldboydir
[root@myvps oldboy-mode]# cd oldboydir/
[root@myvps oldboydir]# ll 
总用量 0
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy10.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy11.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy12.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy13.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy14.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy15.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy16.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy17.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy18.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy19.txt
-rw-r--r--. 1 root root 0 10月 13 17:32 oldboy20.txt

1) 测试 r

chmod u=r mode-dir/
oldboy 测试看目录本身信息加ll -d 目录名

image

目录小结论:

目录的r权限查看目录下内容,如果只有r目录下文件的属性信息无法查看提示"?",目录的r权限需要x权限配合.、对于目录x权限表示是否能够进入目录权限,是否能够查看与修改目录下文件的 属性信息 权限。

  • 测试 w

  • 没有w权限

2) 测试w

  • 没有w权限
[oldboy@oldboy-king-v2 oldboy]$ ll -d mode-dir/
dr-xr-xr-x. 2 oldboy oldboy 226 7月  25 11:07 mode-dir/
[oldboy@oldboy-king-v2 oldboy]$ ls mode-dir/
oldboy10.txt oldboy12.txt oldboy14.txt oldboy16.txt oldboy18.txt oldboy20.txt
[oldboy@oldboy-king-v2 oldboy]$ \rm -fr mode-dir *
rm: 无法删除"mode-dir/oldboy10.txt": 权限不够
rm: 无法删除"mode-dir/oldboy11.txt": 权限不够
rm: 无法删除"mode-dir/oldboy12.txt": 权限不够
rm: 无法删除"mode-dir/oldboy13.txt": 权限不够
rm: 无法删除"mode-dir/oldboy14.txt": 权限不够
rm: 无法删除"mode-dir/oldboy15.txt": 权限不够
rm: 无法删除"mode-dir/oldboy16.txt": 权限不够
rm: 无法删除"mode-dir/oldboy17.txt": 权限不够
rm: 无法删除"mode-dir/oldboy18.txt": 权限不够
rm: 无法删除"mode-dir/oldboy19.txt": 权限不够
rm: 无法删除"mode-dir/oldboy20.txt": 权限不够
[oldboy@oldboy-king-v2 oldboy]$ touch mode-dir/lidao.txt
touch: 无法创建"mode-dir/lidao.txt": 权限不够

目录小结论:

目录的w权限表示在目录下面创建,删除,重命名文件,只有w还不够,需要?配合。

对于目录x权限表示是否能够进入目录权限,是否能够查看与修改目录下文件的 属性信息 权限

实际应用建议:如果要对某个目录拥有“写”权限,则授予目录rwx即可。

4.系统默认权限(了解)

  • Linux系统通过umask命令控制文件和目录的默认权限.

  • 如何控制的?

文件:666
目录:777
减去umask的值,文件umask如果某一位是奇数,需要减去umask后这一位上+1
文件默认权限:666
-  022
-------644目录默认权限:777
-  022
-------755021
文件默认权限:666
-  021
-------645
+1646目录默认权限:777
-  021
-------756
  • 小结
    • Linux默认权限通过umask控制即可.

5. ( 3个特殊权限)

  • 目标: 知晓特殊权限及例子.

image

  • 特殊权限之set uid = suid 4 : 运行这个命令的时候相当于是这个命令的所有者的权限. 例子passwd命 令.

  • 特殊权限之sticky(粘滞位) 1 : 对于包含sticky权限的目录,每个用户都可以在目录下面创建内容,但是每个用户只能管理自己的文件.

  • 特殊权限之set gid = guid 2 : 运行这个命令的时候相当于是这个命令的用户组的权限

  • 如何设置

chmod u+s /bin/rmchmod o+t /tmp//bin/rm原始权限755 增加setuid
chmod 4755 /bin/rmchmod 1777 /tmp/ 
  • 核心掌握:
    • /bin/passwd和/tmp/s和t含义即可.

6. Linux特殊属性

  • 目的:预防重要文件或命令被修改
  • lsattr 查看这种特殊属性
  • chatrr 修改这种特殊属性
    • a属性 append 只能追加
    • i属性 immutable 不朽的,无法被毁灭的.
chattr +a oldboy.txt  #-achattr +i oldboy.txt  #-i

3.Linux权限控制与系统安全(了解)

1.概述⭐

  • 通过权限控制让系统安全

    • 搭建网站来说,服务器权限设置
    • 最小化原则:既要保证网站可以正常访问,也要保证网站安全.
  • 推荐的网站的权限配置为:

    • 文件 644 root root
    • 目录 755 root root
  • 网站在运行的时候需要用户:这个用户不推荐是root,推荐自己/自动创建虚拟用户www/nginx.

2.单台机器

  • 网站运行的时候是www用户,网站程序代码/app/code/www 目录,为例如何设置权限?
#01 . /app/code/www 目录
文件和目录所有者 root root (查看权限)
文件和目录权限   644 755#02. /app/code/www/upload 上传目录
文件和目录所有者 www www  #如果不修改,则用户无法上传文件到upload目录下面(touch
upload/lidao.avi).
文件和目录权限   644 755#03. 控制用户上传指定类型的文件#04. 只能上传,不能执行.

3.集群

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833131.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java流程控制(三)

用户交互Scanner(java.util.Scanner获取用户的输入)//基本语法 Scanner s = new Scanner(System.in)通过Scanner类的next()与nextLine()方法获取输入的字符串,使用hasNext()与hasNextLine()判断是否还有输入的数据(Next不能得到带有空格的字符串,NextLine可以获得空白)im…

0.1+0.2=0.30000000000000004

看下效果这个网站能找到你想要的答案 https://0.30000000000000004.com/ 十进制转二进制 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。 具体做法是:用2整除十进制整数,可以得到一个商和余数; 再用2去除商,又会得到一个商和余数,如此进行,直到商为小…

「AT_diverta2019_2_e」Balanced Piles 题解

题意描述 有一个长度为 \(N(2\le N \le 10^6)\) 的数组,一开始所有元素均为 \(0\)。 设 \(M\) 为当前数组中的最大元素,\(m\) 是当前数组中的最小元素,你可以执行若干次以下操作:选择一个大小为 \(m\) 的元素,把他变为 \(x\),其中 \(M\le x \le M+D\) 且 \(m<x\)。 求…

团队项目Scrum冲刺-day3

一、每天举行站立式会议 站立式会议照片一张昨天已完成的工作成员 任务陈国金 用户模块的部分接口凌枫 用户登录页面陈卓恒 用户注册界面谭立业 题目搜索页面部分内容廖俊龙 接口测试曾平凡 前端页面测试曾俊涛 题目模块的部分接口薛秋昊 题目提交模块的部分接口今天计划完成的…

Logisim-016-海明解码

仓库地址 https://gitee.com/gitliang/logisim-to-cpu

Logisim-016-海明编码

仓库地址 https://gitee.com/gitliang/logisim-to-cpu

Object

Object 类是 Java 中的顶级父类, 所有的类都直接或间接继承于 Object 类. Object 类中的方法可以被所有子类访问. Object 类没有成员变量, 所以只有无参构造方法. Java 中, 子类的共性才会往父类中去抽取, 然而不可能有一个属性是所有类的共性, 所以在 Object 这个类中, 是没有…

Windows平台下安装与配置MySQL5.7

1.下载mysql安装文件 下载地址:https://downloads.mysql.com/archives/installer/2.安装与配置MySQL 双击打开,接受许可协议,点击下一步:选择自定义安装,点击下一步:选择要安装的产品,点击下一步:点击执行按钮:安装完成,点击下一步进入配置界面:配置界面继续点击下一…

C++ 逆向之常用字符集互转

在过往的编程过程中,常常会因为碰到字符集问题而头痛,而每次在进行字符集转换的时候,各种搜索网上文档,想找字符集转换的示例程序,但是都不尽人意,本篇文章的目的就是彻底解决之前编程过程中对字符集认识以及字符集转换之间似懂非懂、云里雾里的状态,并在文章结尾附上 A…

团队作业4——项目冲刺-1-第二篇

团队作业4——项目冲刺-1-第二篇这个作业属于哪个课程 <计科22级34班>这个作业要求在哪里 <作业要求>这个作业的目标 修改完善需求规格说明书、系统设计、Alpha任务分配计划、测试计划GitHub 链接 https://github.com/tangliweiwww/ChatGpt🍟一、团队 1.团队名称…

[Paper Reading] Fusing Monocular Images and Sparse IMU Signals for Real-time Human Motion Capture

目录名称TL;DRMethodLocal Pose EstimationRNN-P1RNN-P2RNN-P3Global Translation EstimationRNN-T1RNN-T2RNN-T3Hidden State Feedback MechanismExperiment效果可视化总结与发散相关链接 名称 link 时间:23.09 作者与单位:主页: https://github.com/shaohua-pan/RobustCap…

HarmonyOS Next 入门实战 - 创建项目、主题适配

​开发一个简单的demo,其中涉及一些鸿蒙应用开发的知识点,其中涉及导航框架,常用组件,列表懒加载,动画,深色模式适配,关系型数据库等内容,在实践中学习和熟悉鸿蒙应用开发。 ​​ ​​ 首先下载并安装DevEco Studio开发环境,下载完成后按照提示安装即可,过程不在多说…