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)。
chmod----改變一個或多個檔案的存模數式(mode)
chmod [options] mode files
只能檔案屬主或特權使用者才能使用該功能來改變檔案存模數式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,預設是a(所有使用者)。只能選擇一個opcode(作業碼)。可指定多個mode,以逗號分開。
options:
-c,--changes
只輸出被改變檔案的資訊
-f,--silent,--quiet
當chmod不能改變檔案模式時,不通知檔案的使用者
--help
輸出協助資訊。
-R,--recursive
可遞迴遍曆子目錄,把修改應到目錄下所有檔案和子目錄
--reference=filename
參照filename的許可權來設定許可權
-v,--verbose
無論修改是否成功,輸出每個檔案的資訊
--version
輸出版本資訊。
who
u
使用者
g
組
o
其它
a
所有使用者(預設)
opcode
+
增加許可權
-
刪除許可權
=
重新分配許可權
permission
r
讀
w
寫
x
執行
s
設定使用者(或組)的ID號
t
設定粘著位(sticky bit),防止檔案或目錄被非屬主刪除
u
使用者的當前許可權
g
組的當前許可權
o
其他使用者的當前許可權
作為選擇,我們多數用三位八位元字的形式來表示許可權,第一位指定屬主的許可權,第二位指定組許可權,第三位指定其他使用者的許可權,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定許可權。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的許可權。
還可設定第四位,它位於三位許可權序列的前面,第四位元字取值是4,2,1,代表意思如下:
4,執行時設定使用者ID,用於授權給基於檔案屬主的進程,而不是給建立此進程的使用者。
2,執行時設定使用者組ID,用於授權給基於檔案所在組的進程,而不是基於建立此進程的使用者。
1,設定粘著位。