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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

umask 和 新建文件、目录的默认权限

發布時間:2025/3/15 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 umask 和 新建文件、目录的默认权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

umask (8進制數值)

  • umask的值決定了用戶創建的文件和目錄的默認權限
  • umask的值是和用戶相關的
  • root用戶默認的umask值是 0022
  • 普通用戶的默認的umask的值是 0002
[root@centos6 ~]#umask 0022 [root@centos6 ~]#su - ming [ming@centos6 ~]$umask 0002

默認權限 (8進制數值)

  • 文件的默認權限最大是 666
  • 目錄的最大權限最大是 777

文件或目錄的默認權限的計算(原理)

最終的表現為

文件的默認權限 + umask = 666 (注意是按位相加) 目錄的默認權限 + umask = 777 (注意是按位相加)

核心計算方法

  • 對于文件

示例1 計算默認權限

666 # <-- 最大權限的八進制數值 145 # <-- umask 的八進制數值轉換為二進制數值 110 110 110 # <-- 最大權限666的二進制值 001 100 101 # <-- umask 145 的二進制值,0 表示不關心;1 表示從最大權限中要去掉對應的權限(1變成0,0不變) 110 010 010 # <-- 計算的最終權限default的二進制值 6 2 2 # <-- 計算的最終權限default的八進制值

示例1 默認權限驗證

[ming@centos6 ~]$umask 145 [ming@centos6 ~]$touch testfile [ming@centos6 ~]$ll testfile -rw--w--w-. 1 ming ming 0 Nov 22 19:30 testfile [ming@centos6 ~]$stat testfile File: `testfile'Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 802h/2050d Inode: 524419 Links: 1 Access: (0622/-rw--w--w-) Uid: ( 500/ ming) Gid: ( 500/ ming) Access: 2018-11-22 19:30:24.580931076 +0800 Modify: 2018-11-22 19:30:24.580931076 +0800 Change: 2018-11-22 19:30:24.580931076 +0800 [ming@centos6 ~]$

示例2 計算默認權限

666 # <-- 最大權限的八進制數值 257 # <-- umask 的八進制數值110 110 110 # <-- 最大權限666的二進制值 010 101 111 # <-- umask 257 的二進制值,0 表示不關心;1 表示從最大權限中要去掉對應的權限(1變成0,0不變) 100 010 000 # <-- 計算的最終權限default的二進制值 4 2 0 # <-- 計算的最終權限default的八進制值

示例2 默認權限驗證

[ming@centos6 ~]$umask 257 [ming@centos6 ~]$touch f5 [ming@centos6 ~]$stat f5File: `f5'Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 802h/2050d Inode: 524420 Links: 1 Access: (0420/-r---w----) Uid: ( 500/ ming) Gid: ( 500/ ming) Access: 2018-11-22 19:36:06.052894381 +0800 Modify: 2018-11-22 19:36:06.052894381 +0800 Change: 2018-11-22 19:36:06.052894381 +0800 [ming@centos6 ~]$ll f5 -r---w----. 1 ming ming 0 Nov 22 19:36 f5 [ming@centos6 ~]$
  • 對于目錄

計算默認權限

777 # <-- 最大權限777的八進制值 345 # <-- umask 的八進制值轉換為二進制數值 111 111 111 # <-- 最大權限777的二進制值 011 100 101 # <-- umask 345 的二進制值,0 表示不關心;1 表示從最大權限中要去掉對應的權限(1變成0,0不變) 100 011 010 # <-- 計算的最終權限default的二進制值 4 3 2 # <-- 計算的最終權限default的八進制值

默認權限驗證

[ming@centos6 ~]$umask 345 [ming@centos6 ~]$umask 0345 [ming@centos6 ~]$mkdir test_dir1 [ming@centos6 ~]$ls -ld test_dir1/ dr---wx-w-. 2 ming ming 4096 Nov 22 19:42 test_dir1/ [ming@centos6 ~]$stat test_dir1/ File: `test_dir1/'Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 802h/2050d Inode: 524421 Links: 2 Access: (0432/dr---wx-w-) Uid: ( 500/ ming) Gid: ( 500/ ming) Access: 2018-11-22 19:42:45.437920151 +0800 Modify: 2018-11-22 19:42:45.437920151 +0800 Change: 2018-11-22 19:42:45.437920151 +0800 [ming@centos6 ~]$

簡單的計算方法

  • 對目錄
default=777-umask (注意是按位相減)
  • 對文件
default=666-umask (注意是按位相減) 觀察結果 有偶數:最終結果就是 default 有奇數:最結結果加 1 就是 default

配置 umask 值

上面通過 umask 命令設置 umask 的值是暫時的,用戶重新登陸后就會還原為系統的默認值

我們可以通過配置文件的方式來實現永久生效

  • 全局設置:/etc/bashrc
  • 用戶設置:~/.bashrc

相關命令介紹

  • umask -S 模式方式顯示
  • umask -p 輸出可被調用
[ming@centos6 ~]$umask -S u=r,g=wx,o=w [ming@centos6 ~]$umask -p umask 0345 [ming@centos6 ~]$umask -p >> ~/.bashrc

設置默認權限的兩中方式

  • 方法1 通過設置 umask的方式
umask 0022
  • 方法1 直接設置默認權限
umask u=r,g=wx,o=w

本文鏈接:https://www.cnblogs.com/shichangming/p/10007697.html

轉載于:https://www.cnblogs.com/shichangming/p/10007697.html

總結

以上是生活随笔為你收集整理的umask 和 新建文件、目录的默认权限的全部內容,希望文章能夠幫你解決所遇到的問題。

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