1. 程式人生 > >linux mkdir函式建立指定許可權的檔案

linux mkdir函式建立指定許可權的檔案

linux的mkdir 函式原型如下:

int mkdir(const char *pathname, mode_t mode);

函式說明:

   mkdir()函式以mode方式建立一個以引數pathname命名的目錄,mode定義新建立目錄的許可權, mode要以0開頭,例如0766。 返回值:     若目錄建立成功,則返回0;否則返回-1,並將錯誤記錄到全域性變數errno中。 mode方式: 
S_IRWXU 00700許可權,代表該檔案所有者擁有讀,寫和執行操作的許可權
S_IRUSR(S_IREAD) 00400許可權,代表該檔案所有者擁有可讀的許可權
S_IWUSR(S_IWRITE) 00200許可權,代表該檔案所有者擁有可寫的許可權
S_IXUSR(S_IEXEC) 00100許可權,代表該檔案所有者擁有執行的許可權
S_IRWXG 00070許可權,代表該檔案使用者組擁有讀,寫和執行操作的許可權
S_IRGRP 00040許可權,代表該檔案使用者組擁有可讀的許可權
S_IWGRP 00020許可權,代表該檔案使用者組擁有可寫的許可權
S_IXGRP 00010許可權,代表該檔案使用者組擁有執行的許可權
S_IRWXO 00007許可權,代表其他使用者擁有讀,寫和執行操作的許可權
S_IROTH 00004許可權,代表其他使用者擁有可讀的許可權
S_IWOTH 00002許可權,代表其他使用者擁有可寫的許可權
S_IXOTH 00001許可權,代表其他使用者擁有執行的許可權

今天使用該函式建立目錄,希望建立一個775的許可權的目錄。但是建立一直失敗。

後來查閱資料後發現

需要先呼叫umask函式。

該函式原型:mode_t umask(mode_t mask);

函式說明 umask()會將系統umask值設成引數mask&0777後的值,然後將先前的umask值返回。在使用open()建立新檔案時,該引數mode並非真正建立檔案的許可權,而是(mode&~umask)的許可權值。例如,在建立檔案時指定檔案許可權為0666,通常umask值預設為022,則該檔案的真正許可權則為0666&~022=0644,也就是rw-r--r--返回值此呼叫不會有錯誤值返回。返回值為原先系統的umask值。

因此,建立0775的目錄,需要先執行umask(0) 然後再呼叫mkdir函式。這樣就成功了。

轉載地址: http://www.cnblogs.com/aizaifengyu/archive/2012/12/06/2805232.html

相關推薦

linux mkdir函式建立指定許可權檔案

linux的mkdir 函式原型如下: int mkdir(const char *pathname, mode_t mode); 函式說明:    mkdir()函式以mode方式建立一個以引數pathname命名的目錄,mode定義新建立目錄的許可權, mod

自動化---建立指定格式檔案(小寫字母_wana.txt)

指定目錄下通過隨機小寫指定多少個字母加固定字串wana批量建立10個以.txt 檔案例如:aabb_wanan.txt(指定在4個小寫字母) #!/bin/bash #用法:-d filename 如果 filename存在且為目錄,則為真 #cut -c

在VC中運用mkdir函式建立多級目錄

mkdir函式只能在已存在的目錄下建立一級子目錄,如果有如此路徑: C:\Documents \test\data,直接建立此目錄是不能完成的,需要逐級進行建立。 如下: 假設szPath="<

Linux 學習之建立、刪除檔案和資料夾命令

今天學習了幾個命令,是建立、刪除檔案和資料夾的,在linux裡,資料夾是目錄,下面說下我學習的命令。 建立資料夾【mkdir】   一、mkdir命令使用許可權     所有使用者都可以在終端使用 mkdir 命令在擁有許可權的資料夾建立資料夾或目錄。     二

linux中tar打包指定路徑檔案

壓縮: tar czvf /data/backup/test.tar.gz /data/a/b/directory 解壓: cd /data/test  tar xzvf /data/backup/test.tar.gz 問題是,解壓後的檔案,在/data/test/dat

linux mkdir -p 建立多級目錄

mkdir -p  一次性建立層級目錄, 如果目錄存在,則不做覆蓋建立。 如果你有mkcd,就可以直接  mkcd src/a/img。    此外,如果我們想建立多層次、多維度的目錄樹,mkcd

Python os.mkdir()函式建立目錄的實際操作方案

如果你對Python os.mkdir()函式建立目錄的實際應用方案的實際操作有不解之處時,你就可以瀏覽以下的文章對其進行更深入的瞭解,以下對Python使用os.mkdir()函式建立目錄的相關實際操作的介紹。 建立目錄在Python中可以使用os.mkdir()函式

php linux下無法建立777許可權目錄的問題

php 的mkdir命令受apache賬號許可權限制,只能建立低於其許可權的目錄 但chmod不受其限制 程式碼: function makeDir($dir, $mode = 0777) { if (!$dir) return false;

linux.1:建立分割槽和檔案系統

Command (? for help): l 0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE 3000 ONIE boot 3001 ONIE config

[小技巧]open()函式建立檔案時便捷的許可權設定

[小技巧]open()函式建立檔案時便捷的許可權設定 2016年07月18日 17:14:12 嵐漾憶雨 閱讀數:3404更多 個人分類: LinuxC程式設計 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net

linux】ftp建立檔案許可權問題

一、問題 有一個這樣的需求,admin為一個Linux為其FTP應用建立的一個有許可權限制的使用者,通過admin使用者可以進行登入FTP服務,登入FTP服務後,建立資料夾,該資料夾的使用者和使用者組都是admin,屬性為755,即只有admin使用者才有寫的許可權,但是,

C語言open()和creat()函式建立檔案時,檔案許可權設定相關

open()和creat()建立檔案時,檔案許可權說明 首先了解一下 umask 命令,該命令用來設定限制新檔案許可權的掩碼。當新檔案被建立時,其最初的許可權由檔案建立掩碼決定。簡單地來說,umask和open()及creat()函式的許可權碼(mode_t mode引數)共同決定你

linux mkdir 命令用來建立指定的名稱的目錄

linux mkdir 命令用來建立指定的名稱的目錄,要求建立目錄的使用者在當前目錄中具有寫許可權,並且指定的目錄名不能是當前目錄中已有的目錄。 1.命令格式: mkdir [選項] 目錄... 2.命令功能: 通過 mkdir 命令可以實現在指定位置建立以 Di

linux中使用者建立與刪除以及檔案許可權檢視和修改

一、 1.檢視使用者 命令如下:whoami 關於who的其他命令大全 2.建立使用者   建立使用者命令:sudoadduser hello   超級使用者是 root   刪除使用者名稱命令:sudodeluser hello --remove-home   切換使用

linux設定umask值, 建立的預設檔案和目錄的許可權

LINUX中  設定了umask  建立的預設檔案和目錄的許可權普通檔案預設是644 自已有讀寫(rw),同組人員有讀(r),其它有讀(r) 預設許可權可通過umask 修改 預設umask 為022 檔案:666 - 022 = 644 目錄:777 - 022 = 755

Linux運維入門~6.檔案許可權管理

出於安全的考慮,多使用者作業系統需要具備保障個人隱私和系統安全的機制。在Linux中,無論是文件還是硬體裝置都以檔案的形式存在, 相應地,安全機制也主要表現為對檔案訪問許可權的控制。要保證相應的檔案被可用的使用者操作。 本節就是linux相應的檔案許可權管理。 1.檢視檔案許可權 l

5.第5講-linux視訊教程第5講 檔案許可權 使用者組1

檔案許可權 使用者組1 ### 1. 檔案所有者、所有組和其他組 ### ###2.檔案所有者、所在組和其他組### ** 如何在linux中新增組** -groupadd policeman 檢視linux中所有組的資訊 -vi /etc/group 看了可以修改 -cat

LINUX 的解壓命令 更改檔案許可權 安裝檔案上傳命令rz (ubuntn作業系統)

檔案上傳的命令 安裝包 使用命令apt-get install lrzsz來安裝lrzsz。 apt-get install lrzsz #設定資料夾的許可權 sudo chmod 777 ./stock-back/ -R 此文參考的大佬的 連結給忘了 如果不瞞請聯絡我 linux

Linux使用者、使用者組、檔案許可權學習筆記

最近打算更仔細學習一下linux作業系統。先是惡補了一下使用者、使用者組、檔案許可權這三樣比較重要的知識。學習這幾樣東西,得先掌握linux的許可權系統相關知識。linux的許可權系統主要是由使用者、使用者組和許可權組成。使用者就是一個個的登入並使用linux的使用者。linux內部用UID表示。使用者組就是

青蛙學Linux—使用者、組、許可權檔案屬性

1、使用者和組 1.1、使用者角色 在Linux下有以下三種角色使用者: 超級使用者:擁有對系統的最高管理許可權的使用者,預設使用者名稱為root。需要注意的是,與Windows下的超級管理員Administrator不同,root使用者在Linux下擁有最高的許可權,你可以使用root使用者執行