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]