Linux系统权限知识及应用实践
1、Linux基础权限,是9个字符
17372815 drwxr-xr-x. 3 root root 18 Mar 18 23:20 app
rwxr-xr-x
分三组:
前3个字符是表示用户(属主)权限位 ( user)
中3个字符是表示用户组权限位 group(用户组)
后3个字符是其他用户权限位 others (其他用户)
同一组的三个字符权限也是有位置的“
r- - 第一个字符的位置是读的权限位
第二个字符的位置是写的权限位
第三个字符的位置是执行的权限位
权限数字的表示:
r 4
w 2
x 1
0
对于可读r,这里有两点需要说明:
1.如果没有可读r配合,那么使用vim编辑文件会提示无法编辑(但可强制编辑),可以使用echo等命令进行重定向或追加;
2.删除文件或创建文件的权限是手父目录(上一级目录)的权限控制的(因为文件名没有存放在inode里,而是在上级目录的block里存放着的,若修改实际目录block(删除文件本质),当然会 受上级目录的inode的权限控制,和文件本身的权限无关,因此,文件本身的可写W权限,和文件是否能被删除和改名无关。
对于可执行X,需要注意一下3点:
1.首先文件本身能够执行(命令或脚本)
2.如果是普通用户,同时还需要具备可读r的权限才能执行文件
3.而root只要有可执行X的权限就能执行文件
环境准备:
[root@lixin ~]# groupadd incahome
[root@lixin ~]# useradd oldboy
[root@lixin ~]# id oldboy
uid=1002(oldboy) gid=1004(oldboy) groups=1004(oldboy)
[root@lixin ~]# usermod -g incahome oldboy
[root@lixin ~]# id oldboy
uid=1002(oldboy) gid=1003(incahome) groups=1003(incahome)
[root@lixin ~]# id oldgirl
uid=1000(oldgirl) gid=1000(oldgirl) groups=1000(oldgirl)
[root@lixin ~]# usermod -g incahome
[root@lixin ~]# usermod -g incahome oldgirl
[root@lixin ~]# id oldgirl
uid=1000(oldgirl) gid=1003(incahome) groups=1003(incahome)
[root@lixin ~]# id test
uid=1001(test) gid=1001(test) groups=1001(test)
1.测试默认情况下不同用户的对应权限
[root@oldboy ~]# mkdir -p /oldboy #<==在根下创建测试目录oldboy。
[root@oldboy ~]# echo "echo oldboyLinux" >/oldboy/test.sh #<==生成脚本文件test.sh,内容是打印oldboyLinux字符串。
[root@oldboy ~]# cat /oldboy/test.sh #<==查看脚本test.sh内容。
echo oldboyLinux
[root@oldboy ~]# chmod +x /oldboy/test.sh #<==加执行权限,chmod的使用可见本章后文。
[root@oldboy ~]# ls -l /oldboy/test.sh #<==查看授权后的权限属性。
-rwxr-xr-x. 1 root root 17 Apr 30 09:55 /oldboy/test.sh
[root@oldboyedu /oldboy]# chmod o+w test.sh
[root@oldboyedu /oldboy]# ls -l
total 4
-rwxr-xrwx 1 root root 22 Oct 7 21:07 test.sh
[root@oldboyedu /oldboy]# cd ../
[root@oldboyedu /]# ls -ld oldboy/
drwxr-xr-x. 2 root root 21 Oct 7 21:07 oldboy/
[root@oldboyedu /]# chmod o+w oldboy/
[root@oldboyedu /]# ls -ld oldboy/
drwxr-xrwx. 2 root root 21 Oct 7 21:07 oldboy/
二、目录对应 读、写、执行的权限
目录 可读 r:
表示具有浏览目录下面文件及子目录名的权限
可写W:表示具有增加、删除或修改目录内文件的权限
但是必须有X的配合,
可执行X:表示具有进入目录的权限
三、Linux权限修改有两种表现形式”
1.数字表示法 八进制表示
r 4
w 2
x 1
0
实际的权限表示就是将每3位相加
rwxr-xr-x 755
7 5 5
2.字符表示法
用户类型
U 用户(user)”,即文件或目录的所有者。
g “同组(group)用户”,即与文件属主有相同组ID的所有用户
o “其他(others)用户”
a 所有(all)用户”。它是系统默认值。
数字权限表示的字符权限如下:
755 代表的字符权限为rwxr-xr-x
644 代表的字符权限为rw-r--r--
134 代表的字符权限为--x-wxr--
修改文件属性的用户和用户组
语法
chown 用户.用户组 文件 这里的.点可以用:替换
chown 用户 文件
chown .用户组 文件 ==chgrp 用户组 文件
三、文件安全核心知识:
安全权限临界点:
文件不能想被修改被执行:644
目录不想被修改被执行(删除移动创建)被执行(进入):755
博客:写博客---服务器的博客目录和权限达到以上标准 防止被恶意修改 篡改
企业真实案例:网站文件被恶意修改————打开网站后有弹窗广告(不是自己网站广告)
用户打开网站。报警 提示
原因:权限设置不到位。
解决方案:
1、先备份,
tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/
2、找到修改的文件
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
/oldboy/oldboy.txt:
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@lixin /]# umask
0022
创建文件默认最大的权限为666(-rw-rw-rw-),其默认创建的文件没有可执行权限X位
当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
工作中有什么用?
uid到底有什么作用
简单地说,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一样。
回顾重点:
【文件】权限详细说明:*****
【目录】权限详细说明:*****
字符和数字(8进制)权限知识*****
chmod chown chgrp命令使用。*****
企业真实案例:网站文件被恶意修改了*****
umask默认权限控制*
特殊权限,suid** sgid sticky*
重点suid
下节内容:
1、sgid sticky
2、
跟老男孩学linux运维:核心基础实战_第13章_Linux系统定时任务Cron(d)服务应用实践
不能自学 就算找到工作,会被开掉。3-6个月。