標準IO下對檔案許可權的修改

2021-07-31 07:59:16 字數 1936 閱讀 3753

修改檔案許可權

1.int chmod(const char * path, mode_t mode);

函式說明:chmod()會依引數mode 許可權來更改引數path 指定檔案的許可權。

引數 mode 有下列數種組合:

1、s_ifmt 0170000 檔案型別的位遮罩

2、s_ifsock 0140000 scoket

3、s_iflnk 0120000 符號連線

4、s_ifreg 0100000 一般檔案

5、s_ifblk 0060000 區塊裝置

6、s_ifdir 0040000 目錄

7、s_ifchr 0020000 字元裝置

8、s_ififo 0010000 先進先出

9、s_isuid 04000 檔案的 (set user-id on execution)位

10、s_isgid 02000 檔案的 (set group-id on execution)位

11、s_isvtx 01000 檔案的sticky 位 表示在此目錄下的檔案只能被該檔案所有者、此目錄所有者或root 來刪除或改名.

12、s_irusr(s_iread) 00400 檔案所有者具可讀取許可權

13、s_iwusr(s_iwrite)00200 檔案所有者具可寫入許可權

14、s_ixusr(s_iexec) 00100 檔案所有者具可執行許可權

15、s_irgrp 00040 使用者組具可讀取許可權

16、s_iwgrp 00020 使用者組具可寫入許可權

17、s_ixgrp 00010 使用者組具可執行許可權

18、s_iroth 00004 其他使用者具可讀取許可權

19、s_iwoth 00002 其他使用者具可寫入許可權

20、s_ixoth 00001 其他使用者具可執行許可權上述的檔案型別在 posix 中定義了檢查這些型別的巨集定義

21、s_islnk(st_mode) 判斷是否為符號連線檔案

22、s_isreg(st_mode) 是否為普通檔案

23、s_isdir(st_mode) 是否為目錄檔案

24、s_ischr(st_mode) 是否為字元裝置檔案

25、s_isblk(st_mode) 是否為塊裝置檔案

26、s_issock(st_mode) 是否為套接字socket檔案

chmod("/test/a.text",0777);

注:只有該檔案的所有者或有效使用者識別碼為0,才可以修改該檔案許可權。

2.int fchmod(int fd, mode_t mode);

函式說明:修改fd檔案描述符的檔案許可權

mode_t同上

在已經開啟某一檔案的時候使用該函式比較方便,但是當使用fopen開啟乙個file *fp檔案時就fileno需要轉換後才可以使用

//標準io修改檔案許可權

file* fp = fopen("/test/text.txt","r+");

int fd = fileno(fp);

fchmod(fd, 0664);

fclose(fp);

//檔案io修改檔案許可權

int fd;

fd = open("/etc/passwd", o_rdonly);

fchmod(fd, 0664);

close(fd);

檔案流轉檔案描述符

int fileno(file *stream);

函式說明:用來取得引數stream指定的檔案流所使用的檔案描述符

常用於修改許可權,chmod fcntl dup 等操作函式

檔案描述符轉檔案流

file * fdopen(int fildes, const char * mode);

函式說明:fdopen()會將引數fildes 的檔案描述詞, 轉換為對應的檔案流指標後返回.

ubuntu 下對檔案許可權進行查詢,以及修改

gzy amelia vostro 3470 home ls ll 對所有的檔案進行查詢 total 32 drwxrwxrwx 14 amelia amelia 4096 3鏈 4 14 30 amelia drwxr xr x 4 root root 4096 3鏈 1 09 58 amelia...

Linux下對檔案許可權的相關操作

1.改變使用者對檔案的讀寫執行許可權 chmod 三種基本許可權 r讀 數值表示為4w寫 數值表示為2 x可執行 數值表示為1 例 若檔案test.txt的許可權為 rw rw r 則表示如下資訊 rw rw r 一共十個字元,分成四段。第乙個字元 表示普通檔案 這個位置還可能會出現 l 鏈結 d ...

語言 Linux下的檔案IO和標準IO

檔案io與標準io 1.檔案oi又稱為低磁碟io 遵循posix標準,標準io又稱為高磁碟io,遵循ansi c相關標準。linux中使用的的是glibc,它是標準c庫的超集,不僅包含ansi c中定義的函式,也包含posix標準中定義的函式。故而linux中檔案io和標準io都可以使用。2.標準i...