chmod 和 umask
chmod
描述:chmod用于设置文件的权限
使用方法:
1、chmod [user] Op-code Permission file/directory
//user:u 所有者 g 所属组 o 其他
//Op-code:+ 增加文件的访问权限 - 撤消文件的某权限 = 规定绝对权限
//Permission:r 读 w 写 x 执行
//file/directory:文件名或目录名
示例:chmod a+x temp.c
2、chmod Permcode file/directory
//Permcode:
//Unix/Linux使用三个域(三位一域)分别对应所有者、所属组、其他用户的权限
//如:-rwxrw-r--(第一位代表文件类型)
//其中,001(转换成10进制就是1)代表可执行;010(转换成10进制就是2)代表写;100(转换成10进制就是4)代表读
//将三者加起来就是该域的Permcode,如111(1+2+4)=7;
111 rwx 7 读写执行
110 rw- 6 读写
101 r-x 5 读执行
100 r-- 4 读
011 -wx 3 写执行
010 -w- 2 写
001 --x 1 执行
000 --- 0
//将三个域的Permcode连起来就是文件或者目录的权限,如111 101 101(7+5+5)=755
示例:chmod 755 temp.c
更多请参考:man chmod
umask
描述: 用于设置创建新文件或者新目录的初始权限.将现有的存取权限减去权限掩码后得到创建文件或目录的初始权限。
文件:用八进制基数666,即无x位(可执行位,为了安全)rw- rw- rw-.执行位需在创建文件后使用chmod更改获取
目录:用八进制基数777
使用方法:umask [0~777]
//三位八进制数字,显示系统目前的umask值或者设置umask值
示例:
1、要使生成的文件初始权限为:rw- r-- r--,即真实权限用八进制表示为644,则被666基数减得022,022即掩码。使用umask 022
注:033效果与022一样,假设使用033掩码进行设置,则真实权限应为633即rw- r-x r-x ,但前提规定文件不生成x位,所以文件的权限最终将以rw-r--r--出现
2、要使生成的目录初始权限为:rwxr-xr-x,即真实权限用八进制表示为755,则被基数为777的权限字相减后,得掩码022。则使用umask 022进行设置说明: umask 告诉系统禁用哪个权限。如Linux 系统上,umask 的缺省值一般为 0022。
示例:
>umask 022
>touch t
>mkdir d
>ls -l
drwxr-xr-x 2 codefor codefor 4096 2010-12-26 11:21
d-rw-r--r-- 1 codefor codefor 0 2010-12-26 11:21 t
(注:文件默认是没有x执行权限的,使用umask后还要去除执行权限)
更多请参考:man umask
总结:
chmod是设哪个位,哪么哪个位就有权限,而umask是设哪个位,则哪个位上就没权限。
使用umask时,文件基数为666,目录为777,即文件无设x位,目录可设x位。