特殊權限

特殊權限

文件特殊權限

一、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 16:13
下一篇 2016-08-05 16:13

相關推薦

  • 在軟raid10上使用LVM,并且進行磁盤配額,最后還原。

    實驗環境 1)centos 7.3 2)lvm格式化的文件系統為ext4 3)磁盤為單一磁盤的不同分區 4)使用軟件:mdadm,lvm2 tools,quota 軟raid10的創建 一,兩個raid1的創建 1)對磁盤進行分區,使用工具fdidk,每個大小為1GB,類型改為fd。我的分區情況:/dev/sda{6,7,8,9}將會拿來做為raid的磁盤?!?/p>

    Linux干貨 2017-03-16
  • N27_第二周作業。

    linux上的文件管理類命令都有哪些?其常用的使用方法及其相關示例演示。 答: 有cp、mv、rm cp ?復制命令 常用選項: cp -i ? ? ? ?#交互式 cp -r ? ? ? #遞歸復制目錄及其子目錄的內容 cp -a ? ? ?# 歸檔,相當于dR –preserve=all cp -d ? ? #表示不跟蹤符號鏈接所指向的原文件…

    2017-10-09
  • Linux boot分區意外格式化或清除之后…

    boot分區在沒有備份的情況下意外被清空,包括啟動引導信息也沒了。這時若Linux還在運行,那你是幸運的, 修復的方法: 1. cat  /etc/*release      #趕快先確定當前系統的具體版本。有ISO鏡像趕快掛載上來.   &nbsp…

    Linux干貨 2016-03-22
  • 第一周n28

    1.計算機的組成及功能 計算機由五大部件組成。控制器、運算器、存儲器、輸入輸出設備。 1.控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 2.運算器(Datapath):運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工…

    Linux干貨 2017-12-03
  • 第七周作業,分區格式化及一些腳本練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;       fidsk劃分10G分區,partx命令強制內核重新讀磁盤分區表,cat /proc/partitions是否內核識別到新分區 …

    Linux干貨 2017-02-01
  • 日志分析工具Awstats實戰之Nginx篇-分析結果動態化

    上一篇博文“分析工具Awstats實戰之Nginx篇-分析結果靜態化”介紹了如何將awstats的日志分析信息用靜態頁面來進行顯示,不過顯示效果肯定沒有動態的好啦。本篇博文將帶大家一起來部署動態的分析結果查閱。 環境: CentOS 6.4 ip:192.168.1.113 域名:www.sunsky.com(server和client都通過hos…

    Linux干貨 2016-08-15

評論列表(1條)

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

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

欧美性久久久久