RHCE 学习笔记(6)权限管理

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://beanxyz.blog.51cto.com/5570417/1593816

RHEL里面执行ls命令时,可以看见第一个字母来判断类型。

常见的类型有 

d (目录)

- (普通文件)

c (设备文件 字符型)

b (设备文件,块文件)

l ( 软连接,快捷方式)


例如,目录和普通文件

RHCE 学习笔记(6)权限管理


设备文件

RHCE 学习笔记(6)权限管理


软连接

RHCE 学习笔记(6)权限管理


设备文件,块文件(硬盘)

RHCE 学习笔记(6)权限管理


首先看看如何更改文件的所有者 chown, -R表示递归的处理所有的子目录和子文件,-v表示输出详细的变化结果


RHCE 学习笔记(6)权限管理


更改文件或者目录的组


RHCE 学习笔记(6)权限管理


具体的权限可以通过中间9位2进制数值来设置,分别代表u(所有者),g(组)和 o (其他人)的 r (读)w(写)x(执行)权利



可以用 rwxrwxrwx来表示对应拥有的权限,如果没有权限,标记-

RHCE 学习笔记(6)权限管理


简单的例子,可以用u+或者g-来添加或删除权限

a=u+g+o


RHCE 学习笔记(6)权限管理


值得注意的是对于目录的权限设定,必须至少具有读和执行的权限才能正常访问。如果只具有X,那么只能cd 进去,但是无法ls内容。


例如,新创建的xx目录,默认是755权限


RHCE 学习笔记(6)权限管理

去掉其他用户的读权限以后

RHCE 学习笔记(6)权限管理


beanxyz用户可以cd该目录,但是无法读取内容

RHCE 学习笔记(6)权限管理


改回来就回复正常访问了

RHCE 学习笔记(6)权限管理


前面说了默认创建的文件权限是644,目录权限是755, 这是怎么回事呢,这是通过umask过滤造成的。

文件的默认权限本应该是666,而目录是777,umask的默认值为0022,通过对应位的过滤,就变成了644和755.

1
2
3
4
文件  (666)           110 110 110
umask(222)            000 010 010
-----------------------------------------------
                        110 100 100 (644)
1
2
3
4
目录     (777)        111 111 111
umask    (222)         000 010 010
------------------------------------------------
                        111 101 101 (755)




类似的给定一个需要的默认权限,如何倒推回去?

比如我需要创建的默认文件和目录权限都是444,那么我的umask应该是多少?


如下所示,对于文件而言,每个用户的第三位本身就是没有权限的,因此不论是否过滤,都是0,对于Umask而言,第三位的部分是0 是1都不影响结果; umask可以是333,323,222,223,232,332等等任意组合


对于目录而言,结果是唯一,只能是333;


综上所述,umask的选择应该是333

1
2
3
4
文件    (666)       110 110 110
umask(???)          011 011 011
-----------------------------------------------
                     100 100 100 (444)
1
2
3
4
目录      (777)        111 111 111
umask    (???)          011 011 011 ( 333)
------------------------------------------------
                        100 100 100 (444)


权限设置还有两个特殊的属性位, s位和t位;


s位位于二进制的可执行程序的U位的时候,简称SUID,这个时候其他人执行这个程序,具有和所有者相同的权限;


例如用户可以通过passwd更改自己的密码,而实际的密码是保存在/etc/shadow中的,用户执行passwd的时候其实是通过所有者root的权限对shadow文件进行了修改


RHCE 学习笔记(6)权限管理


s位位于目录的G位的时候,简称GUID,这个时候的作用是所有新创建的子目录和文件会自动的继承这个组


例如创建一个testgroup组,加到test目录上

RHCE 学习笔记(6)权限管理


然后修改g位

RHCE 学习笔记(6)权限管理


创建新文件和目录

RHCE 学习笔记(6)权限管理

查看属性

RHCE 学习笔记(6)权限管理


最后还有一个特殊的属性位是t 位,他一般是位于目录的o位置,锁定文件不可删除。只有root和所有者可以删除。比如系统自带的/tmp就是这样


RHCE 学习笔记(6)权限管理


简单的记忆 SUID 4, SGID 2, SBIT 1

因此,如果将一个可执行文件设置为 -rwsr-xr-x,可以标记为4755


最后看看隐藏的特殊属性


chattr 可以设置一些特设性质,比如+a 只能增加不可减少


RHCE 学习笔记(6)权限管理


+i 不可对文件进行任何修改

RHCE 学习笔记(6)权限管理


lsattr可以查看特殊属性

RHCE 学习笔记(6)权限管理



本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1593816

上一篇:git分支原理命令图文解析


下一篇:hibernate5(13)注解映射[5]一对一共享主键关联