3 2 Linux檔案屬性 3 4節

2021-08-02 10:39:37 字數 2028 閱讀 7455

(1)檔案型別就是-、d、l····

(2)檔案屬性中的檔案型別標誌在struct stat結構體的mode_t    st_mode元素中,這個元素其實是乙個按位來定義的乙個位標誌(有點類似於arm cpu的cpsr暫存器的模式位定義)。這個東西有很多個標誌位共同構成,記錄了很多資訊,如果要查詢時按位&操作就知道結果了,但是因為這些位定義不容易記住,因此linux系統給大家事先定義好了很多巨集來進行相應操作。

(3)譬如s_isreg巨集返回值是1表示這個檔案是乙個普通檔案,如果檔案不是普通檔案則返回值是0.

(1)st_mode中除了記錄了檔案型別之外,還記錄了乙個重要資訊:檔案許可權。

(2)linux並沒有給檔案許可權測試提供巨集操作,而只是提供了位掩碼,所以我們只能用位掩碼來自己判斷是否具有相應許可權。

#include #include #include #include #include #include #define name "1.txt"

int main(void)

#if 0

// 判斷這個檔案屬性

//int result = s_isreg(buf.st_mode);

int result = s_isdir(buf.st_mode);

printf("result = %d\n", result);

#endif

// 檔案許可權測試

//unsigned int result = (buf.st_mode & s_irwxu) >> 8;

unsigned int result = ((buf.st_mode & s_irusr)? 1: 0);

printf("file owner: %u.\n", result);

return 0;

}

(1)st_mode本質上是乙個32位的數(型別就是unsinged int),這個數里的每乙個位表示乙個含義。

(2)檔案型別和檔案的許可權都記錄在st_mode中。我們用的時候使用專門的掩碼去取出相應的位即可得知相應的資訊。

(1)123456789一共9位,3個一組。第一組三個表示檔案的屬主(owner、user)對該檔案的可讀、可寫、可執行許可權;第2組3個位表示檔案的屬主所在的組(group)對該檔案的許可權;第3組3個位表示其他使用者(others)對該檔案的許可權。

(2)屬主就是這個檔案屬於誰,一般來說檔案建立時屬主就是建立這個檔案的那個使用者。但是我們乙個檔案建立之後還可以用chown命令去修改乙個檔案的屬主,還可以用chgrp命令去修改乙個檔案所在的組。

(1)乙個程式a.out被執行,a.out中試圖去操作乙個檔案1.txt,這時候如何判定a.out是否具有對1.txt的某種操作許可權呢?

(2)判定方法是:首先1.txt具有9個許可權位,規定了3種人(user、group、others)對該檔案的操作許可權。所以我們判定1.txt是否能被a.out來操作,關鍵先搞清楚a.out對1.txt到底算哪種人。準確的說是看a.out被誰執行,也就是當前程式(程序)是哪個使用者的程序。

(3)剛才上面說的是我的分析,到底對不對還得驗證。

#include #include #include #include #include #include #define name "1.txt"

int main(void)

#if 0

// 判斷這個檔案屬性

//int result = s_isreg(buf.st_mode);

int result = s_isdir(buf.st_mode);

printf("result = %d\n", result);

#endif

// 檔案許可權測試

//unsigned int result = (buf.st_mode & s_irwxu) >> 8;

unsigned int result = ((buf.st_mode & s_irusr)? 1: 0);

printf("file owner: %u.\n", result);

return 0;

}

32Linux組資訊檔案

使用者配置檔案 組資訊檔案 etc group 第一欄位是組名 第二欄位是組密碼標誌 第三欄位是gid 第四欄位是組中附加使用者 看不到初始使用者 etc gshadow 第一欄位是組名 第二欄位是組密碼 第三欄位是組管理員使用者名稱 第四欄位是組中附加使用者 vim etc gshadow 檢視一...

linux檔案屬性

linux檔案屬性1 首先檢視一下 ls l 檢視檔案的檔案屬性 上面顯示檔案屬性一共7個常見的字段。各個欄位的含義 1.第乙個字段 檔案許可權 就是 或者r w x的組合。一共10位。左面開始數起,a 第一位 檔案型別 常規檔案 系統普通檔案。d directory 目錄檔案,目錄是特殊的檔案,目...

linux檔案屬性

linux檔案屬性3 目錄是乙個特別的檔案 目錄檔案 比如 drwxr r 就是乙個目錄的許可權 目錄具有r許可權 可以檢視目錄裡面的檔名,只是檢視檔名。是否能夠對檔案操作,那還要看檔案的許可權。目錄具有w許可權 在目錄下 增加檔案 刪除檔案 檔名重新命名 目錄具有x許可權 能夠進入該目錄 能夠使用...