国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

文件和目錄之umask函數(shù)

2024-06-28 13:28:49
字體:
供稿:網(wǎng)友
文件和目錄之umask函數(shù)

本篇博文內(nèi)容摘自《UNIX環(huán)境高級編程》(第二版),僅作個人學(xué)習(xí)記錄所用。關(guān)于本書可參考:http://www.apuebook.com/

umask函數(shù)為進程設(shè)置文件模式創(chuàng)建屏蔽字,并返回以前的值。(這是少數(shù)幾個沒有出錯返回函數(shù)中的一個。)

#include <sys/stat.h>mode_t umask( mode_t cmask);
返回值:以前的文件模式創(chuàng)建屏蔽字

其中,參數(shù)cmask是由S_IRUSR、S_IWUSR、S_IXUSR、S_IRGRP、S_IWGRP、S_IXG、S_IROTH、S_IWOTH及S_IXOTH這9個常量中的若干個按位“或”構(gòu)成的。

在進程創(chuàng)建一個新文件或新目錄時,就一定會使用文件模式創(chuàng)建屏蔽字。對于任何在文件模式創(chuàng)建屏蔽字中為1的位,在文件mode中的相應(yīng)位則一定被關(guān)閉。

程序清單4-3 umash函數(shù)實例

[root@localhost apue]# cat PRog4-3.c#include "apue.h"#include <fcntl.h>#define RWRWRW (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)int main(void){        umask(0);        if(creat("foo", RWRWRW) < 0)                err_sys("creat errro for foo");        umask(S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);        if(creat("bar", RWRWRW) < 0)                err_sys("creat error for bar");        exit(0);}

若運行此程序可以得到如下結(jié)果,從中可見訪問權(quán)限是如何設(shè)置的。

[root@localhost apue]# ./prog4-3[root@localhost apue]# ls -l foo bar-rw------- 1 root root 0 01-02 02:00 bar-rw-rw-rw- 1 root root 0 01-02 02:00 foo

更改進程的文件模式創(chuàng)建屏蔽字并不影響其父進程(常常是shell)的屏蔽字。

所有shell都有內(nèi)置umask命令,我們可以用該命令設(shè)置或打印當(dāng)前文件模式創(chuàng)建屏蔽字。

用戶可以設(shè)置umask值以控制他們所創(chuàng)建文件的默認權(quán)限。該值表示成八進制數(shù),一位代表一種要屏蔽的權(quán)限(讀-4、寫-2、執(zhí)行-1,可相加如6-讀寫)。設(shè)置了相應(yīng)位后,它所對應(yīng)的權(quán)限就會被拒絕。常用的幾種umask值是002、022、和027,002阻止其他用戶寫你的文件,022阻止同組成員和其他用戶寫你的文件,027阻止同組成員寫你的文件以及其他用戶讀、寫或執(zhí)行你的文件。

Single UNIX Specification要求shell支持符號形式的umask命令。與八進制格式不同,符號格式指定許可的權(quán)限(即在文件創(chuàng)建屏蔽字中為0的位)而非拒絕的權(quán)限(即在文件創(chuàng)建屏蔽字中為1的位)。下面比較了兩種格式的命令:

[root@localhost apue]# umask0022[root@localhost apue]# umask -Su=rwx,g=rx,o=rx

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 莆田市| 盖州市| 澜沧| 商河县| 临澧县| 沂源县| 陕西省| 视频| 邯郸市| 辽宁省| 前郭尔| 扬中市| 兴海县| 滨州市| 满城县| 福清市| 晋宁县| 陕西省| 陆丰市| 甘孜县| 宝鸡市| 玉环县| 民乐县| 台东县| 宁南县| 台北县| 衡山县| 大同市| 郁南县| 城市| 武清区| 睢宁县| 宜城市| 福贡县| 高平市| 马龙县| 新民市| 洛扎县| 定陶县| 康马县| 抚宁县|