【Linux學習】Linux下用戶組、文件權限詳解

原文地址:http://www.cnblogs.com/123-/p/4189072.htmlhtml

Linux下用戶組、文件權限詳解

用戶組

linux中的每一個用戶必須屬於一個組,不能獨立於組外。在linux中每一個文件有全部者、所在組、其它組的概念java

- 全部者linux

- 所在組安全

- 其它組post

- 改變用戶所在的組url

 

全部者spa

通常爲文件的建立者,誰建立了該文件,就自然的成爲該文件的全部者htm

用ls ‐ahl命令能夠看到文件的全部者blog

也可使用chown 用戶名 文件名來修改文件的全部者繼承

 

文件所在組

當某個用戶建立了一個文件後,這個文件的所在組就是該用戶所在的組

用ls ‐ahl命令能夠看到文件的全部組

也可使用chgrp 組名 文件名來修改文件所在的組

 

其它組

除開文件的全部者和所在組的用戶外,系統的其它用戶都是文件的其它組

 

文件權限

ls

 -l中顯示的內容以下:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

- 10個字符肯定不一樣用戶能對文件幹什麼

- 第一個字符表明文件(-)、目錄(d),連接(l

- 其他字符每3個一組(rwx),讀(r)、寫(w)、執行(x

- 第一組rwx:文件全部者的權限是讀、寫和執行

- 第二組rw-:與文件全部者同一組的用戶的權限是讀、寫但不能執行

- 第三組r--:不與文件全部者同組的其餘用戶的權限是讀不能寫和執行

也可用數字表示爲:r=4w=2x=1  所以rwx=4+2+1=7

- 1 表示鏈接的文件數

- root 表示用戶

- root表示用戶所在的組

- 1213 表示文件大小(字節)

- Feb 2 09:39 表示最後修改日期

- abc 表示文件名

 

使用數字表示權限

除了符號,也可使用八進制數字來指定具體權限,以下表所示:

數字 說明 權限
0 沒有任何權限 ---
1 執行權限 --x
2 寫入權限 -w-
3 執行權限和寫入權限:1 (執行) + 2 (寫入) = 3 -wx
4 讀取權限 r--
5 讀取和執行權限:4 (讀取) + 1 (執行) = 5 r-x
6 讀取和寫入權限:4 (讀取) + 2 (寫入) = 6 rw-
7 全部權限: 4 (讀取) + 2 (寫入) + 1 (執行) = 7 rwx

 

 

改變權限的命令

chmod 改變文件或目錄的權限

chmod 755 abc:賦予abc權限rwxr-xr-x

chmod u=rwxg=rxo=rx abc:同上u=用戶權限,g=組權限,o=不一樣組其餘用戶權限

chmod u-xg+w abc:給abc去除用戶執行的權限,增長組寫的權限

chmod a+r abc:給全部用戶添加讀的權限

 

改變全部者(chown)和用戶組(chgrp)命令

chown xiaoming abc:改變abc的全部者爲xiaoming

chgrp root abc:改變abc所屬的組爲root

chown root ./abc:改變abc這個目錄的全部者是root

chown ‐R root ./abc:改變abc這個目錄及其下面全部的文件和目錄的全部者是root

 

改變用戶所在組

在添加用戶時,能夠指定將該用戶添加到哪一個組中,一樣用root的管理權限能夠改變某個用戶所在的組

- usermod ‐g 組名 用戶名

你能夠用

- usermod ‐d 目錄名 用戶名,改變該用戶登陸的初始目錄

 

SUID和SGID位

在Linux中,一些程序須要特殊權限才能完成用戶指定的操做。

例如,用戶的密碼保存在 /etc/shadow 文件中,出於安全考慮,通常用戶沒有讀取和寫入的權限。可是當咱們使用passwd 命令來更改密碼時,須要對 /etc/shadow 文件有寫入權限。這就意味着,passwd 程序必需要給咱們一些特殊權限,才能夠向 /etc/shadow 文件寫入內容。

Linux 經過給程序設置SUID(Set User ID)和SGID(Set Group ID)位來賦予普通用戶特殊權限。當咱們運行一個帶有SUID位的程序時,就會繼承該程序全部者的權限;若是程序不帶SUID位,則會根據程序使用者的權限來運行。

SGID也是同樣。通常狀況下程序會根據你的組權限來運行,可是給程序設置SGID後,就會根據程序所在組的組權限運行。

若是程序設置了SUID位,就會在表示文件全部者可執行權限的位置上出現's'字母;一樣,若是設置了SGID,就會在表示文件羣組可執行權限的位置上出現's'字母。以下所示:

$ ls -l /usr/bin/passwd
-r-sr-xr-x  1   root   bin  19031 Feb 7 13:47  /usr/bin/passwd*
$

上面第一列第四個字符不是'x'或'-',而是's',說明 /usr/bin/passwd 文件設置了SUID位,這時普通用戶會以root用戶的權限來執行passwd程序。

注意:小寫字母's'說明文件全部者有執行權限(x),大寫字母'S'說明程序全部者沒有執行權限(x)。

若是在表示羣組權限的位置上出現SGID位,那麼也僅有三類用戶能夠刪除該目錄下的文件:目錄全部者、文件全部者、超級用戶 root。

爲一個目錄設置SUID和SGID位可使用下面的命令:

$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root  4096 Jun 19 06:45 dirname
$

 

 

【綜合案例】

【題1.1】創建兩個用戶組group1group2,以及三個用戶dennisdanielabigale,而且將前2個用戶分配在group1用戶組下,後一個分配在group2用戶組下

 

【題1.2】以dennis用戶登陸,建立一個Hello.java文件

【題1.3】以daniel用戶登陸,觀察是否能夠訪問/home/dennis目錄以及讀或寫其建立的Hello.java文件

【題1.4】以dennis用戶登陸,修改目錄/home/dennisHello.java文件的讀寫權限(更正:修改目錄權限的時候,應該使用770,而不是760,不然權限不足)

 

【題1.5】重複【題1.3

【題1.6】改變abigale的用戶組由group2變爲group1

 

而後,可使用cat /etc/passwd查看並肯定

 

【參考】

- groupadd 組名,在linux中添加組

- vi /etc/group,查看linux中全部組信息,能夠看能夠編輯

- cat /etc/group,查看linux中全部組信息,只能夠看不能夠編輯

- useradd ‐g 組名 用戶名,建立用戶的同時指定將該用戶分配到哪一個組下

- vi /etc/passwd,查看linux中全部用戶信息,能夠看能夠編輯

- cat /etc/passwd,查看linux中全部用戶信息,只能夠看不能夠編輯

相關文章
相關標籤/搜索