很尴尬的一件事,之前一直没有去了解权限这部分的知识。一直在裸奔的边缘试探,偶然的机会看了《linux 系统安全》这边书,顺便把这部分知识补上了。
linux 的权限分为 10 个标志位: ----------
文件标示位:
-
d 标示此物体是个目录
-
标示此物体是个文件
其他三个权限控制位:
- r=4 #读
- w=2 #写
- x=1 #执行
举个栗子:
一个权限为 0755 的文件显示如下
-rwxr-xr-x
有些人好奇这个 0 是什么意思,这是表示 suid 和 guid 的东西
- suid 意味着如果某个用户对属于自己的 shell 脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。
- guid 则表示执行相应脚本的用户将具有该文件所属用户组中用户的权限
上诉例子设置了 suid,那么其他任何用户的权限都是 7
如果设置了 guid,那么任何用户的权限都是 5
如何设置 suid 和 guid:
设置 suid 就是把 0 变为 4
设置 guid 就把 0 变为 2,如果都设置那就是 6
一旦设置了这一位,一个 s 将出现在 x 位上。记住:在设置 suid 和 guid 的同时,相应的执行权限位必须要被设置
chmod 4777 xxx.sh 设置了suid
chmod 2777 xxx.sh 设置了guid
chmod 6777 xxx.sh 同时设置了suid和guid
chmod 0777 xxx.sh 常规
附上一个对于 rwx 的说明图
最后理解起来也不是那么难,只是没有去做那件事情罢,和生活中的很多事情一样,你做和不做的结果肯定是不一样的,而且你去做了这件事肯定有收获。
补充:
其实权限还有一位,少说了。因为我都是把 selinux 关掉了的。
直到测试 ACL 的时候才发现,这个点表示的是存在“SELinux 的安全标签”!,如下图所示
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于