Linux12位权限管理体

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.local

chmod +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
-------
   755
  
021
文件默认权限:
   666
-  021
-------
   645
+1
   646
  
目录默认权限:
   777
-  021
-------
   756
  • 小结
    • Linux默认权限通过umask控制即可.

5. ( 3个特殊权限)

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

image

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

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

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

  • 如何设置

chmod u+s /bin/rm

chmod o+t /tmp/

/bin/rm原始权限755 增加setuid
chmod 4755 /bin/rm

chmod 1777 /tmp/ 


  • 核心掌握:
    • /bin/passwd和/tmp/s和t含义即可.

6. Linux特殊属性

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

chattr +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

posted @   殇ベ墨~  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示