umask 和 新建文件、目录的默认权限
生活随笔
收集整理的這篇文章主要介紹了
umask 和 新建文件、目录的默认权限
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
umask (8進制數值)
- umask的值決定了用戶創建的文件和目錄的默認權限
- umask的值是和用戶相關的
- root用戶默認的umask值是 0022
- 普通用戶的默認的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 ~]$簡單的計算方法
- 對目錄
- 對文件
配置 umask 值
上面通過 umask 命令設置 umask 的值是暫時的,用戶重新登陸后就會還原為系統的默認值
我們可以通過配置文件的方式來實現永久生效
- 全局設置:/etc/bashrc
- 用戶設置:~/.bashrc
相關命令介紹
- umask -S 模式方式顯示
- umask -p 輸出可被調用
設置默認權限的兩中方式
- 方法1 通過設置 umask的方式
- 方法1 直接設置默認權限
本文鏈接:https://www.cnblogs.com/shichangming/p/10007697.html
轉載于:https://www.cnblogs.com/shichangming/p/10007697.html
總結
以上是生活随笔為你收集整理的umask 和 新建文件、目录的默认权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 权限管理,pymysql模块
- 下一篇: Gym 101775J Straight