Linux(Ubuntu)新建文件權限繼承問題

當你在一個工作目權限為777的文件下,新建一個文件的時候,就有可能發生,新建的這個文件,權限和其他文件,或者工作目錄不一致的問題,我們不可能每次新建一個文件,就要

sudo chmod -R 777 /PATH

所以就不得不聊一聊權限繼承的問題,即我們如何讓新建的文件權限與目錄保持一致

一 通過ACL設置,繼承權限(部分文件)(推薦)?

1. 確保Linux系統支持ACL

下載(Ubuntu)

sudo apt install acl

2. 為目錄設置默認ACL規則

將目標目錄的權限模式(如?777)設置為默認繼承規則:

  • -d:設置默認 ACL(對新創建的文件和目錄生效)。

  • -m:修改 ACL 條目。

  • u::rwx,g::rwx,o::rwx:用戶、組、其他用戶均擁有?rwx?權限。

  • -R:遞歸應用到現有子目錄(可選)。

  • sudo setfacl -Rdm u::rwx,g::rwx,o::rwx /PATH

3. 驗證ACL規則

查看目錄內的ACL配置:

getfacl /path/

輸出應該為:

default:user::rwx
default:group::rwx
default:other::rwx

?

?4. 測試新建文件的權限

touch /path/newfile.txt
ls -l /path/newfile.txt

新建文件test04.sh與03.sh的區別

?

二 通過umask?設置,繼承權限(全局)

通過修改?umask?值,控制新創建文件的默認權限。但此方法影響整個用戶會話,存在安全風險。

1.?臨時修改 umask(僅當前終端有效)

在終端中設置 umask 為?000

000:新建文件權限為?666(rw-rw-rw-),目錄為?777(rwxrwxrwx)。

umask 000

?2.?永久修改 umask(謹慎操作)

1. 編輯用戶配置文件(如?~/.bashrc),添加:
umask 000
2.?然后重新加載配置:
source ~/.bashrc

三 權限繼承原理與注意事項

  1. ACL 與 umask 的優先級

    • 若目錄設置了默認 ACL,新文件的權限由?ACL 規則與 umask 共同決定

    • 例如:若 umask 為?022,則文件最終權限為?ACL權限 & ~umask(即?666 & ~022 = 644)。

    • 推薦優先使用 ACL,避免全局修改 umask。

  2. 文件與目錄的權限差異

    • 文件默認不繼承執行權限(x),需手動添加(如通過 ACL 顯式設置)。

    • 目錄需要執行權限(x)才能進入,因此默認應保留?rwx

  3. 安全性警告

    • 風險:開放?777?權限可能導致惡意用戶篡改或刪除文件。

    • 建議:僅在測試環境或完全信任的場景下使用,生產環境應精細化控制權限。


總結:

  • 最佳方案:使用?setfacl?設置目錄的默認 ACL 規則,實現權限自動繼承。

  • 應急方案:臨時修改 umask,但需注意安全影響。

  • 驗證命令:通過?getfacl?和?ls -l?檢查權限是否符合預期。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906977.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue3和React中插件化設計思想

Vue 3 和 React 都廣泛支持插件化設計思想,但因為它們的架構和理念不同,插件化的實現方式也不盡相同。以下分別詳細講解這兩者中如何實現插件化: 🟩 一、Vue 3 中的插件化實現 Vue 3 繼承了 Vue 2 的插件機制,同時增強…

Excel 密碼忘記了?巧用PassFab for Excel 解密幫您找回數據!

在工作中,你是否遇到過這樣的尷尬時刻?打開重要的 Excel 文件,卻發現忘記密碼,里面的財務報表、客戶數據、項目計劃瞬間變成 “加密天書”。重新制作耗時耗力,找專業人員解密又擔心數據泄露,這個時候&#…

Vue3 與 Vue2 區別

一、Vue3 與 Vue2 區別 對于生命周期來說,整體上變化不大,只是大部分生命周期鉤子名稱上 “on”,功能上是類似的。不過有一點需要注意,組合式API的Vue3 中使用生命周期鉤子時需要先引入,而 Vue2 在選項API中可以直接…

Axure高級交互設計:中繼器嵌套動態面板實現超強體驗感臺賬

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝!如有幫助請訂閱專欄! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:中繼器嵌套動態面板 主要內容:中繼器內部嵌套動態面板,實現可移動式臺賬,增強數據表現…

Spring中用到的設計模式詳解

Spring 在設計和實現過程中大量使用了設計模式,這些設計模式不僅提升了 Spring 的靈活性和可擴展性,還為開發者提供了更高效、更優雅的編程方式。以下是 Spring 框架中使用的一些常見設計模式: 1. 單例模式(Singleton Pattern&am…

Typescript學習教程,從入門到精通,TypeScript 集合類型語法知識點及案例代碼(11)

TypeScript 集合類型語法知識點及案例代碼 TypeScript 提供了多種集合類型,用于存儲和管理數據。以下將詳細介紹 數組(Array)、元組(Tuple)、集合(Set) 和 映射(Map)&am…

在 Win 10 上,Tcl/Tk 腳本2個示例

參閱:Tcl/Tk 教程 set PATH 新增 D:\Git\mingw64\bin where tclsh D:\Git\mingw64\bin\tclsh.exe where wish D:\Git\mingw64\bin\wish.exe 編寫 test_tk.tcl 如下 #!/usr/bin/tclsh # test 文件對話框 package require Tk# 彈出文件選擇對話框,限…

Qt環境的搭建

Qt安裝 Qt開發環境需要安裝三個部分 1.C編譯器(不是vs) 2.Qt SDK 3.需要一個Qt的集成開發環境 說是需要三個部分,但實際上是需要安裝Qt SDK就足夠了 QtSDK可以直接去官網下載 下載完成后需要配置一下環境變量 可以直接在系統中搜索"編輯系統環境變量" 為什么要…

Vue3中reactive響應式使用注意事項

Vue 3 的 reactive 是創建響應式對象的核心 API,但在使用過程中有一些需要注意的事項: 1:基本使用限制 僅對對象類型有效:reactive 只能用于對象類型(Object、Array、Map、Set 等),不能用于原始…

STM32+rt-thread使用MQTT協議連接騰訊物聯網平臺

STM32rt-thread使用MQTT協議連接騰訊物聯網平臺 一、騰訊云sdk下載1、進入騰訊物聯網平臺文件[點擊鏈接跳轉](https://cloud.tencent.com.cn/document/product/1081/48356)2、下載csdk 二、移植騰訊云sdk1、將上面解壓的文件夾復制到自己工程目錄下2、文件添加到自己工程 三、連…

【MySQL成神之路】MySQL函數總結

以下是MySQL函數的全面總結,包含概念說明和代碼示例: 一、MySQL函數分類 1. 字符串函數 -- CONCAT:連接字符串 SELECT CONCAT(Hello, , World); -- 輸出 Hello World -- SUBSTRING:截取子串 SELECT SUBSTRING(MySQL, 2, 3…

JavaScript 異步編程、對象/數組操作

異步編程 JavaScript 是單線程語言,通過事件循環機制處理異步操作。任務分為兩種: 宏任務(Macrotask): script整體代碼、setTimeout(時間結束執行)、setInterval(間隔執行)、I/O、UI渲染 微任務(Microtas…

中小制造企業網絡安全防護指南

考慮到文章內容較長,簡要內容圖片在文檔末尾,請直接翻閱到底部查看 引言:中小制造企業面臨的獨特網絡安全挑戰 中小制造企業 (SME) 在當今數字化浪潮中扮演著至關重要的角色,然而,伴隨技術進步而來的是日益嚴峻且獨特…

es學習小結

1.?客戶端類型? ?推薦場景? ?版本兼容性? Elasticsearch Java API Client 新項目、ES 8.x集群 8.x及以上 Spring Data Elasticsearch Spring生態項目、簡化ORM操作 ES 7.x-8.x(需版本匹配) Low-Level REST Client 需要底層HTTP控制、兼容多版本ES …

Axure項目實戰:智慧運輸平臺后臺管理端-訂單管理2(多級交互)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝!如有幫助請訂閱專欄! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:訂單管理2 主要內容:中繼器篩選、表單跟隨菜單拖動、審批數據互通等 應用場景:訂單管理…

2025年——ComfyUI_連接HuggingFace及更改緩存路徑

本篇分享在 ComfyUI 中連接 huggingface 以及更改模型緩存路徑。 我們在使用 ComfyUI 的一些插件時,有些必要模型只能通過連接 huggingface 來緩存才能讓流程得以進行。但目前在上網不科學的情況下是無法打開 huggingface 網站的,好在國內有其鏡像網站&a…

wx.getPrivacySetting接口needAuthorization一直返回false

我們在開發小程序的隱私協議授權時往往會使用到wx.getPrivacySetting接口,當返回的needAuthorization為true時候提示我們需要去授權,但你們有沒有遇到過needAuthorization一直為false的情況呢,下面是最常見的三個解決方法,都完善了…

旅游信息檢索

旅游信息檢索 旅游信息檢索是系統中實現數據獲取和處理的關鍵環節,負責根據用戶輸入的目的地城市和出游天數,動態獲取并生成高質量的旅游數據。 模塊的工作流程分為以下幾個階段:首先,對用戶輸入的信息進行標準化處理&#xff0…

機器學習筆記【Week2】

一、多變量線性回歸(Multivariate Linear Regression) 為什么需要多變量? 現實問題中,一個目標可能受多個因素影響,比如預測房價時: x 1 x_1 x1?:面積 x 2 x_2 x2?:臥室數量 x 3…

Axure 基本用法學習筆記

一、元件操作基礎 1. 可見性控制 隱藏/顯示:可以設置元件的可見性,使元件在特定條件下隱藏或可見 應用場景:創建動態交互效果,如點擊按鈕顯示隱藏內容 2. 層級管理 層級概念:元件有上下層關系,上層元件…