3-21

Linux基础权限是9个字符。

[root@oldboyedu ~]# ls -lhi

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

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 oldboyuseradd: user 'oldboy' already exists

[root@oldboyedu ~]# usermod -g incahome oldboy

[root@oldboyedu ~]# id

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

准备环境:[root@oldboyedu ~]# mkdir -p /oldboy

[root@oldboyedu ~]# echo "echo oldboyLinux" >/oldboy/test.sh

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

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

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

权限有两种表现形式:

1、数字表示法 称为8进制权限r 4w 2x 1- 0实际的权限表示就是将每3位相加即可。

rwxr-xr-x 755rwx 7r-x 5r-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 -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 -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 -ltotal 4---x--x--x 1 root root 12 Oct 7 22:16 test.sh[

安全权限临界点:文件不想被修改被执行: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:

3.批量删除

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

5、写总结,故障报告ddddddddddddd3、批量删除[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位。666022 ---------------------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]# umask0044[root@oldboyedu /oldboy]# umask 043[root@oldboyedu /oldboy]# umask0043[root@oldboyedu /oldboy]# touch a[root@oldboyedu /oldboy]# ls -l a-rw--w-r-- 1 root root 0 Oct 7 23:44 a当umask中存在奇数位的时候,在计算完毕,奇数位加1666011-------------------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一样。

你可能感兴趣的:(3-21)