Linux權限管理

1、簡述
大家都知道,Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的權限。
爲了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規
定。有些文件及目錄我們想要操作它們,就需要取得相應的權限,那麼對於文件及目錄來說,它們都有
哪些權限,需要運用什麼命令去修改,具體又應該怎麼操作呢,今天就來終結一下。
2、文件的基本權限(rwx)
權限可分爲三種:讀(r=4),讀取文件內容;寫(w=2),編輯、新增、修改文件內容, 但是不
包含刪除文件,因爲文件名和文件數據存放位置不同;執行(x=1),可進入目錄。在這裏需要注意:
對文件來講,最高權限是 x; 對目錄來講,最高權限是 w。而rwx權限在文件跟在目錄上,也有可能不
是單獨存在的,它們有可能是一種或者多種搭配出現,那當它們搭配出現的時候,具體是什麼含義呢,
我們可以總結一下:
(1)文件
當僅r權限作用在文件上的時候,表示可以讀取該文件的內容
當僅w權限作用在文件上的時候,表示可以修改該文件的內容
當僅x權限作用在文件上的時候,無作用
當rw權限同時作用在文件上的時候,表示可以讀寫該文件
當rx權限同時作用在文件上的時候,表示可以讀並能執行該文件
當wx權限同時作用在文件上的時候,權限等同於僅w權限
(2)目錄
當僅r權限作用在目錄上的時候,可以短列出目錄的內容(子文件,子目錄名)
當僅w權限作用在目錄上的時候,無作用
當僅x權限作用在目錄上的時候,可以進入該目錄
當rw同時作用在目錄上的時候,權限等同於僅r
當rx同時作用在目錄上的時候,表示可以長列出,可以進入
當wx同時作用在目錄上的時候,可以創建及刪除文件或目錄。
當rwx同時作用在目錄上的時候,可以列出可以創建刪除可以進入。
3、默認權限
(1)文件的默認權限(umask)
1、文件的默認權限不能建立可執行文件,必須手工賦予x執行權限,即文件的默認最大權限爲666
2、創建文件後默認權限爲666減去umask值,默認權限需要換算成字母再相減
3、修改默認權限的方法:1、umask 0002-臨時修改 2、vi /etc/profile-永久修改
(2)目錄的默認權限
1、目錄的默認最大權限爲777
2、建立文件之後的默認權限,爲777減去umask值,默認權限需要換算成字母再相減
4、權限作用的對象
無論是文件還是目錄,權限都主要針對三類對象進行定義:
owner:屬主,簡寫爲u
group:屬組,簡寫爲g
other: 其他,簡寫爲o
5、權限操作命令 chmod
舉例說明:假設創建一個目錄名爲house
顯示house的默認權限
[root@centos6 app]# ll
drwxr-xr-x. 2 root root 4096 Jul 21 15:46 house
那麼進行如下操作:
(1)chmod u-w house 就表示user減少了w權限,如
dr-xr-xr-x. 2 root root 4096 Jul 21 15:46 house
(2)chmod ug+w house 就表示user和group都增加了w權限,如
drwxrwxr-x. 2 root root 4096 Jul 21 15:46 house
(3)chmod ugo-x house 就表示user和group和others都減少了x權限,如
drw-rw-r--. 2 root root 4096 Jul 21 15:46 house
以上操作都不會影響到house目錄的子目錄,但如果是進行chmod -R操作,那它們的子目錄權限都將
會被影響,應爲-R代表遞歸。
6、特殊權限SUID SGID STICKY
(1)SUID
我們知道用戶密碼都保存在/etcshadow文件下,我們修改密碼,實際上也就是在對shadow 文件進行操作,但當我們打開shadow文件時,你會發現實際上普通用戶是沒有權限的,那我們爲什麼還可以修改密碼呢,這不是自相矛盾嗎,其實不然,這裏就牽扯到了SUID的問題,首先我們先看一下/etcshadow文件的默認屬性
[liubei@centos6 ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
仔細看你就會發現/usr/bin/passwd的權限爲:-rwsr-xr-x. 在此“owner”位是s權限,這個意思就是我們要說的SUID啦
SUID:當對於一個可執行的二進制文件作用了suid之後,任何人在執行該文件時,臨時擁有其所有人的權限。也就是說passwd命令具有SUID權限,所有者爲root,而當普通用戶使用passwd更改自己密碼的時候,臨時就擁有了命令所有者root的權限,從而當然就可以將密碼寫入/etc/shadow文件,命令執行完成後該身份也隨之消失。具體命令操作爲 chmod u+s
(2)SGID
其實,SGID基本與SUID相同,無非也就是一個設置所有者的權限,SGID爲設置所屬組的特殊權限!區別點在於:SUID也可以設置目錄的相關SUID權限! 具體命令操作爲 chmod g+s
1.當對於一個可執行的二進制文件作用了sgid之後,任何人在執行該文件時,臨時擁有其所有組的權限
2.當對於一個目錄作用了sgid權限之後,任何人在該目錄下所創建的文件的所屬組,均與該目錄的所屬組相同
(3) STICKY
對於一個目錄作用了 STICKY權限後,該目錄下的文件僅其所屬人和目錄的所屬人及root可以刪除。具體命令操作爲 chmod o+s
7、ACL簡介
ACL即除文件所有者,所屬組和其他人,可以對更多的用戶設置權限,簡單來說就是用來解決用戶身份不足的問題。其中要注意,不用系統組,不要使某用戶的多個組都設置不同的ACL group 權限 。ACl權限判斷順序爲 owner > acl user > group > other
設定acl權限
setfacl 選項 文件名
-m 設定ACL權限 例如
[root@centos6 app]# setfacl -M acl.txt testdir/
-x 刪除指定的ACL權限 例如
[root@centos6(nanyibo) app]# setfacl -x u:guanyu testdir/
[root@centos6(nanyibo) app]# setfacl -x g:weiguo testdir/
-b 刪除所有的ACL權限 例如
[root@centos6 app]# setfacl -b testdir
-d 設定默認ACL權限 例如
[root@centos6 app]#setfacl -m d:u:liubei:rwx testdir/
-k 刪除默認ACL權限 例如
[root@centos6 app]# setfacl -k testdir
-R 遞歸設定ACL權限 例如
[root@centos6 app]#setfacl -Rm d:u:liubei:rwx testdir/
舉例說明:要求在/testdir/dir裏創建的新文件自動屬於g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬於g1,g2,g3)不能訪問這個文件夾。
首先,我們分別創建g1、g2、g3組,然後在創建用戶,讓用戶alice屬於g2組,用戶tom屬於g3組,並創建目錄/testdir/dir
[root@centos6 app]# groupadd g1
[root@centos6 app]# groupadd g2
[root@centos6 app]# groupadd g3
[root@centos6 app]# useradd -g g2 alice
[root@centos6 app]# useradd -g g3 tom
[root@centos6 app]# mkdir -p testdir/dir
然後我們可以看到文件dir的權限爲755
[root@centos6 testdir]# ll
drwxr-xr-x. 2 root root 4096 Jul 21 17:46 dir
然後我們設置該文件的所屬組爲g2,設置該文件的SGID權限,設置ACL權限使g2組對新建文件有讀寫權限、g3組對新文件有讀權限
[root@centos6 LI testdir]# chgrp g1 dir
[root@centos6 LI testdir]# chmod g+s dir
[root@centos6 LI testdir]# setfacl -Rm d:g:g2:rw dir
[root@centos6 LI testdir]# setfacl -Rm d:g:g3:r dir
現在我們再看一下該文件的權限
[root@centos6 LI testdir]# getfacl dir
file: dir
owner: root
group: g1
flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
該文件的用戶爲root,所屬組爲g2具有SGID權限,從而使得g2組下alice用戶,可以在新建文件下繼承所屬組g2的讀寫權限,而g3組用戶tom對新文件只有讀權限,而其他用戶由於”other::---“,所以不具有任何權限,也就不能訪問這個文件夾。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章