linux下umask命令用途原理和計(jì)算方式詳解
umask umask用途
umask令新建文件和目錄擁有默認(rèn)權(quán)限。
可以看到root創(chuàng)建的目錄是755,文件是644
[root@zaishu zaishu]# touch test.txt [root@zaishu zaishu]# mkdir test [root@zaishu zaishu]# ls -l total 0 drwxr-xr-x 2 root root 6 Nov 25 16:29 test -rw-r--r-- 1 root root 0 Nov 25 16:28 test.txt
普通用戶
可以看到普通用戶創(chuàng)建的目錄是775,文件是664
[mysql@zaishu ~]$ touch test.txt [mysql@zaishu ~]$ mkdir test [mysql@zaishu ~]$ ls -l total 0 drwxrwxr-x 2 mysql mysql 6 Nov 25 16:30 test -rw-rw-r-- 1 mysql mysql 0 Nov 25 16:30 test.txt
這些默認(rèn)的權(quán)限值是通過umask設(shè)置運(yùn)算得到。
原理
Linux 它是通過使用 umask 默認(rèn)權(quán)限來給所有新建的文件和目錄賦予初始權(quán)限的。那么,我們?nèi)绾蔚弥?umask 默認(rèn)權(quán)限的值呢?直接通過 umask 命令即可:
1. umask值
[root@zaishu ~]# umask 0022 [mysql@zaishu ~]$ umask 0002
#root用戶默認(rèn)是0022,普通用戶默認(rèn)是 0002
umask 默認(rèn)權(quán)限確實(shí)由 4 個(gè)八進(jìn)制數(shù)組成,第 1 個(gè)數(shù)代表的是文件所具有的特殊權(quán)限(SetUID、SetGID、Sticky BIT)先忽略。后 3 位 “022” 對(duì)應(yīng)為 ----w–w-。
2. 文件目錄權(quán)限最大值
Linux 系統(tǒng)中,文件和目錄的最大默認(rèn)權(quán)限是不一樣:
文件來講,可擁有的最大默認(rèn)權(quán)限是 666,即 rw-rw-rw-。x是文件最大權(quán)限,新建文件的時(shí)候不會(huì)給與,只能通過用戶手工賦予。
目錄來講,擁有的最大默認(rèn)權(quán)限是 777,即 rwxrwxrwx。
3. 常規(guī)計(jì)算
文件和目錄的初始權(quán)限,通過計(jì)算得到:
文件(或目錄)的初始權(quán)限 = 文件(或目錄)的最大默認(rèn)權(quán)限 - umask權(quán)限
[mysql@zaishu ~]$ umask 0002 [mysql@zaishu ~]$ mkdir test [mysql@zaishu ~]$ ll -d test drwxrwxr-x 2 mysql mysql 6 Nov 26 10:50 test // 目錄的默認(rèn)權(quán)限最大可以是 777,777-002 =775 [mysql@zaishu ~]$ touch h.txt [mysql@zaishu ~]$ ll h.txt -rw-rw-r-- 1 mysql mysql 0 Nov 26 10:52 h.txt //文件最大權(quán)限 666, 666-002(普通用戶) 666-002 =664 [root@zaishu ~]# touch h2 [root@zaishu ~]# ls -l h2 -rw-r--r-- 1 root root 0 Nov 26 10:53 h2 //文件最大權(quán)限 666, 666-002(root) 666-022 =644
4. 嚴(yán)謹(jǐn)計(jì)算
在計(jì)算文件或目錄的初始權(quán)限時(shí),直接使用最大默認(rèn)權(quán)限和 umask 權(quán)限的數(shù)字形式做減法,是不嚴(yán)謹(jǐn)?shù)?。例如,?umask 默認(rèn)權(quán)限的值為 033,按照數(shù)字形式計(jì)算文件的初始權(quán)限,666-033=633,但我們按照字母的形式計(jì)算會(huì)得到 (rw-rw-rw-) - (----wx-wx) = (rw-r–r--),換算成數(shù)字形式是 644。
這里的減法,其實(shí)是“遮蓋”的意思,也就是說,最大默認(rèn)權(quán)限中和 umask 權(quán)限公共的部分,通過減法運(yùn)算會(huì)被遮蓋掉,最終剩下的“最大默認(rèn)權(quán)限”,才是最終賦予文件或目錄的初始權(quán)限。
umask值修改
1. 臨時(shí)生效(當(dāng)前會(huì)話)
umask 權(quán)限值可直接修改:
[root@localhost ~]# umask 002 [root@localhost ~]# umask 0002 [root@localhost ~]# umask 033 [root@localhost ~]# umask 0033
這種方式修改的 umask 只是臨時(shí)有效,一旦重啟或重新登陸系統(tǒng),就會(huì)失效。
2. 永久生效
讓修改永久生效,則需要修改對(duì)應(yīng)的環(huán)境變量配置文件 /etc/profile。
[root@zaishu~]# vim /etc/profile
...省略部分內(nèi)容...
if [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; then
umask 002
#如果UID大于199(普通用戶),則使用此umask值
else
umask 022
#如果UID小于199(超級(jí)用戶),則使用此umask值
fi
總結(jié)
到此這篇關(guān)于linux下umask命令用途原理和計(jì)算方式詳解的文章就介紹到這了,更多相關(guān)linux下umask命令詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache為mysql以及自己的項(xiàng)目設(shè)置虛擬路徑
Apache為mysql以及自己的項(xiàng)目設(shè)置虛擬路徑2009-12-12
初識(shí)centos7與centos6的區(qū)別整理(內(nèi)核、命令等)
這篇文章主要介紹了初識(shí)centos7與centos6的區(qū)別整理,需要的朋友可以參考下2017-08-08
VMware虛擬機(jī)安裝 CentOS 8 (1905)系統(tǒng)的教程圖解
這篇文章主要介紹了CentOS 8 (1905)系統(tǒng)安裝,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
LINUX中關(guān)于mkdir命令語法和實(shí)例解讀
Linux系統(tǒng)中,mkdir命令用于創(chuàng)建新的目錄,支持多種選項(xiàng)如權(quán)限設(shè)置、遞歸創(chuàng)建等,對(duì)于新手和管理員都非常有用,命令的靈活性可以通過各種選項(xiàng)來實(shí)現(xiàn)不同的功能,包括設(shè)置權(quán)限、創(chuàng)建多級(jí)嵌套目錄和處理隱藏目錄等,掌握mkdir命令對(duì)于提高Linux操作效率和管理文件系統(tǒng)至關(guān)重要2024-10-10
詳解Win10 Bash/WSL調(diào)試Linux環(huán)境下的.NET Core應(yīng)用程序
本篇文章主要介紹了詳解Win10 Bash/WSL調(diào)試Linux環(huán)境下的.NET Core應(yīng)用程序 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

