美文网首页
day 16 权限详解

day 16 权限详解

作者: Linux_淡忘 | 来源:发表于2019-03-21 16:33 被阅读0次

    Day 16

    作者:翟玉龙

    归档:课堂笔记

    2019/3/21

    快捷键:

    Ctrl  + 1    标题1

    Ctrl  + 2    标题2

    Ctrl  + 3    标题3

    Ctrl  + 4    实例

    Ctrl  + 5    程序代码

    Ctrl  + 6    正文

    格式说明:

    蓝色字体:注释

    黄色背景:重要

    绿色背景:注意

    老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

    学无止境,老男孩教育成就你人生的起点!

    联系方式:

    网站运维QQ交流群:

    Linux 385168604架构师390642196

    Python 29215534大数据421358633

    官方网站:

    http://www.oldboyedu.com 

    目录

    学无止境,老男孩教育成就你人生的起点!... 1

    第1章 权限... 1

    1.1 Linux基础权限... 1

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

    第2章 目录的读写执行权限... 10

    2.1企业环境下[if !vml]

    [endif]............................................................................................................................................................................. 13

    [if !supportLists]第1章 [endif]权限

    [if !supportLists]1.1 [endif]Linux基础权限

    Linux基础权限是9个字符。

    rw-r--r--

    rw-r--r—

    rw-                        r--                              r--

    rw-                        r--                              r--

    前三位:用户(属主)权限位

    中三位:用户组权限位

    后三位:其他用户权限位

    r--  第一个字符的位置是读的权限位。 User 用户    U

         第二个字符的位置是写的权限位。 Group  用户组   G

         第三个字符的位置是执行的权限位。   Others其他用户  O

    Linux基础权限是9个字符。

    [root@oldboyedu ~]# ls -lhi

    total 36K

    33631870 -rw-r--r--. 1 root root     21 Oct 6 22:54 a.txt

    33631871 -rw-r--r--. 1 root root     16 Oct 6 23:02 b.txt

    33631857 -rw-r--r--  1 root root     61 Oct 7 00:11 c.txt

    rw-r--r--

    rw-r--r--

    rw-r--r--

    分3组:

    前三个字符是表示用户(属主)权限位  user(用户)u

    中三个字符是表示用户组权限位group(用户组)     g

    后三个字符是其它用户权限位others(其他用户)    o

    同一组的三个字符权限也是有位置的:

    r-- 第一个字符的位置读的权限位

        第二个字符的位置写的权限位

           第三个字符的位置是执行的权限位。

    r  4

    w  2

    x  1

    -  0

    【文件】权限详细说明:****

    【目录】权限详细说明:****

    测试准备:

    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 incahomeoldboy

    [root@oldboyedu ~]# id oldboy

    uid=1000(oldboy) gid=1004(incahome)groups=1004(incahome),1000(oldboy)

    如果此前没有创建oldboy,可以执行下面命令,而不需要usermod命令。

    [root@oldboyedu ~]# useradd oldboy -gincahome

    [root@oldboyedu ~]# useradd oldgirl -gincahome

    useradd: user 'oldgirl' already exists

    [root@oldboyedu ~]# id oldgirl

    uid=1001(oldgirl) gid=1001(oldgirl)groups=1001(oldgirl)

    [root@oldboyedu ~]# usermod -g incahomeoldgirl

    [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 "echooldboyLinux" >/oldboy/test.sh

    [root@oldboyedu ~]# chmod +x/oldboy/test.sh

    1. 测试默认情况下不同用户的对应权限

    [root@oldboyedu /oldboy]# chownoldboy.incahome test.sh

    [root@oldboyedu /oldboy]# ls -l

    total 4

    -rwxr-xr-x 1 oldboy incahome 22 Oct  7 21:18 test.sh

    权限修改:

    777 +x -x u=w  g-x

    Linux权限有两种表现形式:

    1、数字表示法称为8进制权限

    r 4

    w 2

    x 1

    - 0

    实际的权限表示就是将每3位相加即可。

    rwxr-xr-x 755

    rwx 7

    r-x 5

    r-x 5

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

    修改文件属性的用户和组

    chown 用户.用户组文件  这里的点可以用:替换。

    chown 用户文件

    chown .用户组文件  ====chgrp用户组文件

    chgrp incahome test.txt

    [root@oldboyedu /oldboy]# chown oldboytest.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 .incahometest.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:roottest.sh

    [root@oldboyedu /oldboy]# ls -l

    total 4

    ---x--x--x 1 root root 12 Oct  7 22:16 test.sh

    [root@oldboyedu /oldboy]#

    安全权限临界点:

    文件不想被修改被执行: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:ddddddddddddd

    /oldboy/test.sh:ddddddddddddd

    3、批量删除

    [root@oldboyedu /]# find /oldboy -type f|xargs sed -i '/ddddddddddddd/d'

    [root@oldboyedu /]# find /oldboy -type f|xargs grep 'ddddddddddddd'

    4、找到文件被篡改来源,并优化调整。

    亡羊补牢。

    5、写总结故障报告。

    控制默认权限的东西  umask

    [root@oldboyedu /oldboy]# umask

    022

    创建文件默认最大的权限为666(-rw-rw-rw-),其默认创建的文件没有可执行权限x位。

    666

    022 -

    --------------------

    644 默认权限

    [root@oldboyedu /oldboy]# umask 044    ====临时

    [root@oldboyedu /oldboy]# touch abc

    [root@oldboyedu /oldboy]# ls -l abc

    -rw--w--w- 1 root root 0 Oct  7 23:42 abc

    [root@oldboyedu /oldboy]# umask 044

    [root@oldboyedu /oldboy]# touch abc

    [root@oldboyedu /oldboy]# ls -l abc

    -rw--w--w- 1 root root 0 Oct  7 23:42 abc

    [root@oldboyedu /oldboy]# umask

    0044

    [root@oldboyedu /oldboy]# umask 043

    [root@oldboyedu /oldboy]# umask

    0043

    [root@oldboyedu /oldboy]# touch a

    [root@oldboyedu /oldboy]# ls -l a

    -rw--w-r-- 1 root root 0 Oct  7 23:44 a

    当umask中存在奇数位的时候,在计算完毕,奇数位加1

    666

    011

    -------------------

    655

     11

    -----------------

    666

    基于文件:默认权限规则了解

    从666计算

    umask都为偶数默认权限用减法

    umask有奇数默认权限用减法然后奇数位加1

    基于目录:默认权限规则

    从777计算

    默认权限用减法

    Linux系统特殊权限位知识

    9位基础权限

    还有3位特殊权限位

    suid位:

    suid(setuid)位通过S字符标识,

    存在于基本权限的用户权限位的x权限对应的位置,

    如果用户权限位对应的x权限位上有x权限,则suid就用小写的s标识,

    suid的s对应的数字权限为4,完整权限用八进制数4000表示。

    sgid位:

    sgid(setgid)位同样是通过S字符来标识,

    但是,sgid位存在于基本权限的用户组权限位的x权限对应的位置,

    如果用户组权限位对应的x权限位上有x权限,则sgid就用小写的s标识,

    suid的s对应的数字权限为2,完整的权限用八进制数2000表示。

    sticky(粘滞位)知识简介

    sticky(粘滞)位通过字符T标识,存在于基本权限的其他用户位对应的x权限位上,

    如果其他用户位的x权限位上有x权限,

    则sticky(粘滞)位通过小写的t标识,对应的数字权限是1,

    完整的权限用八进制数1000表示。

    4 2 1,加和放在基础权限数字的前面。

    修改方法:

    [root@oldboyedu /oldboy]# chmod 7755 abc

    预测:-rwsr-sr-t

    [root@oldboyedu /oldboy]# chmod 7755 abc

    [root@oldboyedu /oldboy]# ls -l abc

    -rwsr-sr-t 1 root root 0 Oct  7 23:42 abc

    [root@oldboyedu /oldboy]# chmod 7644 abc

    [root@oldboyedu /oldboy]# ls -l abc

    -rwSr-Sr-T 1 root root 0 Oct  7 23:42 abc

    工作中有啥用?

    suid到底有什么作用

    简单地说,suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序时,

    拥有和root管理员一样的身份和权限(默认情况)。

    [oldgirl@oldboyedu /]$ ll -ld oldboy/

    dr-x-wxrw-. 2 oldboy incahome 6 Oct  7 22:15 oldboy/

    oldgirl属于incahome,增加一个用户属于incahome,是不是也和oldgirl有同样权限。

    oldboy 给一个新用户设置suid,这个新用户的权限就和oldboy一样。

    [if !vml]

    [endif]

    [if !vml]

    [endif]

                    R            4                      -                   0

            W            2                     x                  1

    [if !vml]

    [endif][if !vml]

    [endif] 

    [if !supportLists]第2章 [endif]目录的读写执行权限

    [if !vml]

    [endif][if !vml]

    [endif] Linux权限有两种表现形式

    1数字表达

      R4

    W2

    X1

    -0

    实际的权限表示即是权限的三位相加即可

    2.字符表示法

    [if !vml]

    [endif]

    修改文件属性的用户和组

    [if !supportLists]2.1 [endif]企业环境下[if !vml]

    [endif]

     

                        安全权限临界点:

      文件不想被修改:644

    rw-  r--  r— 文件临界点

    目录不想被修改(删除移动创建)被执行(进入):755

    企业案例:

      网站文件被恶意修改,打开网站后有弹窗广告(不是自己网站的弹窗广告)

    用户打开网站会提示中毒,or报警

    原因:权限设置不到位 chmod -R 777 目录  开发人员习惯

    解决方案:

    1.备份 :打企业真实案例:网站文件被恶意修改了。。。。打开网站后有弹窗广告(不是你网站的)用户打开网站,报警。原因:权限设置不到位。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:ddddddddddddd

    /oldboy/[if !vml]

    [endif]test.sh:ddddddddddddd

    3

    、批量删除

    [root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'

    [root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'

    4

    、找到文件被篡改来源,并优化调整。亡羊补牢。

    5

    、写总结 故障报告。

    控制默认权限的东西umask  默认umask是022

    [root@zyl  18:32:11 /oldboy]# umask

    0022

    创建文件的最大的权限是666

    666

    022 –

    644 默认权限

    当umask中存在奇数位的时候,在计算完毕后在奇数位加1

    基于文件

    Umask都是偶数,默认权限用减法

    Umask有奇数,默认权限用减法,然后奇数位减1

    基于目录;

    从777计算,

    直接减法

    特殊权限

    9位基础权限

    还有3位特殊权限位

    Suid位用大写的S标识与x权限重合,有x权限是小s 没有x权限是大S

    Suid的s对应的数字权限为4

    Sgid 为也是S来表示

    2

    Sticky 通过大写T表示

    1

    [if !vml]

    [endif]

                         工作中咋用:

    [if !vml]

    [endif]

    [if !vml]

    [endif]

    相关文章

      网友评论

          本文标题:day 16 权限详解

          本文链接:https://www.haomeiwen.com/subject/dsdcvqtx.html