linux中的 umask 函數主要用於:在創建新文件或目錄時 屏蔽掉新文件或目錄不應有的訪問允許許可權。
文件的訪問允許許可權共有9種,分別是:rwxrwxrwx
它們分別代表:用戶讀 用戶寫 用戶執行 組讀 組寫 組執行 其它讀 其它寫 其它執行
屏蔽的規則如下:
1. 不管屏蔽碼是多少,
·新創建的文件默認不具有可執行允可許可權。
·新創建的目錄默認具有可執行允可許可權。
2. 屏蔽碼的格式為八進制格式,共三個八進制數。可設置如下 002 或 022 或 ......
3. 其中的每一個八進制數由三位表示,分別是 讀 寫 執行
4 2 1
例如 002 用二進製表示為: 0 0 0 -- 0 0 0 -- 0 1 0
4 2 1 4 2 1 4 2 1
4. 產生的文件為 umask 值求反後的允可許可權,即
對於文件: ~002 = 664(新創建文件所應具有的訪問許可權)
對於目錄: ~002 = 775(新創建目錄所應具有的訪問許可權)
㈡ 3-6 Linux中的默認許可權 - umask
umask:查看當前用戶的 umask 許可權,root 和 普通用戶的默認許可權會有所不同。
-S: rwx 許可權顯示方式 (不加 -S 選項則用數字顯示)
例:0022 --- 表示減去的許可權
第一個 0 表示特殊許可權
從第 2 位開始 022 代表 rwxr-xr-x
r=4 w=2 x=1
(0 代表擁有者的 rwx 許可權全齊,2 代表所屬組沒有了 w 許可權,第3個 2 代表其他人沒有
了 w 許可權)
默認創建的文件和目錄,系統默認文件沒有 x 許可權。
臨時修改 umask 值可以通過 umask 0000 格式進行,永久修改需要修改 /etc.bashrc (常規狀態下不建議)
1、umask 對比root 用戶 和 普通用戶的默認許可權
root 用戶默認umask 0022,許可權是 rwxr-xr-x
普通用戶默認umask 0002,許可權是 rwxrwxr-x
2、root 和 user1 分別新建目錄,驗證默認許可權是否為 rwxr-xr-x 和 rwxrwxr-x。
root 用戶默認許可權0022,確定新建目錄是 rwxr-xr-x
普通用戶默認許可權0002,確定新建目錄是 rwxrwxr-x
另外,也可以用 umask -S 選項來列出數字對應的 rwx 。
3、前面提到文件會減去所有 x 許可權。root 和 user1 分別新建文件,驗
證默認許可權是否為 rw-r--r-- 和 rw-rw-r--。
root 用戶創建一個 root.txt 文件,查看 umask 是 0022,許可權是 u=rwx,g=rx,o=rx。由於,創建的文件都會減去全部 x 許可權。所以,文件的默認許可權是 rw-r--r-- 。
普通用戶創建一個 user1.txt 文件,查看 umask 是 0002,許可權是 u=rwx,g=rwx,o=rx。由於,創建的文件都會減去全部 x 許可權。所以,文件的默認許可權是 rw-rw-r-- 。
4、umask 參數:修改默認許可權。如,umask 0000 代表 默認全許可權(相當於 777)。創建目錄的默認許可權就是rwxrwxrwx。而文件系統會默認減去 x 許可權,所以文件的默認許可權是 rw-rw-rw-。(建議不要隨便更改默認許可權)
㈢ 關於linux的umask命令
umask分配許可權是對某個用戶或用戶組從許可權中減去某個許可權,這個許可權指的是用戶在創建新文件衫兄悶是對新建文件的許可權在Linux中許可權可以用數字來表示r=4,w=2,x=1,其中r表示讀許可權、w表示寫許可權、x表示執行許可權,一個用戶或用戶組的許可權是通過這些數字相加來表示的,比如只有讀寫許可權,則許可權數字為4 + 2 = 6所以,一個用戶的最大許可權是4 + 2 + 1 = 7,如果想從用戶許可權中減去某個許可權,就用umask命令比如umask 1 刪除文件創建者對新建文件的執行許可權如果是刪除讀寫許可權,則umask後面的數字應該是4 + 2 = 6通常umask後或彎面的許可權數字參數有3個許可權位,每個許可權位分別表示文件創建者、文件創建者所在用戶組和其它用戶比如umask 236 表示刪除文件創建者對新建文件的寫許可權、刪除文件創建者所在用戶組對新建文件的寫和執行許可權、刪除其它用戶對新塵明建文件的讀和寫許可權這是Linux的umask命令的含義但是對於php裡面的umask我就不清楚了,因為我對php也不熟悉
㈣ LINUX中 我設置了umask 001 那麼創建的默認文件和目錄的許可權是怎麼樣的呢
普通文件默認是644 也就是:
-rw-r--r-- 1 root root 0 May15 20:04 test
自已有讀寫(rw),同組人員有讀(r),其它有讀(r)
默認權笑禪喚限可通過umask 修改
默認umask 為022
文件:666 - 022 = 644
目錄:777 - 022 = 755
如果你下碰凱了umask 011 的指令,則生成襲悉的文件目錄許可權就變成:
文件:666 - 011 = 655
目錄:777 - 011 = 766
㈤ Linux裡面umask為002表示什麼意思
這個是常見的一種許可權賦予參數回拿世顯。
Umask 為022表示默認創建新文件許可權為755,也就是 rxwr-xr-x(所有者全部許可權,屬組讀寫,其它人讀寫) 。
Umask 為0027表示默認創建新文件許可權為750,也就是rxwr-x---(所有者全部許可權,屬組讀寫清敬,其它人無答敏慎)。
umask 002
㈥ Linux基礎知識之--umask掩碼
• 每個用戶建立文件時,此文件都會有默認許可權
• 默認許可權的值由環境中的umask值與文件與目錄的基數來確定
• 用戶可以自主改動umask值,並在改動後馬上生效,系統重啟後會恢復到默認值
• 一般用戶(非系統用戶)的默認umask值為002,系統用戶的默認umask值為 022(root用戶為系統用戶)
• 默認文件許可權666,默認文件夾許可權777
cat /etc/login.defs (這里的只是針對家目錄/home的UMASK)
UMASK:077 ,是針對文件夾(用戶家目錄)來說的。也就是文件夾許可權777-077=700,攔山即在家目錄里/home建的文件夾的許可權都是drwx------
• 可以通過 umask 查看umask,通過 umask umask值 來修改umask,例如 umask 002 。但這種只能臨時修改umask值,機器重啟之後會恢復到默認值。想永久修改哪衡察umask值,需要修改/etc/profile里的umask值
•李茄 在系統的默認umask前提下,系統用戶(如root用戶)查看umask的值為022,普通用戶查看umask的值為002
實驗:
㈦ Linux下的umask、特殊許可權與ACL許可權
在了解到Linux系統上的文件目錄許可權,有時候你會發現為什麼剛創建的文件是 -rw-r--r-- 這個許可權,目錄是 drwxr-xr-x 許可權,有些是 -rwsr-xr-x ,又有些是 drwsrws--T ?這些則與umask、特殊許可權有關。
什麼是umask?umask一般是用在你初始創建一個目錄或者文件的時候賦予他們的許可權。它與chmod的效果剛好相反,umask設置的是許可權「補碼」,而chmod設置的是文件許可權碼。一般在/etc/profile、
或用戶家目錄下的.bash_profile或.profile中設置umask值。
默認的umask是0022,0022四個數字代表是賦值初始化准備丟棄的許可權。(相對應文件來說,x許可權就算沒說明出來丟棄一樣必須默認丟棄)
第一個0代表suid 丟棄的許可權;
第二個0代表本文件/目錄擁有者什麼許可權都沒丟棄;
第三個2代表本文件/目錄的用戶組丟棄了w許可權;
第四個2代表本文件/目錄的文件/目錄的用戶組丟棄了w許可權。
一般我們會這樣表示:
umask +default permission(默認許可權) =777(目錄)/666(文件)
但存在特殊情況如果把umask設為135呢?
要了解特殊許可權需對安全上下文有一個概念:
前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執行程序文件能不能啟動為進程,取決發起者對程序文件是否擁有執行許可權
(2) 啟動為進程之後,其進程的屬主為發起者,進程的屬組為發起者所屬的組
(3) 進程訪問文件時的許可權,取決於進程的發起者
(a) 進程的發起者,同文件的屬主:則應用文件屬主許可權
(b) 進程的發起者,屬於文件屬組;則應用文件屬組許可權
(c) 應用文件「其它」許可權
1.SUID 許可權僅對二進製程序(binary program)有效;
2.執行者對於該程序需要具有x 的可執行許可權;
3.本許可權僅在執行該程序的過程中有效(run-time);
4.執行者將具有該程序擁有者(owner) 的許可權。
5.SUID設置在目錄上無意義
許可權設定:
chmod u+s FILE...
chmod u-s FILE...
s 標志在文件擁有者的x 項目為SUID,那s 在群組的x 時則稱為Set GID
[root@centos7 ~]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
與SUID 不同的是,SGID 可以針對文件或目錄來設定!如果是對文件來說, SGID 有如下的功能:
-1.SGID 對二進製程序有用;
-2.程序執行者對於該程序來說,需具備x 的許可權;
-3.執行者在執行的過程中將會獲得該程序群組的支持!
[root@centos7 ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
-rw-r-----. 1 root slocate 2349055 Jun 15 03:44 /var/lib/mlocate/mlocate.db
與SUID 非常的類似,使用xiaoming 這個賬號去執行locate 時,那xiaoming將會取得slocate 群組的支持, 因此就能夠去讀取 mlocate.db 。
SGID 也能夠用在目錄上,這也是非常常見的一種用途
目錄設定了SGID 的許可權後,他將具有如下的功能:
-1. 用戶若對於此目錄具有r 與x 的許可權時,該用戶能夠進入此目錄;
-2.用戶在此目錄下的有效群組(effective group)將會變成該目錄的群組;
-3.用途:若用戶在此目錄下具有w 的許可權(可以新建文件),則使用者所建立的新文件,該新文件的群組與此目錄的群組相同。
這個 Sticky Bit, SBIT 目前只針對目錄有效,sticky 設置在文件上無意義。SBIT 對於目錄的作用是:
-1.當用戶對於此目錄具有w, x 許可權,亦即具有寫入的許可權時;
-2.當用戶在該目錄下建立文件或目錄時,僅有自己與root 才有權力刪除該文件
SUID/SGID/SBIT 許可權設定
-rwSrwSrwT 1 root root 0 Jun 16 02:53 test
設定許可權成為 -rws--x--x 的模樣:
[root@centos7 tmp]# chmod u=rwxs,go=x test; ls -l test
-rws--x--x 1 root root 0 Jun 16 02:53 test
承上,加上 SGID 與 SBIT 在上述的文件許可權中!
[root@centos7 tmp]# chmod g+s,o+t test; ls -l test
-rws--s--t 1 root root 0 Jun 16 02:53 test
1】ACL 是Access Control List 的縮寫,主要的目的是在提供傳統的owner,group,others 的read,write,execute 許可權之外的細部許可權設定。ACL 可以針對單一使用者,單一文件或目錄來進行
ACL 主要可以針以下來控制許可權呢:
1.使用者 (user):可以針對使用者來設定許可權;
2.群組 (group):針對群組為對象來設定其許可權;
3.默認屬性(mask):還可以針對在該目錄下在建立新文件/目錄時,規范新數據的默認許可權;
及1.ACL:Access Control List,實現靈活的許可權管理;2.CentOS7默認創建的xfs和ext4文件系統具有ACL功能;3.CentOS7之前版本,默認手工創建的ext4文件系統無ACL功能,需手動增加tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
4.ACL生效順序:所有者,自定義用戶,自定義組,其他人
為多用戶或者組的文件和目錄賦予訪問許可權rwx
2】ACL 的設定技巧: getfacl, setfacl
-x :刪除後續的 acl 參數,不可與 -m 合用;
-b :移除『所有的』 ACL 設定參數;
-k :移除『預設的』 ACL 參數,
-R :遞歸設定 acl ,亦即包括次目錄都會被設定起來;
-d :設定『預設 acl 參數』的意思!只對目錄有效,在該目錄新建的數據會引用此默認值
例:[root@centos7 ~]# touch acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r--r--. 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u:xiaoming:rx acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u::rwx acl_test1
[root@centos7 ~]# ll acl_test1
-rwxr-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
設定值中的 u 後面無使用者列表,代表設定該文件擁有者
2.getfacl 指令用法余setfacl一樣
例:[root@centos7 ~]# getfacl acl_test1
file: acl_test1 <==說明檔名而已!
owner: root <==說明此文件的擁有者,亦即 ls -l 看到的第三使用者欄位
group: root <==此文件的所屬群組,亦即 ls -l 看到的第四群組欄位
user::rwx <==使用者列表欄是空的,代表文件擁有者的許可權
user:xiaoming:r-x <==針對xiaoming 的許可權設定為 rx ,與擁有者並不同!
group::r-- <==針對文件群組的許可權設定僅有 r
mask::r-x <==此文件預設的有效許可權 (mask)
other::r--
3】特定的單一群組的許可權設定:『g:群組名:許可權』
4】主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
清除dir目錄的ACL許可權
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1
㈧ Linux 中umask 用法 怎樣設置初始值
直接知昌輸入搭岩扒umask是查詢你目前的預棗做設值
umask
0033
就是改變你的預設值,想要多少直接加在後面就好了
㈨ LINUX系統中的umask是什麼意思
在Linux系統中,umask是一種文件模式的掩碼禪則茄,它決定了在創建新文件或目錄時所設置的默認許可權。
umask值是一個三位數,它用來屏蔽掉文件許可權中的一些位,使其不被設置。例如,umask值為022時,將屏蔽掉文件權賀察限中的組寫和其他人寫的位。因此,當創建新文件或目錄時,默認許可權會是644或755,而不是666或777。
umask值通常在shell中設置,可以使用umask命令來查看或修改它。例如,如果要將umask值設置為022,可以在shell中執行以下命令:
umask 022
這將使得在創建新文件或目錄時,默認許可權不包括組寫和其他人寫的權盯並限。
㈩ linux umask 使用講解
umask 用來設置當前用戶創建文件或者目錄的默認許可權。它與chmod的表示正好相反。
文件在創建的時候不允許賦予執行許可權,必須使用chmod進行添加,而目錄創建的時候允許賦予執行許可權。
當前的umask值是0002,忽略第一位0,那就是002,因為與chmod正好相反,所以取反,目錄的默認許可權兄罩是775,文件創建的時候不允許設置執行許可權,所以當目錄擁有執行許可權的時候,文件的許可權中要去掉這個執行許可權,也就是文件的默認許可權是664。
當然如果目錄並沒有執行許可權,那麼文件的許可權就沒有必要去掉這個執行許可權。例如umask的值是113,那麼目錄的默認許可權是664,文件的默認許可權也是664.
看下圖,你會理解的更清楚明白模岩一些:旦塵御
https://blog.csdn.net/yangzhengquan19/article/details/83055686#commentBox