第十二章:Linux系统权限知识及应用实践day16

重点:

  • 【文件】权限详细说明:*****
  • 【目录】权限详细说明:*****
  • 字符和数字(8进制)权限知识*****
    chmod chown chgrp命令使用。*****
    企业真实案例:网站文件被恶意修改了*****
    umask默认权限控制*
  • 特殊权限,suid** sgid sticky*
    重点suid

命令:

chown 改变属主属组
chmod 改变权限


第十二章:Linux系统权限知识及应用实践day16_第1张图片
image.png
  • 修改文件属性的用户和组
    chown 用户.用户组 文件 这里的点可以用:替换。
    chown 用户 文件
    chown .用户组 文件 ====chgrp 用户组 文件


    第十二章:Linux系统权限知识及应用实践day16_第2张图片
    image.png

1.Linux基础权限是9个字符。

1.1普通文件对应读、写、执行权限的详细说明

rw-r--r--
rw-r--r--
rw-r--r--


第十二章:Linux系统权限知识及应用实践day16_第3张图片
image.png
  • 分3组:
    前三个字符是表示用户(属主)权限位 user(用户) u
    中三个字符是表示用户组权限位 group(用户组) g
    后三个字符是其它用户权限位 others(其他用户) o
  • 同一组的三个字符权限也是有位置的:
    r-- 第一个字符的位置读的权限位
    第二个字符的位置写的权限位
    第三个字符的位置是执行的权限位。

1. 对于普通文件

1)可读r:表示具有读取浏览文件内容(block实体的权限)。
2)可写w:表示可以对文件内容进行增删改文件内容的权限
3)可执行:表示具有执行文件的权限

  • 对于可读r,有两点说明
    1、如果没有可读r配合,那么使用vi编辑器追加时会提示无法编辑(但可强制编辑),可以使用echo等命令进行重定向追加

    2、删除文件或创建文件是受父目录(上一级目录)的权限控制的(因为文件名没有存放在inode里,而是存放在上级目录的block里,若修改上级目录的block,当然要受上级目录的inode的权限控制),和文本本身权限无关,因此,文件本身的可写w权限和文件是否能被删除和改名没有关系
    第十二章:Linux系统权限知识及应用实践day16_第4张图片
    image.png
  • 对于可执行x,需要注意以下三点。
    1、首先文件的本身要能够执行(命令和脚本)
    2、如果是普通用户,同时还需要具备,可读r权限才能执行文件
    3、而root用户只要有可执行x的权限就能执行文件

2. 对于目录

第十二章:Linux系统权限知识及应用实践day16_第5张图片
image.png

  • 测试准备:
    incahome(家、组)
    oldboy 家庭男主人,用来代表用户(User)角色,是文件的所有者
    oldgirl 女主人(和所有者oldboy属于相同组,oldboy的家人)用来代表用户组incahome的角色
    test 其他人 其他(others)人,用来代表其他用户角色
    [root@oldboyedu ~]# groupadd incahome
    [root@oldboyedu ~]# useradd oldboy
    useradd: user 'oldboy' already exists
    [root@oldboyedu ~]# usermod -g incahome oldboy
    [root@oldboyedu ~]# id oldboy
    uid=1000(oldboy) gid=1004(incahome) groups=1004(incahome),1000(oldboy)
    如果此前没有创建oldboy,可以执行下面命令,而不需要usermod命令。
    [root@oldboyedu ~]# useradd oldboy -g incahome
    [root@oldboyedu ~]# useradd oldgirl -g incahome
    useradd: user 'oldgirl' already exists
    [root@oldboyedu ~]# id oldgirl
    uid=1001(oldgirl) gid=1001(oldgirl) groups=1001(oldgirl)
    [root@oldboyedu ~]# usermod -g incahome oldgirl
    [root@oldboyedu ~]# id oldgirl
    uid=1001(oldgirl) gid=1004(incahome) groups=1004(incahome)
    [root@oldboyedu ~]# useradd test
    useradd: user 'test' already exists
  • 准备环境:
    [root@oldboyedu ~]# mkdir -p /oldboy
    [root@oldboyedu ~]# echo "echo oldboyLinux" >/oldboy/test.sh
    [root@oldboyedu ~]# chmod +x /oldboy/test.sh
  1. 测试默认情况下不同用户的对应权限
    [root@oldboyedu /oldboy]# chown oldboy.incahome test.sh
    [root@oldboyedu /oldboy]# ls -l
    total 4
    -rwxr-xr-x 1 oldboy incahome 22 Oct 7 21:18 test.sh

2.权限修改

Linux权限有两种表现形式:
1、数字表示法 称为8进制权限

r 4
w 2
x 1
- 0

实际的权限表示就是将每3位相加即可。
rwxr-xr-x 755

权限 八进制
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7

2、字符表示法
rw-rw-r-x 代表的数字权限为665
--xr-x-wx 代表的数字权限为153
-wx--x--x 代表的数字权限为311

而以下数字权限表示的字符权限如下:
755 代表的字符权限为rwxr-xr-x
644 代表的字符权限为rw-r--r--
134 代表的字符权限为--x-wxr--

3.修改文件的属性

chown 改变属主属组 -r递归
chmod 改变权限

  • 修改文件属性的用户和组
    chown 用户.用户组 文件 这里的点可以用:替换。
    chown 用户 文件
    chown .用户组 文件 ====chgrp 用户组 文件
    (chgrp incahome test.txt=chown .incahome test.txt)


    第十二章:Linux系统权限知识及应用实践day16_第6张图片
    image.png
  • [root@oldboyedu /oldboy]# chown oldboy test.sh
    [root@oldboyedu /oldboy]# ls -l
    total 4
    ---x--x--x 1 oldboy root 12 Oct 7 22:16 test.sh
    [root@oldboyedu /oldboy]# chown .incahome test.sh
    [root@oldboyedu /oldboy]# ls -l
    total 4
    ---x--x--x 1 oldboy incahome 12 Oct 7 22:16 test.sh
    [root@oldboyedu /oldboy]# chown root:root test.sh
    [root@oldboyedu /oldboy]# ls -l
    total 4
    ---x--x--x 1 root root 12 Oct 7 22:16 test.sh
    [root@oldboyedu /oldboy]#

4.安全权限临界点

  • 文件不想被修改被执行:默认644
    [root@oldboyedu /oldboy]# touch oldboy.txt
    [root@oldboyedu /oldboy]# ls -l
    total 4
    -rw-r--r-- 1 root root 0 Oct 7 23:21 oldboy.txt
    目录不想被修改(删除移动创建)被执行(进入):755

博客:写博客。。。服务器的博客目录和文件的权限,防止被恶意篡改。

  • 企业真实案例:网站文件被恶意修改了。。。。打开网站后有弹窗广告(不是你网站的)
    用户打开网站,报警。
    原因:权限设置不到位。chmod -R 777 目录 开发人员习惯
    解决方案:
    1、备份
    tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/
    2、找到被修改的文件
    [root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
    /oldboy/oldboy.txt:

你可能感兴趣的:(第十二章:Linux系统权限知识及应用实践day16)