概述 Linux系統(tǒng)是一個多人多任務(wù)的操作系統(tǒng),,系統(tǒng)上同時可能有很多人登錄,,每個人都會利用系統(tǒng)上的各類資源完成一定的操作,。那么如何合理的規(guī)范這些用戶的行為,,保證資源的合理分配,,則就需要用到權(quán)限管理的相關(guān)內(nèi)容了。權(quán)限管理是Linux系統(tǒng)上最基礎(chǔ),,也是最重要的一部分內(nèi)容,,本章就簡要說明下權(quán)限管理的相關(guān)內(nèi)容。內(nèi)容主要包含以下幾個部分: 1,、權(quán)限管理的一些基礎(chǔ)概念理解 2,、普通權(quán)限管理的相關(guān)命令詳解 3、特殊權(quán)限管理SUID,、SGID,、STICKY 4、ACL相關(guān)內(nèi)容 5,、chattr特殊權(quán)限簡介 本章涉及到的命令有:chmod,、chown、chgrp,、umask,、setfacl、getfacl,、chattr,、lsattr 一、權(quán)限管理的一些基礎(chǔ)概念理解1,、權(quán)限位介紹 在Linux系統(tǒng)上,,普通權(quán)限分為三類:讀(r)、寫(w),、執(zhí)行(x) 文件的從屬關(guān)系也分為三類: 屬主(u):標明這個文件是誰的 屬組(g):標明該文件屬于哪個用戶組 other(o):除開文件屬主和屬組之外的所有人 利用命令:ls -l /etc/passwd 可以看到:-rw-r–r– 1 root root 1701 8月 1 20:12 /etc/passwd 其中-rw-r–r–這部分就顯示了該文件權(quán)限相關(guān)的定義 最前面一位,,代表該文件的類型,主要有-,、d,、l、s,、p,、c、b等類型具體后期在進行說明,。 剩下的9位,,每3位分成一個組,共3組,,其中: 左3位:代表文件的屬主的權(quán)限,,3位的順序固定格式,rwx,,分別代表讀寫執(zhí)行,,如果某位上為-,代表無該權(quán)限 中3位:代表文件的屬組的權(quán)限 右3位:代表除開屬主和屬組之外的其他人對該文件的權(quán)限 針對上面提到的rw-r–r–這個權(quán)限表示文件的屬主,,也就是對該文件有讀,、寫權(quán)限,屬組對該文件具有讀權(quán)限,,其他人對該文件具有讀權(quán)限 2,、各權(quán)限位對文件和目錄的意義 在Linux系統(tǒng)上,讀寫執(zhí)行三個權(quán)限針對文件和目錄是具有不同的效果的,,具體的功能如下: 對文件而言: r:表示可獲取文件的數(shù)據(jù),;cat、nano文件內(nèi)容 w:表示可修改文件的數(shù)據(jù),;可修改內(nèi)容,,不能刪除文件本身,,但文件內(nèi)容可以刪 x:表示可將此文件發(fā)起運行為進程;針對可執(zhí)行程序文件或腳本,,一般的文件不需要加x權(quán)限 對目錄而言: r:表示可使用ls命令獲取其下的所有文件列表信息,,但是獲取不到ls -l的詳細信息 w:表示可修改此目錄下的文件列表,即創(chuàng)建或刪除文件 x:表示可cd至目錄中,,且可使用ls -l來獲取所有文件的詳細屬性信息 除了以上三種常見的權(quán)限表示外,,還有一個權(quán)限表示: X:功能是遞歸賦權(quán)時,會自動檢測是目錄還是文件,,目錄的話,,會自動加上x權(quán)限,如果是文件,,就看文件之前有沒有x權(quán)限,,有的話,就+x權(quán)限,,如果文件之前沒有x權(quán)限,,就不加x權(quán)限 3、權(quán)限表示法 針對各個權(quán)限的表示,,除了常規(guī)的r,、w、x之外,,還有一種方法進行表示(利用二進制數(shù)字) 001:代表執(zhí)行x 010:代表寫w 100:代表讀r 換算成十進制就是: r:4 w:2 x:1 0-7的數(shù)字可代表—,、–x、-w-,、-wx,、r–、r-x,、rw-,、rwx 常見的權(quán)限: 664 rw-rw-r– 640 rw-r—– 600 rw——- 755 rwxr-xr-x 750 rwxr-x— 775 rwxrwxr-x 4、UMASK介紹 在我們創(chuàng)建文件或目錄時,,系統(tǒng)會自動為我們分配一些權(quán)限,,這些權(quán)限是怎么得來的,這就是依賴于umask值了 umask:文件的權(quán)限反向掩碼 能夠?qū)崿F(xiàn)在創(chuàng)建文件時的默認權(quán)限為:666-umask 能夠?qū)崿F(xiàn)在創(chuàng)建目錄時的默認權(quán)限為:777-umask 注意:之所以文件用666去減,,表示文件默認不能擁有執(zhí)行權(quán)限,;如果得到的結(jié)果中,仍然有執(zhí)行權(quán)限,,這需要將其+1 系統(tǒng)上默認的umask值為: root:默認umask是022 普通用戶:默認umask是002 查看umask值可以直接在命令行下:umask 指定umask值可以直接在命令行下:umask 數(shù)字 來指定umask值,,值只能是3位數(shù)字,不大于777 umask -S 顯示以權(quán)限直觀方式顯示創(chuàng)建目錄時的umask,顯示結(jié)果類似這種格式:u=rwx,g=rx,o=rx umask -p 顯示uamsk本身和其值,,顯示結(jié)果類似這種格式:umask 0022 注意:在命令行里設(shè)置的umask只對當前shell有效,,退出登錄后失效 想永久生效,對當前用戶生效,,可放在家目錄的.bashrc里面 如果要對所有用戶都生效,,全局設(shè)置在/etc/profile和/etc/bashrc里面定義了關(guān)于默認umask的定義 umask.png 5、安全上下文: 1,、進程以某用戶的身份運行,進程是發(fā)起此進程用戶的代理,,因此以此用戶的身份和權(quán)限完成所有操作,; 2、權(quán)限匹配模型 a) 判斷進程的屬主(誰發(fā)起的進程誰就是該進程的屬主),,是否為被訪問文件的屬主,;如果是,則應(yīng)用屬主的權(quán)限,;否則進入第2步,; b) 判斷進程的屬主,是否屬于被訪問文件的屬組,;如果是,,則應(yīng)用屬組權(quán)限;否則進入第3步,; c) 應(yīng)用other的權(quán)限,; 通俗的理解就是: 當A用戶運行某個程序文件,例如cat,,由于cat命令本身就是一個二進制程序文件,,那么此時就對cat文件的權(quán)限進行判斷,A屬不屬于cat文件的屬主,,如果屬于,,查看cat文件上關(guān)于屬主的權(quán)限的定義,根據(jù)權(quán)限的定義來判斷A能對cat文件進行哪些操作,;然后如果A不屬于cat的屬主,,就判斷A是不是cat文件的屬組,如果屬于屬組,,那就根據(jù)屬組權(quán)限定義的權(quán)限,,對cat文件能執(zhí)行哪些操作,如果既不屬于cat的屬主,,又不屬于文件的屬組,,那么就執(zhí)行cat文件上關(guān)于其他用戶的權(quán)限定義,根據(jù)定義的權(quán)限,執(zhí)行相應(yīng)的操作,。那么通過查看,,我們發(fā)現(xiàn)A既不屬于cat文件的屬主,也不屬于文件的屬組,,就執(zhí)行了關(guān)于其他人的權(quán)限,,其他人的權(quán)限具有x權(quán)限,就是執(zhí)行,,故A可以運行cat命令,。 當A執(zhí)行cat命令時,如果cat程序需要調(diào)用一個文件,,例如我們執(zhí)行cat /etc/passwd 此時,,一旦cat程序運行起來,那么A就是cat進程的屬主,,該進程是發(fā)起此進程的用戶的代理,,也就是說,cat進程調(diào)用的一些資源,,當請求/etc/passwd時,,請求的身份是cat進程的身份,此時,,cat進程的身份是A,,那么就判斷A用戶對/etc/passwd文件的權(quán)限是什么,就對應(yīng)的可以進行哪些操作 二,、普通權(quán)限管理的相關(guān)命令詳解1,、chmod命令 格式:
三類用戶: u:屬主 g:屬組 o:其他 a:所有 選項: -R 表示遞歸修改目錄及其子目錄和文件的權(quán)限 用法一、chmod [OPTION]… MODE[,MODE]… FILE… MODE表示法 賦權(quán)表示法(直接操作一類用戶的所有權(quán)限位):u=,、g=,、o=、a=,、ug=,、uo=、….. 如:
授權(quán)表示法:直接操作一類用戶的一個權(quán)限位:u+,、u-、g+….. 如:
用法二,、chmod [OPTION]… OCTAL-MODE FILE…(八進制權(quán)限表示) 例如:chmod 660 /test/11.xx 注意:普通用戶僅能夠修改屬主為自己的文件的權(quán)限 2、chown命令 語法:
選項: -R:表示遞歸修改 例如:
|
|