Linux中許可權管理
阿新 • • 發佈:2020-08-06
一、許可權定義
1、檔案許可權作用的物件
owner :屬主 — u group :屬組 — g other :其他人 — o
2、檔案的三種許可權
//針對檔案的許可權 r 可讀 可以使用cat命令檢視檔案的類容 w 可寫 可以編輯或刪除檔案 x 可執行 在命令列介面下當做命令提交給核心執行 //針對目錄的許可權 r 可讀 可以使用ls命令檢視目錄裡面包含哪些檔案 w 可寫 可以在此目錄中建立其他的檔案或刪除此目錄中的檔案 x 可執行 可以使用cd命令切換至此目錄,也可以使用ls -l檢視目錄內部檔案的詳細資訊
3、r、w、x 許可權與十進位制的轉換
r — 4 w — 2 x — 1
二、許可權管理命令
1、chmod —— 修改許可權命令(可以修改檔案或目錄)
chmod -R(recursive):遞迴處理,將該目錄下的所有檔案及子目錄一起處理 <許可權範圍>+<許可權設定>:開啟許可權範圍的檔案或目錄的該選項許可權設定; <許可權範圍>-<許可權設定>:關閉許可權範圍的檔案或目錄的該選項許可權設定; <許可權範圍>=<許可權設定>:指定許可權範圍的檔案或目錄的該選項許可權設定; 示例 chmod u+r filename chmod g+w filename chmod o+x filename chmod u-r filename chmod g-w filename chmod o-x filename chmod u=rwx filename chmod g=rw filename chmod o=x filename chmod a+r filename chomd a+w filename chomd a+x filename chomd a-r filename chomd a-w filename chomd a-x filename chomd a=rw filename chomd a=x filename
2、chown —— 修改檔案或目錄的屬主或屬組許可權的命令
chown -R(recursive):遞迴處理,將指定目錄下的所有檔案及子目錄一併處理 示例 chown username:groupname filename //修改屬主和屬組 chown username.groupname filename //可以使用點代替冒號 chown username filename //只修改屬主 chown :groupname filename //只修改屬組 chown .groupname filename chown -R username:groupname filename //遞迴修改檔案屬主和屬組
三、遮罩碼
1、什麼是遮罩碼
在Linux系統建立一個檔案或目錄時,一個檔案的許可權是644,而一個目錄的許可權時755,這些看上去好像是固定的?
仔細看看就會發現:
1️⃣:該檔案都沒有執行的許可權;且該檔案除了屬主以外,其他的都沒有寫和執行的許可權;
2️⃣:而目錄除了屬主以外,其他=都沒有寫的許可權。這些都是由umask遮罩碼控制的,遮罩碼umask的目的就隱藏一些許可權。
3️⃣:umask的預設大小是0022
4️⃣:檔案的最終許可權是:檔案:666 — umask (0022;第一個不用減,從第二個開始;666 — 0022=644)
5️⃣:目錄的最許可權:目錄:777 — umask (0022;第一個不用減,從第二個開始;777—0022=755)
2、檢視遮罩碼
[root@localhost ~]# umask 0022
四、Linux安全上下文
1、程序有屬主和主組;文也有屬主和屬組
任何一個可執行程式檔案能不能啟動為程序,取決於發起者對程式檔案是否擁有可執行許可權 啟動為程序後,其程序的屬主為發起者,屬組為發起者所屬的組 程序訪問檔案時的許可權取決於程序的發起者 程序的發起者是檔案的屬主時,則應用檔案屬主許可權 程序的發起者是檔案的屬組時,則應用檔案屬組許可權 應用檔案“其它”許可權
五、特殊許可權
1、SUID(4)、SGID(2)、Sticky(1)
SUID 十進位制:4 chmod u+s filename chmod u-s filename 或者 chomd 4644 filename //如果file本身原來就有執行許可權,則SUID顯示為s(小寫),否則顯示為S(大寫) SGID 十進位制:2 chmod g+s filename chomd g-s filename 或者 chmod 2644 filename //如果file本身原來就有執行許可權,則SGID顯示為s(小寫),否則顯示為S(大寫) Sticky 十進位制:1 chomd o+t filename chomd o-t filename 或者 chmod 1644 filename //如果DIR本身原來就有執行許可權,則Sticky顯示為t,否則顯示為T
2、示例
//SUID [root@localhost ~]# touch file [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod u+x file [root@localhost ~]# ll file -rwxr--r--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod u+s file [root@localhost ~]# ll file -rwsr--r--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod u-x file [root@localhost ~]# ll file -rwSr--r--. 1 root root 0 8月 6 16:02 file //SGID [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod g=rwx file [root@localhost ~]# ll file -rw-rwxr--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod g+s file [root@localhost ~]# ll file -rw-rwsr--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod g-x file [root@localhost ~]# ll file -rw-rwSr--. 1 root root 0 8月 6 16:02 file //Sticky [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod o=rwx file [root@localhost ~]# ll file -rw-r--rwx. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod o+t file [root@localhost ~]# ll file -rw-r--rwt. 1 root root 0 8月 6 16:02 file [root@localhost ~]# chmod o-x file [root@localhost ~]# ll file -rw-r--rwT. 1 root root 0 8月 6 16:02 file 或 //SUID [root@localhost ~]# touch file [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod 4644 file [root@localhost ~]# ll file -rwSr--r--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod u+x file [root@localhost ~]# ll file -rwsr--r--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod 0644 file [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:09 file //SGID [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod 2644 file [root@localhost ~]# ll file -rw-r-Sr--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod g+x file [root@localhost ~]# ll file -rw-r-sr--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod 0644 file [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:09 file //Sticky [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod 1644 file [root@localhost ~]# ll file -rw-r--r-T. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod o+x file [root@localhost ~]# ll file -rw-r--r-t. 1 root root 0 8月 6 16:09 file [root@localhost ~]# chmod 0644 file [root@localhost ~]# ll file -rw-r--r--. 1 root root 0 8月 6 16:09 file