转载自: 网络
1、umask值:它定义了用户新建文件以及文件夹的所具有的权限。 这同windows里面的权限继承有点相似。 umask的配置/etc/profile umask的值的算法:这可能是很多linux爱好者比较迷惑的地方。我在这里就贡献一个我的自己总结的一个算法,有不正确的请大家一起来探讨一下。 umask的值+chmod文件的值=666 umask的值+chmod文件夹的值=777 比如你新建了一个文件,myfile,你的umask的值是022那么这个文件具有的权限是多少乃?是644。哈哈,请注意,凡是具有可执行权限的内容都要使用第二个公式。
查看umask参数:umask;设置umask参数:umask ***
如果创建文件则预设没有可执行项目, 即只有rw两个项目,就是最大为666分,为: --rw-rw-rw-
如果创建目录,则由于x与是否可以进入此目录有关, 因此预设为所有权限均开放为777分,即:drwxrwxrwx
那么 umask 指定的是『该默认值需要减掉的权限!』因为 r、w、x 分别是 4、2、1 分,所以啰!也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉执行与写入的权限,也就是 3 分,这样了解吗?请问您, 5 分是什么?呵呵!就是读与执行的权限啦!如果以上面的例子来说明的话,因为 umask 为 002 ,所以 user, group 并没有被拿掉属性,不过 others 的属性被拿掉了 2 ( 也就是 w 这个属性 ),那么由于当使用者: 建立档案时:(-rw-rw-rw-) – (--------w-) ==> -rw-rw-r--建立目录时:(drwxrwxrwx) – (--------w-) ==> drwxrwxr-x
做个测试:
[root@vbird test]# umask 003[root@vbird test]# touch test3[root@vbird test]# mkdir test4[root@vbird test]# ll-rw-rw-r-- 1 root root 0 Oct 22 00:03 test3drwxrwxr-- 2 root root 4096 Oct 22 00:03 test4/
分析:
(-rw-rw-rw-) - (--------wx)=-rw-rw-r--
2、权限位和修改 rwx rwx rwx 所有者 所有者所在的组 其他用户 如果用数字表示,r=4,w=2,x=1。r是读的意思,w是写的意思,x是执行。 你可以使用命令来修改权限。一般情况下,这个命令只能有root来执行。请注意。 chmod [参数] [模式] <文件或者目录>; /符号标记模式 [参数] -c 只有在文件的权限确认改变才进行详细说明 -f 不输出权限不能改变的文件的错误 -v 详细说明权限的变化 -r 改变目录及其子目录的文件的权限(比较有用) [模式] [ugoa] [+-=] [rwxXs] u:文件的所有者 g:所有者所在的组 o:其他的组 a:其他的用户 +:增加 -:去掉 =:指定文件的权限 r:是读的意思 w:是写的意思 x:是执行 X:只有目标文件对某些用户是可执行的火灾该目标文件是目录是才追加X属性。 t:T位,拒绝删除的权限位 s:设置SUID,SGID,指拥有这样的权限的可执行程序当某一用户执行的时候拥有属主或者属主所在的组的权限。 当然,你也可以使用数字来表示权限,用数值请注意了 XYZ,四个位 x代表文件的类型,你只有通过mc才能看到。 y代表SUID,SGID,T位,其中SUID=4,SGID=2,T位=1 Z代表权限位r=4,w=2,x=1 比如现在我要修改一个文件的权限,让它的权限为属主拥有所有权限,属主所在的组拥有读和写的权限,其他用户拥有读的权限,并防止其他用户删除我的文件。那么执行 #chmod 1764 myfile 用字符表示就是 #chmod u+rwx,g+rw,o+r,a+T myfile 3、修改属主和属主所在的组 使用chown来修改 比如你要将myfile的属主修改为nicry的,那么请使用 #chown nicry myfile 如果你要将文件的属主所在的组改为sohubbs组,请使用 #chown .sohubbs myfile 和在一块就是 #chown nicry.sohubbs myfile 注意,该命令为root专用。
参考链接: