特殊權限

特殊權限

文件特殊權限

一、SUID(4)

SUID:當s這個標志出現在文件所有者的x權限上時,就被稱作SUID。
SUID的功能和限制:1、僅僅對二進制程序有效; 
2、執行者對程序需要X的執行權限; 
3、本權限僅僅在執行該程序的過程中有效; 
4、執行者將具有該程序所有者的權限。 
5、SUID僅僅可以用在二進制程序上,不能用在shell腳本上,不能設置在目錄上面 
6、若原來的權限有X執行權限,則是s權限,沒有X執行權限則是S權限。

[root@localhost ~]# ll /bin/vi
-rwxr-xr-x. 1 root root 907248 Jul 23  2015 /bin/vi
[root@localhost ~]# chmod u+s /bin/vi 
[root@localhost ~]# ll /bin/vi
-rwsr-xr-x. 1 root root 907248 Jul 23  2015 /bin/vi


[root@localhost ~]# ll  /bin/vi
----r-xr-x. 1 root root 907248 Jul 23  2015 /bin/vi
[root@localhost ~]# chmod u+s /bin/vi
[root@localhost ~]# ll /bin/vi
---Sr-xr-x. 1 root root 907248 Jul 23  2015 /bin/vi

二、SGID(2)

SGID:當s這個標志出現在文件所屬組的x權限上時,就被稱作SGID。 
SGID的權限和功能:SGID對目錄和二進制程序都有效 ,有來所屬組有x權限是則是s,沒有x權限則是S。 
1)當使用在二進制程序時 
1.程序執行者來說對該程序來說,具備x權限 2.執行者在執行過程中將會收獲得該程序用戶組的支持,
2)當使用在目錄上面的時 1.用戶若對與此目錄具有rx全顯示能夠進入 2.用戶在此目錄下的有效用戶組將變成該目錄的用戶組 
3.若用戶在此目錄下具有w權限,則用戶在此目錄下創建文件的用戶組與此目錄一樣。

root@localhost mail]# chmod 2770 /tmp/testdir/
[root@localhost mail]# ll /tmp/testdir/ -d
drwxrws---. 2 gentoo gentoo 4096 Aug  3 09:17 /tmp/testdir/
[root@localhost mail]# su - gentoo
[gentoo@localhost ~]$ cd /tmp/testdir/
[root@localhost mail]# su - redhat
[redhat@localhost ~]$ cd /tmp/testdir/
[redhat@localhost testdir]$ touch 1.txt

三、SBIT(1)

SBIT只對目錄有效,對文件沒有效果。若原來的其他人有x權限則為s,沒有x權限則為S。 
對目錄的效果有: 
1.當用戶對此目錄具有w、x權限,即具有寫入權限時;
2.當用戶在該目錄下創建文件或者目錄,僅有自己和root才有權利修改該文件。 
3.配合SGID一起使用時,在目錄所屬組的用戶只能修改該文件,不能刪除該文件。

SUID為4,SGID為2,SBIT為1.

四、umask

為什么我們創建文件或者目錄時,權限會不同了。就是因為這個umask影響的。

[root@localhost mail]# umask
0022

在linux系統上,系統默認文件是存儲數據地方,所以不需要執行權限。因此最大權限為rw-rw-rw-(666),若是目錄因為x權限影響用戶是否能進入該目錄,所以默認為rwxrwxrwx(777)。那為什么新創建的文件和目錄不是666和777呢?

這就是因為umask存在,剛剛執行umask命令可以看見當前系統的umask為0022,最前面的0指的是特殊權限,暫時不考慮。那這時候

新建文件就為:(rw-rw-rw-)-(—-w–w-)==>rw-r–r—

[root@localhost ~]#  touch 1.txtr
[root@localhost ~]# ll
total 20
-rw-r--r--. 1 root root    0 Aug  3 09:35 1.txtr

和我們上面算的一樣。

新建目錄:(rwxrwxrwx)-(—-w–w-)==>rwxr-xr-x

[root@localhost ~]# mkdir testdir
[root@localhost ~]# ll
drwxr-xr-x. 2 root root 4096 Aug  3 09:36 testdir

ACL(Access Control List實現靈活的權限管理)

主要目的:是提供傳統的owner、group、other的r、w、x權限之外的具體權限。 
除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限。ACL可以針對單一用戶、單一文件或目錄進行r、w、x的權限設置,對需要特殊權限的使用情況非常有幫助。 
主要針對以下項目: 
用戶(user):可以針對用戶來設置權限; 
用戶組(group):針對用戶組來設置其權限; 
默認屬性(mask):在該目錄下新建文件/目錄時設置新數據的默認權限。 
CentOS7.0默認創建的xfs和ext4文件系統有ACL功能。 CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL 功能。需手動增加: 
tune2fs –o acl /dev/sdb1 
mount –o acl /dev/sdb1 /mnt

ACL設置方式:

就兩個命令: 
setfacl 設置ACL權限 
getfacl 查看ACL權限

setfacl

-b,--remove-all:刪除所有擴展的acl規則,基本的acl規則(所有者,群組,其他)將被保留。 
-k,--remove-default:刪除缺省的acl規則。如果沒有缺省規則,將不提示。 
-n,--no-mask:不要重新計算有效權限。setfacl默認會重新計算ACL mask,除非mask被明確的制定。 
--mask:重新計算有效權限,即使ACL mask被明確指定。 
-d,--default:設定默認的acl規則。 
--restore=file:從文件恢復備份的acl規則(這些文件可由getfacl -R產生)。通過這種機制可以恢復整個目錄樹的acl規則。此參數不能和除--test以外的任何參數一同執行。 
--test:測試模式,不會改變任何文件的acl規則,操作后的acl規格將被列出。 
-R,--recursive:遞歸的對所有文件及目錄進行操作。

設置規則 setfacl命令可以識別以下的規則格式: [d[efault]:] [u[ser]:]uid [:perms] 指定用戶的權限,文件所有者的權限(如果uid沒有指定)。 [d[efault]:] g[roup]:gid [:perms] 指定群組的權限,文件所有群組的權限(如果gid未指定) [d[efault]:] m[ask][:] [:perms] 有效權限掩碼 [d[efault]:] o[ther] [:perms] 其他的權限

例子:

[root@localhost ~]# getfacl ./test.txt # file: test.txt 
# owner: root
# group: admin 
user::rw- 
user:john:rw- 
group::rw- 
group:dev:r-- 
mask::rw- 
other::r--
MASK和Effective 權限

如果文件有ACL_MASK值,那么當中那個rw-代表的就是mask值而不再是group 權限了。 
讓我們來看下面這個例子:

[root@localhost ~]# ls -l 
-rwxrw-r-- 1 root admin 0 Jul 3 23:10 test.sh

[root@localhost ~]# ls -l 
-rwxrwxr--+ 1 root admin 0 Jul 3 23:10 test.sh

那么如果現在admin組的用戶想要執行test.sh的程序會發生什么情況呢?它會被拒絕。原因在于實際上admin組的用戶只有rw權限,這里當中顯示的rwx是ACMASK的值而不是group的權限。 所以從這里我們就可以知道,如果一個文件后面有+標記,我們都需要用getfacl來確認它的權限,以免發生混淆。 下面我們看一個例子,假如現在我們設置test.sh的mask為r,那么admin組的用戶還會有w權限嗎?

[root@localhost ~]# setfacl -m mask::r-- ./test.sh 
[root@localhost ~]# getfacl  ./test.sh 
user::rwx 
user:john:rwx  
group::rw- #effective:r-- 
mask::r-- 
other::r--

Default ACL

Default ACL是指對于一個目錄進行Default ACL設置,并且在此目錄下建立的文件都將繼承此目錄的ACL。 同樣我們來做一個試驗說明,比如現在root用戶建立了一個dir目錄:

[root@localhost ~]# mkdir dir

他希望所有在此目錄下建立的文件都可以被john用戶所訪問,那么我們就應該對dir目錄設置Default ACL。

 [root@localhost ~]# setfacl -d -m user:john:rw ./dir [root@localhost ~]# getfacl  ./dir 
    user::rwx 
    group::rwx 
    other::r-x 
    default:user::rwx 
    default:user:john:rwx 
    default:group::rwx 
    default:mask::rwx

default: other::r-x 這里我們可以看到ACL定義了default選項,john用戶擁有了default的rwx。所有沒有定義的default都將從這里copy過來,現在root用戶在dir下建立一個test.txt文件。

[root@localhost ~]# touch ./dir/test.txt
[root@localhost ~]# ls -l ./dir/test.txt 
-rw-rw-r--+ 1 root root 0 Jul 3 23:46 ./dir/test.txt
[root@localhost ~]# getfacl - ./dir/test.txt 
user::rw- user:john:rw- 
group::rwx #effective:rw- 
mask::rw- 
other::r--

這里我們看到在dir下建立的文件john用戶自動就有了rwx權限

關于umask和mask 的區別

umask 是目前用戶在新建文件或者目錄時候的權限的默認值,他影響的owner、group、other三者的普通權限。而且是用最大權限去減去umask得到文件或者目錄的權限。 
mask 是ACL權限中group的最大控制權限,任何group 成員的權限不能超過 mask權限,超過的權限沒有效應。 
兩者都是設置后默認生效,不影響創建的文件。都是我們進行權限管理過程中的有效方式。

原創文章,作者:fighter,如若轉載,請注明出處:http://www.www58058.com/29202

(0)
fighterfighter
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • AOP面向方面編程

    1.引言         軟件開發的目標是要對世界的部分元素或者信息流建立模型,實現軟件系統的工程需要將系統分解成可以創建和管理的模塊。于是出現了以系統模塊化特性的面向對象程序設計技術。模塊化的面向對象編程極度極地提高了軟件系統的可讀性、復用性和可擴展性。向對象方法的焦點在于選擇對象作為模塊的主要單元,并將對象與系統的…

    Linux干貨 2015-04-07
  • exit和退出碼

    用途說明 exit命令用于退出當前shell,在shell腳本中可以終止當前腳本執行。   常用參數 格式:exitn 退出。設置退出碼為n。(Causethe shell to exit with a status of n.)   格式:exit 退出。退出碼不變,即為最后一個命令的退出碼。(Ifn is omitted, the e…

    Linux干貨 2016-01-14
  • linux作業管理和任務計劃

    一、作業管理 Linux 的作業控制     前臺作業:通過終端啟動,且啟動后一直占據終端;     后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端) 如何讓作業運行于后臺? (1)  運行中的作業: Ctrl+z (2)&nb…

    Linux干貨 2016-09-13
  • 內核升級和救援模式

    http://www.cnblogs.com/wzhuo/p/6728336.html 

    Linux干貨 2017-04-24
  • Corosync+Pacemaker+DRBD實現高可用 Mariadb

    一、DRBD簡介 DRBD全稱Distributed?Replicated?Block?(分布式的復制塊設備),開源項目。它是一款基于塊設備的文件復制解決方案,速度比文件級別的軟件如NFS,samba快很多,而且不會出現單點故障,是很多中小企業的共享存儲首選解決方案。 二、DRBD的工作模式從上圖中我們可以清楚的看到DRBD是工作在內核中,將協議建立在buf…

    2017-11-05
  • 第二章 linux高級命令的簡單使用以及shell腳本的簡單制作

    重定向;正則表達式;grep;sed;vim;yum;shell腳本

    Linux干貨 2018-03-17

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 22:31

    寫的很好,思路清晰,通過都特殊權限的應用場景模擬,有了自己的總結。

欧美性久久久久