权限管理体系

1.Linux 12位权限管理体系

1.1 权限管理概述

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

1.2 Linux权限计算

1)rwx

权限

含义

r

read 是否可读

w

write 是否可写

x

execute 是否可执行(一般是命令,脚本)

2)何为9位权限?

  • Linux下面任何一个文件/目录与用户的关系有3中关系。

文件/目录与用户的关系

含义

所有者

这个文件或目录属于某个用户(所有者)

用户组(家庭)

这个文件或目录属于某个用户组(家庭)

其他人(陌生人)

这个文件或目录不属于某个用户 也不属于这个用户组

  • 如何快速知晓文件或目录的所有者情况

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

3)如何计算权限❣️❣️❣️❣️❣️

权限

含义

权限对应的数字

r

read 是否可读

4

w

write 是否可写

2

x

execute 是否可执行(一般是命令,脚本)

1

-

没有权限

0

-rw-r--r--. 1 root root 0 7月 18 08:53 oldboy01.txt
420400400
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-------

1.3 权限与文件,目录

1)概述❣️❣️❣️

权限

文件

目录(教室)

r

是否可以读取文件内容

是否可以查看目录内容,需要x权限配合

w

是否可以修改文件内容,一般还需要r权限配合

是否可以在目录中创建,删除,重命名文件权限,需要x权限配合

x

是否可以执行文件,(命令,脚本),一般还需要r权限配合

是否可以进入目录,是否可以访问目录下文件属性

2)测试文件权限

  • 通过root修改权限,gq用户测试权限
mkdir -p /gq/
echo 'hostname' >/gq/gq.sh
ll  /gq/gq.sh
chown gq.gq  /gq/gq.sh
chmod u=r /gq/gq.sh
  • root用户

  • oldboy用户(普通用户)

chmod修改权限

#1.通过数字修改(常用)

chmod 666 oldboy.sh
#2.通过字符修改(精确)
u  user所有者
g group 用户组部分
o other 其他人

chmod u-x  oldboy.sh
ll oldboy.sh
-rw-r--r--. 1 oldboy oldboy 9 7月 25 10:36 oldboy.sh

chmod u=x oldboy.sh
ll oldboy.sh
---xr--r--. 1 oldboy oldboy 9 7月 25 10:36 oldboy.sh

案例01 给/etc/rc.d/rc.local  增加执行权限
chmod ggo+x  /etc/rc.d/rc.local
chmod U+x,g+x,o+x /etc/rc.d/rc.local
chmod a+x /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local  #掌握这个即可

a)测试文件的r权限

  • root 修改 chmod u=r oldboy.sh
  • oldboy 查看
ll oldboy.sh
-r--r--r--. 1 oldboy oldboy 9 7月 25 10:36 oldboy.sh
cat oldboy.sh
hostname
echo id >> oldboy.sh  #没有w权限导致的
-bash: oldboy.sh: 权限不够
./oldboy.sh    #没有权限导致的
-bash: ./oldboy.sh: 权限不够

b)测试文件的w权限

  • root修改 chmod u=w oldboy.sh
  • oldboy 查看
ll oldboy.sh
--w-r--r--. 1 oldboy oldboy 9 7月 25 10:36 oldboy.sh
cat oldboy.sh
cat:oldboy.sh: 权限不够

echo id >>oldboy.sh
echo id >>oldboy.sh
echo id >>oldboy.sh
cat oldboy.sh
cat:oldboy.sh: 权限不够
./oldboy.sh
-bash: ./oldboy.sh: 权限不够
  • 对于文件来说只有w权限不够,需要有r权限配合

c)测试文件的x权限

  • root 修改 chmod u=x oldboy.sh
  • oldboy查看
ll oldboy.sh
---xr--r--. 1 oldboy oldboy 9 7月 25 10:36 oldboy.sh
./oldboy.sh
bash: ./oldboy.sh: 权限不够
cat oldboy.sh
cat: oldboy.sh: 权限不够
echo whoami >>oldboy.sh
-bash: oldboy.sh: 权限不够
  • x权限需要有r配合
  • 增加了rx权限后测试
ll oldboy.sh
-r-xr--r--. 1 oldboy oldboy 9 7月 25 10:36 oldboy.sh
cat oldboy.sh
hostname 
id
id
id
pwd

./oldboy.sh
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
/oldboy

/oldboy/oldboy.sh
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
/oldboy

3) 测试目录权限

  • 环境
mkdir -p /oldboy/mode-dir/
touch /oldbboy/mode-dir/oldboy{10..20}.txt
chown -R oldboy.oldboy  /oldboy/mode-dir/
ll -d /oldboy/mode-dir/
drwxr-xr-x. 2 oldboy oldboy 226 7月 25  11:07  /oldboy/mode-dir/
ll /oldboy/mode_dir/
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy10.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy11.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy12.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy13.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy14.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy15.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy16.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy17.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy18.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy19.txt
-rw-r--r--. 1 oldboy oldboy 0 7月 25 11:07 oldboy20.txt
  • 测试r
chmod u=r mode_dir/
oldboy测试

  • 目录的r权限,需要x权限配合
  • 测试w
  • 没有w权限
[oldboy@Gq oldboy]$ ll -d mode-dir/
dr-xr-xr-x. 2 oldboy oldboy 226 7月 25 11:07 mode-dir/

[oldboy@Gq oldboy]$ ls mode-dir/
oldboy10.txt oldboy12.txt oldboy14.txt oldboy16.txt oldboy18.txt oldboy20.txt
oldboy11.txt oldboy13.txt oldboy15.txt oldboy17.txt oldboy19.txt

[oldboy@Gq 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@Gq oldboy]$ touch mode-dir/lidao.txt
touch: 无法创建"mode-dir/lidao.txt": 权限不够
  • 给W权限
[oldboy@Gq oldboy]$ ls mode-dir/
oldboy10.txt oldboy12.txt oldboy14.txt oldboy16.txt oldboy18.txt oldboy20.txt
oldboy11.txt oldboy13.txt oldboy15.txt oldboy17.txt oldboy19.txt

[oldboy@Gq oldboy]$ touch mode-dir/lidao.txt
[oldboy@Gq oldboy]$ ls mode-dir/
lidao.txt oldboy11.txt oldboy13.txt oldboy15.txt oldboy17.txt oldboy19.txt
oldboy10.txt oldboy12.txt oldboy14.txt oldboy16.txt oldboy18.txt oldboy20.txt

[oldboy@Gq oldboy]$ \rm -f mode-dir ˇ
[oldboy@Gq oldboy]$ ll mode-dir/
[oldboy@Gq oldboy]$ ll mode-dir/
总用量 0
  • 测试X

4)小结

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

1.4 删除文件需要什么权限?

  • oldboy目录删除文件测试
测试环境(root)
mkdir mode-dir
chown oldboy.oldboy mode-dir #这里不加-R
touch mode-dir/root{01 ʡ 10}.txt

问: oldboy能否删除mode-dir下面属于root的文件?
删除文件看文件所在目录权限 mode-dir目录 755,所有者是oldboy
可以删除
温馨提示 :
    
删除/创建文件,需要看文件所在目录的权限.
用户对目录是否有rwx权限.
  • 删除文件测试案例
当前环境及条件如下:
touch /oldboy/oldboy-all-mode.txt
chmod 777 /oldboy/oldboy-all-mode.txt
chown oldboy.oldboy /oldboy/oldboy-all-mode.txt
ll -d /oldboy/ 目录属于root 755

ll -d /oldboy/
drwxr-xr-x. 5 root root 4096 7月 25 11:21 /oldboy/


问:oldboy能否删除oldboy-all-mode.txt文件???
无法删除

ll -d /oldboy/
drwxr-xr-x. 5 root root 4096 7月 25 11:21 /oldboy/
因为没有w权限 所以无法删除.

ll -d /oldboy/
drwxr-xr-x. 5 root root 4096 7月 25 11:21 /oldboy/
因为没有w权限 所以无法删除.

1.5 Permission denied故障排查 ⭐⭐⭐⭐

  • oldboy用户
[oldboy@Gq oldboy]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
[oldboy@Gq oldboy]$ ls -l /root/
ls: 无法打开目录/root/: 权限不够
[oldboy@Gq oldboy]$ echo '#oldboy' Ҵ /etc/passwd
-bash: /etc/passwd: 权限不够
[oldboy@Gq oldboy]$ touch /etc/oldboy-file.txt
touch: 无法创建"/etc/oldboy-file.txt": 权限不够
  • 分析权限拒绝的流程
    • 缕清用户与文件/目录权限关系,你要知晓你对于这个文件或目录拥有什么权限?
    • 分析缺少了什么权限导致的问题 ? 根据操作分析是与文件的权限有关 , 还是目
      录的权限有关 ?
    • 得出结论 , 缺少了文件 xxxx 权限 , 目录的 xxxx 权限导致的故障 .
日常操作需要的权限
查看文件的内容文件要有r权限
编辑或修改文件内容文件要有rw权限。
执行脚本/命令文件需要有rx权限
查看目录内容目录要有rx权限
创建文件,删除文件文件所在目录要有rwx权限
重命名文件所在目录要有rwx权限

1.6 系统默认权限(了解)

  • Linux 系统通过 umask 命令控制文件和目录的默认权限 .
  • 如何控制的 ?
    文件: 666
    目录: 777
    减去umask的值,文件umask如果某一位是奇数,需要减去umask后这一位上+1
    文件默认权限:
    666
    - 022
    -------
    644
    目录默认权限:
    777
    - 022
    -------
    755
    021
    
    文件默认权限:
    666
    - 021
    -------
    645
    +1
    646
    目录默认权限:
    777
    - 021
    -------
    756

    1.7 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) 集群

    网站权限规划——网站集群

1.8  三个特殊权限

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

  • 特殊权限之 setuidsuid4: 运行这个命令的时候相当于是这个命令的 所有者 的权限 . 例子 passwd 命令
  • 特殊权限之 sticky( 粘滞位)  1: 对于包含 sticky 权限的目录 ,每个用户都可以在目录下面创建内容 , 但是每个用户只能管理自己的文件 .
  • 特殊权限之 setgidguid2: 运行这个命令的时候相当于是这个命令的
    用户组 的权限 .
  • 如何设置
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含义即可

1.9 Linux特殊属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gqren003

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值