歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux問題解決

Linux mkdir函數mode權限設置方法

mkdir的函數原型(使用時需包含#include <sys/stat.h>):

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

參數:

path——目錄名,比如abc,/var/www/abc等

mode——目錄權限

返回值:

返回0 表示成功, 返回 -1表示錯誤,並且會設置errno值。

關於Mode定義,請參考:http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html

當然你也可以不用那些類似S_IRWXU、S_IRUSR...類似的宏參數,畢竟很難記憶,反倒不如8進制的0421好記。組合樣式為:owner-group-others,不同人都分三個規則讀-寫-執行(r-w-x),全部許可就是7。

1、編程時使用mkdir("test",777)報錯
試一下:

mkdir("test",0777);

寫成mkdir("test",777)有可能無法執行。但是依稀記得,以前都是用777的也沒錯誤,具體忘記了,反正按照規范寫絕對沒錯。

2、umask命令使用
另外假設你的程序目錄在/root/abc/下,那麼如果你的程序執行時想在/var/www下創建目錄時,有可能你始終創建一個0777的目錄總是創建成0755目錄,這時可以嘗試使用umask(0)命令。

umask只對當前目錄有效,默認umask值為0022,所以你無法在另外一個地方直接創建0777的目錄。

而是0777-0022=0755

3、如何創建某個用戶組的文件夾
/etc/passwd和/etc/group找到UID和gid

mkdir /var/ugroup

我們可以直接使用chown來改變文件所有者。

chown root:newuser /var/ugroup

修改權限

chmod 740 /var/ugroup/*

4、察看創建後目錄權限情況命令:
定位到該用戶組目錄下,執行:

ls -all

會顯示類似:

drwxrwxr-x

這樣的結果(0775)。
Copyright © Linux教程網 All Rights Reserved