3月21号
Linux基础权限是9个字符。
[root@guohaoxiang~]# ls -lhi
total 8.0K
33574978 -rw-r--r--. 1 root root 0 Mar 15 16:33 [!2-Z]
-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 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 incahomeuseradd: user 'oldgirl' already exists[root@oldboyedu ~]# id oldgirluid=1001(oldgirl) gid=1001(oldgirl) groups=1001(oldgirl)[root@oldboyedu ~]# usermod -g incahome oldgirl[root@oldboyedu ~]# id oldgirluid=1001(oldgirl) gid=1004(incahome) groups=1004(incahome)[root@oldboyedu ~]# useradd testuseradd: user 'test' already exists(2934145242) 9:05:39[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@guohaoxiang/]# mkdir -p /oldboy
[root@guohaoxiang/]# echo "echo oldboyLinux" >/oldboy/test.sh
[root@guohaoxiang/]# echo "echo oldboyLinux" >/oldboy/test.sh
[if !supportLists]1、[endif]测试默认情况下不同用户的对应权限
[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字符表示法
r 4
w 2
X 1
x 5
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 .用户组 文件
例子:
[root@oldboyedu /oldboy]# chown oldboy
test.sh [root@oldboyedu /oldboy]# ls -ltotal 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 -ltotal 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 -ltotal 4---x--x--x 1 root root 12 Oct 7 22:16 test.sh
安全权限临界点:
文件不想被修改:(新建文件)默认644
目录不想被修改(删除移动创建)被执行(进入):755
企业真实案例:网站文件被恶意修改了
解决方案
1、备份
2、找到被修改文件
3、批量删除例如:(sed’/*****/d‘)
4、找到文件被篡改来源
5、写总结故障报告
控制默认权限的:umask
[root@guohaoxiang~]# umask
0022
创建文件默认最大的权限位666(-rw-rw-rw-),其默认创建的文件没有可执行权限x位
644默认权限
当umask中存在奇数位的时候,在计算完毕,在奇数位加1
基于文件:umask都为偶数 默认权限用减法
Umask有奇数 默认权限用减法 然后奇数位加1
基于目录:默认权限规则
还有3位特殊权限位
Suid位:
Suid(setuid)位通常s字符标识。
存在于基本权限的用户权限位的x权限对应的位置
针对二进制命令
Sgid位
Sgid(setgid)位同样是通过s字符标识,作用就是让普通用户可以在执行某个sgid的命令时,拥有和命令对应的用户组(一般位root管理员)一样的身份和权限(默认)
Sticky粘滞位 通常通过T字符标识。例如/tmp/属于粘滞位。
4 2 1,加和放在基础权限数字的前面。
修改方法:[root@guohaoxiang~]# chmod 7755 ab
用途
Suid简单地说,suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序拥有和root管理员一样的身份和权限。
[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。。。。。。。。