linux 檔案和目錄

2021-09-26 04:03:42 字數 2165 閱讀 5165

每個檔案有9個訪問許可權位,可將它們分為3類:

9個訪問許可權位

st_mode遮蔽

含義s_irusr

s_iwusr

s_ixusr

使用者讀使用者寫

使用者執行

s_irgrp

s_iwgrp

s_ixgrp

組讀組寫

組執行s_iroth

s_iwoth

s_ixoth

其他讀其他寫

其他執行

umask函式為程序設定檔案模式建立遮蔽字,並返回之前的值。

#include mode_t umask(mode_t cmask);

返回值:之前的檔案模式建立遮蔽字

其中,引數cmask是由**中的9個常量中的若干個按位「或」構成的。

在程序建立乙個新檔案或者新目錄時,就一定會使用檔案模式建立遮蔽字。在檔案模式建立遮蔽字中為1的位,在檔案mode中的相應位一定被關閉。

#include #include #include #include #include #define rwrwrw (s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth)

int main(void)

umask(s_irgrp|s_iwgrp|s_iroth|s_iwoth);

if (creat("bar", rwrwrw) < 0)

exit(0);

}

mali@mali:~/code/file_dir$ umask

0002

mali@mali:~/code/file_dir$ gcc umask.c -o umask

mali@mali:~/code/file_dir$ ./umask

mali@mali:~/code/file_dir$ ls -l

total 16

-rw------- 1 mali mali 0 8月 13 21:48 bar

-rw-rw-rw- 1 mali mali 0 8月 13 21:48 foo

-rwxrwxr-x 1 mali mali 8760 8月 13 21:48 umask

-rw-rw-r-- 1 mali mali 466 8月 13 21:47 umask.c

mali@mali:~/code/file_dir$ umask

0002

mali@mali:~/code/file_dir$

在該示例中,我們用shell的umask命令在執行程式的前後列印檔案模式建立遮蔽字。從中可見,更改程序的檔案模式建立遮蔽字並不影響其父程序的遮蔽字。

使用者可以設定umask值控制他們所建立檔案的預設許可權。該值表示成八進位制數,一位代表一種要遮蔽的許可權。設定了相應位後,它所對應的許可權就會被拒絕。常用的幾種umask值是002、022和027。002阻止其他使用者寫入你的檔案,022阻止同組成員和其他使用者寫入你的檔案,027阻止同組成員寫你的檔案以及其他使用者讀、寫或執行你的檔案。

umask檔案訪問許可權位

遮蔽位含義0400

使用者讀0200

使用者寫0100

使用者執行

0040

組讀0020

組寫0010

組執行0004

其他讀0002

其他寫0001

其他執行

mali@mali:~/code/file_dir$ umask

0002

mali@mali:~/code/file_dir$ umask -s

u=rwx,g=rwx,o=rx

mali@mali:~/code/file_dir$ umask 027

mali@mali:~/code/file_dir$ umask -s

u=rwx,g=rx,o=

mali@mali:~/code/file_dir$ umask 022

mali@mali:~/code/file_dir$ umask -s

u=rwx,g=rx,o=rx

mali@mali:~/code/file_dir$

linux檔案和目錄

ubuntu沒有碟符這個概念,只有乙個根目錄 所有檔案都在它下面 位於 home user,稱之為使用者工作目錄或家目錄,表示方式 home user 絕對路徑 從 目錄開始描述的路徑為絕對路徑,如 cd home ls usr 相對路徑 從當前位置開始描述的路徑為相對路徑,如 cd ls abc ...

Linux檔案和目錄

多使用者作業系統 指一台計算機在同一時間可以由多個使用者使用,多個使用者共同享用系統的全部硬體和軟體資源 位於 home user,稱之為使用者工作目錄或家目錄,表示方式 home user bin usr bin 可執行二進位制檔案的目錄,如常用的命令 ls tar mv cat 等 boot 放...

Linux 檔案和目錄

多使用者作業系統 指一台計算機在同一時間由多個使用者使用,多個使用者同時共享系統的全部硬體和軟體資源。windows中,每個驅動器都有自己的根目錄,即碟符c,d,e等,但在linux中,看不到驅動碟符,能看到的是資料夾。ubuntu中沒有碟符這個概念,只有乙個根目錄 所有檔案都在它下面 使用者的家目...