Linux權限管理基本知識大全

來源:文萃谷 3.2W

Linux系統有什麼基本權限,權限管理命令是什麼?下面跟yjbys小編一起來看看吧!

Linux權限管理基本知識大全

  一、基本權限

linux權限機制採用UGO模式。其中 u(user)表示所屬用户、g(group)表示所屬組、o(other)表示除了所屬用户、所屬組之外的情況。

u、g、o 都有讀(read)、寫(write)、執行(excute) 三個權限,所以UGO模式是三類九種基本權限。

用命令 ls -l 可列出文件的權限,第一列輸出明確了後面的輸出(後面一列代表 ugo權限)。第一個字母對應的關係:

“-” 普通文件

“d” 目錄

”l“ 符號鏈接

”c“ 字符設備

"b" 塊設備

"s" 套接字

"p" 管道

修改文件或目錄的所屬用户: chown 文件名 | 目錄名 用户

-R 該參數以遞歸的方式修改目錄下所有文件的所屬用户,參數可以敲 chown --help 查看。

修改文件或目錄的所屬組: chgrp 文件名 | 目錄名 組名

-R 該參數以遞歸的方式修改目錄下的所有文件的所屬組。

命令chmod 用來修改文件或目錄的權限: chmod -參數 模式 文件 | 目錄

例子: 修改目錄 log下所有文件的權限為700

chmod -R 700 log

注:700的來歷是 u g o

rwx rwx rwx

111 000 000

關於 chmod 命令的權限模式除了數字表示,還可以是 u、g、o 、a 加 +、- 來表示。格式如下:u、g、o分別代表用户、屬組和其他,a 就是

all ,可以代替ugo。 +、- 代表增加或刪除對應的權限,r、w、x 代表三種權限,分別是讀、寫、執行。

例子:對於目錄 log下的所有文件(已有權限是700)增加所屬組(g)的讀(r)、執行(x)權限。

chmod -R g+rx log

類似的命令可能還有很多,這裏只是舉幾個最基本且常用的例子。很多命令用到時,再去查也可以。還可參考《鳥哥的'Linux私房菜》。

  二、特殊權限

Linux的3個特殊的權限,分別是setuid、setgid和stick bit。

setuid權限(S):只有用户可擁有,出現在執行權限(x)的位置。

setuid權限允許用户以其擁有者的權限來執行可執行文件,即使這個可執行文件是由其他用户運行的。

setgid權限(S):對應於用户組,出現在執行權限(x)的位置。

setgid權限允許以同該目錄擁有者所在組相同的有效組權限來允許可執行文件。但是這個組和實際發起命令的用户組不一定相同。

stick bit (t /T):又名粘滯位,只有目錄才有的權限,出現在其他用户權限(o)中的執行位置(x)。當一個目錄設置了粘滯位,只有創建了該目錄的用户才能刪除目錄中的文件,但是其他用户組和其他用户也有寫權限。使用 t 或 T來表示。若沒有設置執行權限,但是設置了粘滯位,使用 t;若同時設置了執行權限和粘滯位使用 T。典型的粘滯位使用是 /tmp 目錄,粘滯位屬於一種寫保護。

設置特殊權限:

setuid: chmod u+s filename

setgid: chmod g+s directoryname

stick bit: chmod o+t directoryname

用數字表示特殊權限,是在基本權限之上的。濁嘴笨腮説不清楚,看例子:

例子:將上面例子中的log日誌目錄(已有權限 700)權限設置為755。特殊權限是類似 /tmp目錄的 stick bit有效。

特殊權限 基本權限

setuid setgid stick bit user group other

0 0 1 rwx rwx rwx

111 000 000

所以,設置特殊權限(stick bit)的命令應該是:chmod 1755 log

設置特殊權限後,ls -dl 查看該目錄:drwxr-xr-t 2 gg gg 4096 5月 11 19:05 log ( 注意 other 的 x 位是代表特殊權限的字母 t )

取消該特殊權限的命令:chmod 755 log 。如此 stick bit的權限就沒有了。

再次 ls -dl 查看該目錄: drwxr-xr-x 2 gg gg 4096 5月 11 19:15 log ( 注意最後一位已經變為代表普通權限的字母x )

需要注意的是,最前面一位 ”1“ 就是特殊權限位。其他兩個特殊權限的設置也類似。setuid使用不是無限制的。出於安全目的,只能應用在Linux ELF格式二進制文件上,而不能用於腳本文件。

  三、高級權限

ACL(Access Control List),訪問控制列表是Linux下的的高級權限機制,可實現對文件、目錄的靈活權限控制。ACL 允許針對不同用户、

不同組對同一個目標文件、目錄進行權限設置,而不受UGO限制。

在一個文件系統上使用ACL需要在掛載文件系統的時候打開ACL功能。而根分區(ROOT)默認掛載的時候支持ACL。

命令:mount -o acl /掛載路徑

例子:mount -o acl /dev/sdb1 /mnt

查看一個文件的ACL設置的命令: getfacl file

(針對一個用户)為一個文件設置指定用户的權限的命令: setfacl -m u:username:rwx filename

(針對一個組)為一個文件設置指定組的權限的命令: setfacl -m g:groupname:r-x filename

刪除一個ACL設置的命令: setfacl -x u:username filename

熱門標籤