发布网友 发布时间:2022-04-19 21:47
共3个回答
热心网友 时间:2022-06-17 13:39
在Linux系统中,目录最大的权限是777,文件最大的权限是666,因为基于安全原因,新建的文件不允许有执行权限,所以从文件的权限位来看,文件比目录少了执行(x)权限。
下面来设置不同的umask值并创建文件:
可以发现用666减去222就得到了444。
从结果中可以发现新建的文件权限并不是666-123=543,而是644,而目录的权限却是正常减出来的值777-123=654,这是为啥呢?我们把文件的最大值666和umask值123转换成二进制对位展开来看下:
从结果来看就验证了前面说的“umask是将文件的对应权限位遮掩住”,1表示遮掩,0则反之。
为了方便记忆可以用下面的这种计算方法:
目录:默认权限是777减去umask值的结果
文件:默认权限是666减去umask值,权限位对应的值如果为奇数则加1,例如:666-123=543,其结果是644。
作用于可执行的二进制程序,用户执行此程序时,将继承此程序所有者的权限。一般情况下,文件能不能访问取决于用户的身份,而不是取决于文件本身。但是,有了suid权限的文件就不是这么一回事了,最明显的就是/etc/shadow这个文件。
都知道这个文件是用来保存用户密码的,默认情况下,普通用户对此文件没有任何权限,但是当用户执行passwd这个二进制程序时却能更改口令,同时也会将加密后的密码保存到文件中,这正是passwd这个二进制程序的特殊权限所在。
热心网友 时间:2022-06-17 13:40
Linux系统的ext3文件系统中的权限可以用字母表示,r 表示文件可读(read),w 表示文件可以写(write),x 表示文件可以被执行(如果它是程序的话)。其中:rwx也可以用数字来代替:r为4,w为2,x为1,-为0。热心网友 时间:2022-06-17 13:40
首先这里的&是按位操作符,可以理解为 和 的意思追答7-3=4
目录只有4+2 的权限没有 1 这个权限
所以umask 掩码003 那就是 去掉了2+1 这个权限
目录不考虑1 这个权限 所以目录只剩下4这个权限
目录里的文件是4+2+1 4+2+1 4
你目录的权限必然就是 4+2 4+2 4
不太会讲,不知道你能理解不。