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

linux之umask權(quán)限掩碼解讀

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

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

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

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

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

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

1. 權(quán)限的二進(jìn)制與八進(jìn)制對應(yīng)

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

2. 組合權(quán)限計算

通過二進(jìn)制加法八進(jìn)制數(shù)值相加來組合多個權(quán)限:

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

3. 用戶組與權(quán)限表示

權(quán)限分為三個用戶組:所有者 (Owner)、組用戶 (Group)、其他用戶 (Others),每個組對應(yīng)一個八進(jìn)制數(shù):

文件權(quán)限示例0644

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

目錄權(quán)限示例0755

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

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

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

SetUID(4)

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

SetGID(2)

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

Sticky Bit(1)

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

內(nèi)核提供的接口

umask 是 Unix/Linux 系統(tǒng)中的一個系統(tǒng)調(diào)用,用于設(shè)置當(dāng)前進(jìn)程創(chuàng)建文件或目錄時的默認(rèn)權(quán)限掩碼。

基本信息

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

權(quán)限計算示例

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

使用注意事項(xiàng)

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

一些使用技巧

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

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

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹

    Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹

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

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

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

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

    這篇文章主要介紹了CentOS 6.4下配置LNMP服務(wù)器的詳細(xì)步驟,需要的朋友可以參考下
    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的方法,較為詳細(xì)的講述了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的具體步驟與相關(guān)設(shè)置技巧,需要的朋友可以參考下
    2018-01-01
  • CentOS6.5與CentOS7 ssh修改默認(rèn)端口號的方法

    CentOS6.5與CentOS7 ssh修改默認(rèn)端口號的方法

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

    Linux的/etc/hosts文件的基礎(chǔ)知識和在實(shí)用指南

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

    Linux實(shí)現(xiàn)DHCP服務(wù)器的搭建

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

    linux下shell腳本啟動jar包實(shí)現(xiàn)過程

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

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

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

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

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

最新評論

五河县| 道孚县| 柯坪县| 辽阳市| 高州市| 孝义市| 廉江市| 兴海县| 红桥区| 乐安县| 巴彦县| 普兰店市| 娱乐| 五原县| 明光市| 浙江省| 新昌县| 汶川县| 长乐市| 中方县| 团风县| 伽师县| 安顺市| 娄底市| 阳城县| 英德市| 公主岭市| 云龙县| 承德市| 横山县| 房山区| 宁安市| 吉隆县| 宜宾市| 绥江县| 绥德县| 黄平县| 化州市| 将乐县| 都安| 志丹县|