linux權限管理——複習篇(三)

Linux的權限操作與用戶、用戶組是兄弟操作。

一、權限概述

總述: Linux 系統一般將 文件可存/取訪問的身份分爲3個類別: owner. group、 others, 且3種身份各有read、write、 execute 等權限。
1.權限介紹
什麼是權限?
在多用戶(可以不同時)計算機系統的管理中,權限是指某個特定的用戶具有特定的系統資源使用權力,像是文件夾、特定系統指令的使用或存儲量的限制。

讀權限:
對於文件夾來說,讀權限影響用戶是否能夠列出目錄結構
對於文件來說,讀權限影響用戶是否可以查看文件內容
寫權限:
對文件夾來說,寫權限影響用戶是否可以在文件夾下“創建/刪除/複製到/移動到”文檔
對於文件來說,寫權限影響用戶是否可以編輯文件內容
執行權限:
一般都是對於 文件來說,特別腳本文件。

2、身份介紹
Owner身份(文件所有者,默認爲文檔的創建者)
由於Linux是多用戶、多任務的操作系統,因此可能常常有多人同時在某臺主機上工作,但每個人場可在主機上設置文件的權限,讓其成爲個人的“私密文件”,即個人所有者。因爲設置了適當的文件權限,除本人(文件所有者)之外的用戶無法查看文件內容。
例如某個MM給你發了一封Email情書,你將情書轉爲文件之後存檔在自己的主文件夾中。爲了不讓別人看到情書的內容,你就能利用所有者的身份去設置文件的適當權限,這樣,即使你的情敵想偷看你的情書內容也是做不到的。

Group身份(與文件所有者同組的用戶)
與文件所有者同組最有用的功能就體現在多個團隊在同一臺主機上開發資源的時候。
例如主機上有A. B兩個團體,A中有a1,a2,a3三個成員,B中有b1,b2 兩個成員,這兩個團體要共同完成一份報告F。由於設置了適當的權限,A、B團體中的成員都能互相修改對方的數據,但是團體C的成員則不能修改F的內容,甚至連查看的權限都沒有。同時,團體的成員也能設置自己的私密文件,讓團隊的其它成員也讀取不了文件數據。在Linux中,每個賬戶支持多個用戶組。如用戶a1、b1即可屬於A用戶組,也能屬於B用戶組【主組和附加組】。

Others身份(其他人,相對於所有者)

這個是個相對概念。打個比方,大明、二明小明一家三兄弟住在一間房,房產證上的登記者是大明(owner 所有者),那麼,大明一家就是一個用戶組,這個組有大明、二明、小明三個成員;另外有個人叫張三,和他們三沒有關係那麼這個張三就是其他人了。
同時,大明、二明、小明有各自的房間,三者雖然能自由進出各自的房間,但是小明不能讓大明看到自己的情書、日記等,這就是文件所有者(用戶)的意義。

Root用戶(超級用戶)
在Linux中,還有一個神一樣存在的用戶,這就是root用戶,因爲在所有用戶中它擁有最大的權限,所以管理着普通用戶。
3.linux的權限
要設置權限,就需要知道文件的一些基本屬性和權限的分配規則。在Linux中,Is命令常用來查看文件的屬性,用於顯示文件的文件名和相關屬性。
#Is -I 路徑 [Is -l 等價於 ll ]
在這裏插入圖片描述
標紅的部分就是Linux 的文檔權限屬性信息。
Linux中存在用戶、用戶組和其他人概念,各自有不同的權限,對於一個文檔來說,其權限具體分配如下:
在這裏插入圖片描述
十位字符表示含義:
第1位:表示文檔類型,取值常見的有“d表示文件夾”、“表示文件”、“1表示軟連接”、“s表示套接字”等等;
第2-4位:表示文檔所有者的權限情況,第2位表示讀權限的情況,取值有r、-;第3位表示寫權限的情況,w表示可寫,-表示不可寫,第4位表示執行權限的情況,取值有x、-。
第5-7位:表示與所有者同在一個組的用戶的權限情況,第5位表示讀權限的情況,取值有r、-;第6位表示寫權限的情況,w表示可寫,-表示不可寫,第7位表示執行權限的情況,取值有x、-。
第8-10位:表示除了上面的前2部分的用戶之外的其他用戶的權限情況,第8位表示讀權限的情況,取值有r、- ;第9位表示寫權限的情況,w表示可寫,-表示不可寫,第10位表示執行權限的情況,取值有X、-。
權限分配中,均是rwx的三個參數組合,且位置順序不會變化。沒有對應權限就用-代替。
在這裏插入圖片描述
————————————————————————————————————————————————————————————————————————————————————————————————

二、權限設置

語法: #chmod 選項 權限模式 文檔
常用選項:
-r:遞歸設置權限(當文檔類型爲文件夾的時候)
權限模式:就是該文檔需要設置的權限信息
文檔:可以是文件,也可以是文件夾,可以是相對路徑也可以是絕對路徑。
注意點:如果想要給文檔設置權限,操作者要麼是root用戶,要麼就是文檔的所有者。
1.字母形式
在這裏插入圖片描述
給誰設置:
u:表示所有者身份owner (user)
g:表示給所有者同組用戶設置(group)
o:表示others,給其他用戶設置權限
a:表示all, 給所有人(包含ugo部分)設置權限
如果在設置權限的時候不指定給誰設置,則默認給所有用戶設置
權限字符:
r:讀
w:寫
x:表示執行
-:表示沒有權限

權限分配方式: .
+:表示給具體的用戶新增權限(相對當前)
-:表示刪除用戶的權限(相對當前)
=:表示將權限設置成具體的值(注重結果)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
提示:當文檔擁有執行權限,則其顏色則終端是綠色
2.數字形式
經常會在一些技術性的網頁上看到類似於#chmod 777 a.txt這樣的一個權限,這種形式稱之爲數字形式權限(777)。
讀:r 4
寫: w 2
執行:x 1
在這裏插入圖片描述
在這裏插入圖片描述
有意思的問題
在這裏插入圖片描述
3.注意事項
在這裏插入圖片描述
切換到test用戶(不是文檔所有者,也不是同組用戶,屬於other部分):
問題1: test 用戶是否可以打開0o/xx.txt文件? [能打開]
問題2: test 用戶是否可以編輯oo/xx.txt文件? [可以]
問題3: test 用戶是否可以刪除oo/xx.txt 文件? [ 不可以,同樣還不允許創建文件/文件夾、移動文件、重命名文件]
在這裏插入圖片描述
在Linux中,如果要刪除一一個文件,不是看文件有沒有對應的權限,而是看文件所在的目錄是否有寫權限,如果有才可以刪除。
————————————————————————————————————————————————————————————————————————————————————————————————

三、屬主與屬組設置

屬主:所屬的用戶(文件的主人)
屬組:所屬的用戶組
在這裏插入圖片描述
前面的那個root就是屬主
後面的那個root就是屬組
這兩項信息在文檔創建的時候會使用創建者的信息(用戶名、用戶所屬的主組名稱)。

如果有時候去刪除某個用戶,則該用戶對應的文檔的屬主和屬組信息就需要去修改。
1、chown
作用:更改文檔的所屬用戶
語法: #chown -R username 文檔路徑

在這裏插入圖片描述
2、chgrp
作用:更改文檔的所屬用戶組
語法: #chgre -R groupname 文檔的路徑
在這裏插入圖片描述
思考,如何通過-一個命令實現既可以更改所屬的用戶,也可以修改所屬的用戶組呢?
答:可以實現的,通過chown命令
語法: #chown -R username:groupname 文檔路徑
在這裏插入圖片描述
————————————————————————————————————————————————————————————————————————————————————————————————

四、擴展

問題: reboot、 shutdown、 init、 halt、 user 管理,在普通用戶身份上都是操作不了,但是有些特殊的情況下又需要有執行權限。又不可能讓root用戶把自己的密碼告訴普通用戶,這個問題該怎麼解決?

該問題是可以被解決的,可以使用sudo(switch user do)命令來進行權限設置。Sudo可以讓管理員(root) 事先定義某些特殊命令誰可以執行。

默認sudo.中是沒有除root之外用戶的規則,要想使用則先配置sudo.
Sudo配置文件: /etc/sudoers
在這裏插入圖片描述
a.配置sudo文件請使用。“#visudo”,打開之後其使用方法和vim一致
b.配置普通用戶的權限,下面是文件裏默認提供的例子
在這裏插入圖片描述
Root表示用戶名,如果是用戶組,則可以寫成“%組名”
ALL:表示允許登錄的主機(地址白名單)
(ALL):表示以誰的身份執行,ALL表示root身份
ALL:表示當前用戶可以執行的命令,多個命令可以使用",”分割
在這裏插入圖片描述
特別注意:此處按照案例要求,不能讓test用戶修改root密碼,因此規則還需要調整,不然其可以修改root密碼的:
禁止修改root密碼的配置: /usr/bin/passwd [A-Za-zZl*, !/usr/bin/passwd root
在這裏插入圖片描述
補充:在普通用戶下怎麼查看自己具有哪些特殊權限呢?
#sudo -l
在這裏插入圖片描述
最後: sudo 不是任何Linux分支都有的命令,常見centos與ubuntu都存在sudo命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章