最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux之umask權限掩碼解讀

 更新時間:2025年05月30日 08:57:58   作者:kucupung  
這篇文章主要介紹了linux之umask權限掩碼,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

umask這個接口在一些程序初始化的時候經常會見到,處于安全性,可以縮小進程落盤文件的權限。

linux文件系統(tǒng)的權限規(guī)則

文件的默認權限由系統(tǒng)決定(通常是 0666,即所有人可讀可寫)。

目錄的默認權限通常是 0777(所有人可讀可寫可執(zhí)行)。

實際創(chuàng)建的文件 / 目錄權限 = 默認權限 & ~mask(按位取反后與默認權限按位與)。

1. 權限的二進制與八進制對應

權限二進制值八進制值符號表示
讀 (Read)1004r
寫 (Write)0102w
執(zhí)行 (Execute)0011x
無權限0000-

2. 組合權限計算

通過二進制加法八進制數值相加來組合多個權限:

  • 可讀可寫 = 讀 (4) + 寫 (2) = 6(二進制:110)。
  • 可讀可執(zhí)行 = 讀 (4) + 執(zhí)行 (1) = 5(二進制:101)。
  • 讀寫執(zhí)行全權限 = 4 + 2 + 1 = 7(二進制:111)。

3. 用戶組與權限表示

權限分為三個用戶組:所有者 (Owner)、組用戶 (Group)其他用戶 (Others),每個組對應一個八進制數:

文件權限示例0644

  • 第一位 0:八進制前綴。
  • 第二位 6(所有者):4 (r) + 2 (w) = 可讀可寫。
  • 第三位 4(組用戶):4 (r) = 只讀。
  • 第四位 4(其他用戶):4 (r) = 只讀。
  • 符號表示:-rw-r--r--。

目錄權限示例0755

  • 所有者:7 (rwx) = 讀寫執(zhí)行。
  • 組用戶和其他用戶:5 (r-x) = 可讀可執(zhí)行。
  • 符號表示:drwxr-xr-x。

4. 特殊權限位(SetUID/SetGID/Sticky)

特殊權限二進制值八進制值符號表示(文件)符號表示(目錄)
SetUID10004s 或 Ss 或 S
SetGID01002s 或 Ss 或 S
Sticky Bit00101t 或 Tt 或 T

SetUID(4)

  • 作用:當文件被執(zhí)行時,臨時獲得文件所有者的權限。
  • 典型場景:/usr/bin/passwd(修改密碼需要訪問 /etc/shadow,但普通用戶無權限)。

SetGID(2)

  • 文件:執(zhí)行時臨時獲得文件所屬組的權限。
  • 目錄:在此目錄下創(chuàng)建的文件自動繼承目錄的組,而非創(chuàng)建者的主組。
  • 典型場景:團隊共享目錄(如 chmod g+s /team_data)。

Sticky Bit(1)

  • 作用:僅文件所有者或 root 能刪除該文件,即使其他用戶有寫權限。
  • 典型場景:公共目錄 /tmp(權限通常為 1777,即 drwxrwxrwt)。

內核提供的接口

umask 是 Unix/Linux 系統(tǒng)中的一個系統(tǒng)調用,用于設置當前進程創(chuàng)建文件或目錄時的默認權限掩碼。

基本信息

  • 頭文件#include <sys/stat.h>
  • 函數原型mode_t umask(mode_t mask);
  • 作用:設置當前進程的文件模式創(chuàng)建掩碼,并返回之前的掩碼值。
  • 掩碼規(guī)則:新文件的實際權限 = 預設權限(如 0666按位與 ~umask。

權限計算示例

文件類型預設權限umask 值實際權限計算最終權限
文件066600220666 & (~0022) = 0644-rw-r–r–
目錄077700220777 & (~0022) = 0755drwxr-xr-x

使用注意事項

  1. 永久性umask 設置僅對當前進程及其子進程有效,不會影響系統(tǒng)全局設置。
  2. 默認值:通常系統(tǒng)默認 umask0022(屏蔽其他用戶的寫權限)。
  3. 目錄與文件差異:目錄默認權限通常為 0777,文件默認權限為 0666(受限于系統(tǒng)限制,文件不能被設置為可執(zhí)行)。

一些使用技巧

umask(server.umask = umask(0777));

這么寫可以安全地獲取并保存系統(tǒng)當前的 umask 值,同時避免多線程環(huán)境下的競態(tài)條件。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Ubuntu LTS服務器部署Jenkins詳細介紹

    Ubuntu LTS服務器部署Jenkins詳細介紹

    這篇文章主要介紹了Ubuntu LTS服務器部署Jenkins詳細介紹的相關資料,需要的朋友可以參考下
    2017-03-03
  • linux縮減XFS分區(qū)格式的根目錄

    linux縮減XFS分區(qū)格式的根目錄

    大家好,本篇文章主要分享的是linux縮減XFS分區(qū)格式的根目錄,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • CentOS 6.4安裝配置LNMP服務器(Nginx+PHP+MySQL)

    CentOS 6.4安裝配置LNMP服務器(Nginx+PHP+MySQL)

    這篇文章主要介紹了CentOS 6.4下配置LNMP服務器的詳細步驟,需要的朋友可以參考下
    2013-06-06
  • centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法

    centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法

    這篇文章主要介紹了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法,較為詳細的講述了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的具體步驟與相關設置技巧,需要的朋友可以參考下
    2018-01-01
  • CentOS6.5與CentOS7 ssh修改默認端口號的方法

    CentOS6.5與CentOS7 ssh修改默認端口號的方法

    這篇文章主要介紹了CentOS6.5與CentOS7 ssh修改默認端口號的方法,結合實例形式分別描述了CentOS6.5及CentOS7針對ssh修改默認端口號的具體操作步驟、相關命令與使用技巧,需要的朋友可以參考下
    2018-04-04
  • Linux的/etc/hosts文件的基礎知識和在實用指南

    Linux的/etc/hosts文件的基礎知識和在實用指南

    在 Linux 和 Unix 系統(tǒng)中,/etc/hosts 文件扮演著一個至關重要的角色,在網絡和系統(tǒng)管理中,了解如何正確使用這個文件能夠大大提升效率和靈活性,本文將深入探討 /etc/hosts 文件的用途、結構和實際應用,需要的朋友可以參考下
    2026-02-02
  • Linux實現DHCP服務器的搭建

    Linux實現DHCP服務器的搭建

    Linux常見的服務器有幾種,本文詳細介紹了Linux實現DHCP服務器的搭建,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • linux下shell腳本啟動jar包實現過程

    linux下shell腳本啟動jar包實現過程

    確保APP_NAME和LOG_FILE位于目錄內,首次啟動前需手動創(chuàng)建log文件夾,否則報錯,此為個人經驗,供參考,歡迎支持腳本之家
    2025-07-07
  • linux保留端口避免被隨機分配占用方式(ip_local_reserved_ports)

    linux保留端口避免被隨機分配占用方式(ip_local_reserved_ports)

    文章分析Nginx服務器偶發(fā)端口沖突問題,指出因端口復用機制導致的連接數虛高現象,提出通過擴大端口范圍、保留特定端口及分離Nginx與應用服務部署的解決方案,強調端口動態(tài)分配特性與實際資源消耗的差異
    2025-09-09
  • 將寶塔面板linux版裝在/www以外的目錄的方法

    將寶塔面板linux版裝在/www以外的目錄的方法

    很多云VPS系統(tǒng)盤,也就是根目錄(系統(tǒng)盤)都是10個G,寶塔安裝完整環(huán)境基本5個G沒有了,用了不到幾個月,隨著日志文件等亂七八糟的東西增加,面板就提示根目錄低于1個G,隨后mysql就莫名其妙掛掉,這里就為大家分享一下將面板安裝到別的目錄的方法
    2018-05-05

最新評論

三台县| 石狮市| 思茅市| 英德市| 九台市| 全州县| 洛浦县| 沁源县| 桦川县| 南安市| 山东| 海口市| 太仓市| 勐海县| 苍梧县| 新津县| 裕民县| 邹城市| 扎兰屯市| 来宾市| 辽宁省| 桃源县| 赫章县| 如皋市| 海阳市| 乌鲁木齐县| 抚远县| 岐山县| 斗六市| 东阿县| 偃师市| 丽水市| 牡丹江市| 建宁县| 应城市| 沅江市| 桐柏县| 齐河县| 北京市| 运城市| 民乐县|