`

unix环境高级编程-4.8-umask函数

 
阅读更多

自此我们已经说明了每个文件相关联的9个访问权限位。在此基础上,我们可以说明与每个进程相关联的文件模式创新屏蔽字。

umask函数为进程设置文件模式创建屏蔽字,并返回以前的值。

查看GNU C手册。

mode_t umask (mode t mask) [Function]
The umask function sets the file creation mask of the current process to mask, and
returns the previous value of the file creation mask.
Here is an example showing how to read the mask with umask without changing it
permanently:
mode_t
read_umask (void)
{
mode_t mask = umask (0);
umask (mask);
return mask;
}
However, it is better to use getumask if you just want to read the mask value, because
it is reentrant (at least if you use the


其中,参数cmask是由上一章中列出的9个常量中或按位或构成的。

在进程创建一个新文件或新目录的时候,就一定会使用文件模式创建屏蔽字节。在那里我们说明了open函数和creat函数。这两个函数都有一个mode参数。他指定了新文件的访问权限。

对于任何在文件模式创建屏蔽字中为1的位。在文件mode忠的系那个硬位则一定被关闭。

实例

运行结果:

UNIX系统的大多数用户从不处理他们的umask值,通常在登录的时候,由shell的启动文件设置一次,然后从不改变。尽管如此,当编写创建新文件的程序时候,如果我们系那个确保指定的访问权限已经激活。那么必须在进程运行时候修改umask值。例如我们想确保任何用户能够读文件,则应该将umask值这位0,否则当我们远程运行时候,有效地umask值可能关闭改权限位。

从上边结果可见,

更改进程的文件模式创建屏蔽字,并不影响其父进程的屏蔽字。所有shell都内置了umask命令,我们可以用该命令设置或打印当前文件模式创建屏蔽字。

用户可以设置umask值以控制他们的所创建文件的默认权限。该值表示八进制数。一位代表一种要屏蔽的权限。设置了相对应的权限就会被拒绝。通常使用几种的umask值是002,022,027和002阻止其他用户写入你的文件。022阻止同组成员和其他用户写你的文件,027阻止同组成员写你的文件以及其他用户读写或者执行你的文件。

表4-7 umask文件访问权限位

屏蔽位 意义

0400

0200

0100

0040

0020

0010

0004

0002

0001

用户读

用户写

用户执行

组读

组写

组执行

其他读

其他写

其他执行

简单使用umask 案例

更多请关注:http://blog.csdn.net/wallwind

分享到:
评论

相关推荐

    UNIX环境高级编程

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程第二版

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程(中文版+英文版+源代码)

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程.pdf

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程_第2版.part2

    4.8 umask函数79 4.9 chmod和fchmod函数81 4.10 粘住位83 4.11 chown、fchown和lchown函数84 4.12 文件长度85 4.13 文件截短86 4.14 文件系统86 4.15 link、unlink、remove和rename 函数89 4.16 符号链接91...

    UNIX环境高级编程(PDF)

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程中文版

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接 ...

    Unix环境高级编程电子书

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程和源代码

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接 ...

    UNIX环境高级编程 不扣分哦

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程_第二版中文

    4.8 umask函数  4.9 chmod和fchmod函数  4.10 粘住位  4.11 chown、fchown和lchown函数  4.12 文件长度  4.13 文件截短  4.14 文件系统  4.15 link、unlink、remove和rename函数  4.16 符号链接  ...

    UNIX环境高级编程(第二版中文).pdf

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

    UNIX环境高级编程(第二版中文)

    4.8 umask函数 79 4.9 chmod和fchmod函数 81 4.10 粘住位 83 4.11 chown、fchown和lchown函数 84 4.12 文件长度 85 4.13 文件截短 86 4.14 文件系统 86 4.15 link、unlink、remove和rename函数 89 ...

    中文第一版-UNIX环境高级编程

    4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接...

Global site tag (gtag.js) - Google Analytics