DAY16

作者: 余仔丶 | 来源:发表于2019-03-21 19:25 被阅读0次

    DAY 16
    关于文件权限位
    rw-r--r--

    分3组:
    前三个字符是表示用户(属主)权限位 user(用户) u
    中三个字符是表示用户组权限位 group(用户组) g
    后三个字符是其它用户权限位 others(其他用户) o

    r 可读 对应八进制数字 4
    w 可写 对应八进制数字 2
    x 可执行 1

    •                      0
      

    普通文件对应读写执行权限的详细说明
    对于文件和文件内容

    图内都是重点
    还有这里的w只针对文件内容与文件是否删除和改名无关删除创建和改名在他妈的手里即上级目录的Block 对应的W权限对于
    对于目录 即开头为d或结尾带/的 截图重要+
    3可执行X 表示进入目录的权限 可以CD到目录下但是无法列出子目录和文件
    这个图重点 以后工作会遇到

    【文件】权限详细说明:****
    【目录】权限详细说明:****
    测试准备:
    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

    权限修改:
    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 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]#

    安全权限临界点:
    文件不想被修改被执行: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:<script>ddddddddddddd</scripts>
    /oldboy/test.sh:<script>ddddddddddddd</scripts>

    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一样。

    DAY 16
    关于文件权限位
    rw-r--r--

    分3组:
    前三个字符是表示用户(属主)权限位 user(用户) u
    中三个字符是表示用户组权限位 group(用户组) g
    后三个字符是其它用户权限位 others(其他用户) o

    r 可读 对应八进制数字 4
    w 可写 对应八进制数字 2
    x 可执行 1

    •                      0
      

    普通文件对应读写执行权限的详细说明
    对于文件和文件内容

    图内都是重点
    还有这里的w只针对文件内容与文件是否删除和改名无关删除创建和改名在他妈的手里即上级目录的Block 对应的W权限对于
    对于目录 即开头为d或结尾带/的 截图重要+
    3可执行X 表示进入目录的权限 可以CD到目录下但是无法列出子目录和文件
    这个图重点 以后工作会遇到

    【文件】权限详细说明:****
    【目录】权限详细说明:****
    测试准备:
    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

    权限修改:
    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 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]#

    安全权限临界点:
    文件不想被修改被执行: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:<script>ddddddddddddd</scripts>
    /oldboy/test.sh:<script>ddddddddddddd</scripts>

    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一样。

    相关文章

      网友评论

          本文标题:DAY16

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