Summary:chmod 和 umask

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位。

posted @ 2010-12-26 11:51  Codefor  阅读(554)  评论(0编辑  收藏  举报