日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux文件属性3——文件权限管理

發布時間:2023/12/20 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux文件属性3——文件权限管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源于朱有鵬《物聯網大講堂》課程的學習整理,如有侵權,請告知刪除。


1、st_mode中記錄的文件權限位

  • st_mode本質上是一個32位的數(類型就是unsinged int),這個數里的每一個位表示一個含義。
  • 文件類型和文件的權限都記錄在st_mode中。
  • 我們使用專門的掩碼去取出相應的位即可得知相應的信息。

2、ls ?-l,打印出權限列表

(1)共9位,3個一組。

  • 第一組三個表示文件的屬主(owner、user)對該文件的可讀、可寫、可執行權限;
  • 第2組3個位表示文件的屬主所在的組(group)對該文件的權限;
  • 第3組3個位表示其他用戶(others)對該文件的權限。

(2)屬主表明這個文件屬于誰

  • 一般來說文件的屬主就是創建這個文件的那個用戶;
  • 但是一個文件創建之后可以用chown命令去修改文件屬主,用chgrp命令去修改文件所在的組;

3、文件操作時的權限檢查規則

一個程序a.out被執行,a.out中試圖去操作一個文件1.txt。如何判定a.out是否具有對1.txt的某種操作權限呢?

  • 首先1.txt具有9個權限位,規定了3種人(user、group、others)對該文件的操作權限;
  • 判定1.txt是否能被a.out來操作,關鍵先搞清楚a.out對1.txt到底算哪種人;
  • 準確的說是看a.out(假設是777)被誰執行,也就是當前程序(進程)是哪個用戶的進程。

4、access函數檢查權限設置

  • access函數,檢測當前執行程序的那個用戶在當前那個環境下對目標文件是否具有某種操作權限。

#include <stdio.h> #include <unistd.h>#define NAME "3.txt"int main(void) {int ret = -1;ret = access(NAME, F_OK);if (ret < 0){printf("文件不存在 \n");return -1;}else{printf("文件存在 ");}ret = access(NAME, R_OK);if (ret < 0){printf("不可讀 ");}else{printf("可讀 ");}ret = access(NAME, W_OK);if (ret < 0){printf("不可寫 ");}else{printf("可寫 ");}ret = access(NAME, X_OK);if (ret < 0){printf("不可執行 \n");}else{printf("可執行 \n");} return 0; }

5、chmod/fchmod與權限修改

  • chmod是一個linux命令,用來修改文件的各種權限屬性;
  • chmod命令只有root用戶才有權利去執行修改;
  • chmod命令是調用linux內部的chmod這個API來實現的;第一個參數表示文件指針,第二表示希望文件有的屬性。


#include <stdio.h> #include <sys/stat.h> int main(int argc, char **argv) {int ret = -1; if (argc != 2){printf("usage: %s filename\n", argv[0]);return -1;}ret = chmod(argv[1], S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWOTH);if (ret < 0){perror("chmod");return -1;}return 0; }

6、chown/fchown/lchown與屬主修改

  • linux中有個chown命令來修改文件屬主;
  • chown root 1.txt;注意要在root用戶下修改;
  • chown命令是用chown API實現的;

7、umask與文件權限掩碼

  • 文件掩碼是linux系統中維護的一個全局設置;
  • umask用來設定系統中,新創建的文件的默認權限;
  • umask命令通過調用umask這個API來實現。
  • umask 0022,之后創建的文件都是相應互補的權限。

總結

以上是生活随笔為你收集整理的Linux文件属性3——文件权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。