Linux命令——用戶權限管理
- 一、Linux用戶管理
- <1> 查看當前用戶:whoami
- <2> 查看登錄用戶:who
- <3> 添加用戶賬號:useradd
- <4> 設定用戶密碼:passwd
- <5> 洗掉用戶:userdel
- <6> 添加、洗掉組賬號:groupadd、groupdel
- <7> 修改用戶所在組:usermod
- <8> 查看用戶在哪些組:groups
- 二、Linux權限管理
- 2.1 檔案訪問者的分類(人)
- 2.2 檔案的型別和訪問權限
- 2.3 檔案權限值的表示方法
- 2.4 檔案訪問權限的相關設定方法與命令
- <1> 修改檔案權限:chmod
- <2> 修改檔案的擁有者:chown
- <3> 修改檔案的所屬組:chgrp
- <4> 查看或修改檔案掩碼: umask
- 2.5 粘滯位:t
- **為什么有粘滯位?**
- 粘滯位的使用
- 三、關于權限的總結
一、Linux用戶管理
Linux用戶管理
- 用戶是Linux系統作業中重要的一環,用戶管理包括用戶與組賬號的管理,
- 賬號管理是指賬號的新增、洗掉和修改、賬號規劃以及權限的授予等問題,
- 在Linux系統中,不論是由本機或是遠程登錄系統,每個系統都必須擁有一個賬號,并且對于不同的系統資源擁有不同的使用權限,
Linux用戶權限
- Linux下有兩種用戶:超級用戶(root)、普通用戶,
- Linux系統中的root賬號通常用于系統的維護和管理,它對Linux作業系統的所有部分具有不受限制的訪問權限,在大多數版本的Linux中,都不推薦直接使用root賬號登錄系統,
- Linux普通用戶在系統下的操作是受限的,
- 超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”
<1> 查看當前用戶:whoami
whoami該命令?戶查看當前系統當前賬號的?戶名,可通過cat /etc/passwd查看系統?戶資訊,
由于系統管理員通常需要使?多種身份登錄系統,例如通常使?普通?戶登錄系統,然后再以su命令切換到root身份對傳統進?管理,這時候就可以使?whoami來查看當前?戶的身份,再輸入exit命令,就可以退出到原來的用戶身份了,

<2> 查看登錄用戶:who
who命令用于查看當前所有登錄系統的用戶資訊,
常用選項:
| 選項 | 含義 |
|---|---|
| -m或am I | 只顯示運?who命令的?戶名、登錄終端和登錄時間 |
| -q或–count | 只顯示?戶的登錄賬號和登錄?戶的數量 |
| -u或–heading | 顯示列標題 |

<3> 添加用戶賬號:useradd
在Linux中添加用戶賬號可以使用adduser或useradd命令,因為adduser命令是指向useradd命令的一個鏈接,因此,這兩個命令的使用格式完全一樣,
useradd命令的使用格式如下:
useradd [引數] 新建用戶賬號
| 引數 | 含義 |
|---|---|
| -d | 指定?戶登錄系統時的主?錄,如果不使?該引數,系統?動在/home?錄下建?與?戶名同名?錄為主?錄 |
| -m | ?動建??錄 |
| -g | 指定組名稱 |

<4> 設定用戶密碼:passwd
在Unix/Linux中,超級?戶可以使?passwd命令為普通?戶設定或修改?戶?令,?戶也可以直接使?該命令來修改??的?令,??需在命令后?使??戶名,

<5> 洗掉用戶:userdel
| 命令 | 含義 |
|---|---|
| userdel abc(?戶名) | 洗掉abc?戶,但不會?動洗掉?戶的主?錄 |
| userdel -r abc(?戶名) | 洗掉?戶,同時洗掉?戶的主?錄 |

<6> 添加、洗掉組賬號:groupadd、groupdel
groupadd 新建組賬號 groupdel 組賬號 cat /etc/group 查看?戶組

<7> 修改用戶所在組:usermod

<8> 查看用戶在哪些組:groups

二、Linux權限管理
2.1 檔案訪問者的分類(人)
檔案和檔案目錄的所有者:u—User
檔案和檔案目錄的所有者所在的組的用戶:g—Group
其它用戶:o—Others
02.檔案型別和訪問權限(事物屬性)
2.2 檔案的型別和訪問權限


- 檔案型別
d:檔案夾
-:普通檔案
l:軟鏈接(類似Windows的快捷方式)
b:塊設備檔案(例如硬碟、光驅等)
p:管道檔案
c:字符設備檔案(例如螢屏等串口設備)
s:套介面檔案
- 基本權限
讀(r/4): Read對檔案而言,具有讀取檔案內容的權限;對目錄來說,具有瀏覽該目錄資訊的權限
寫(w/2): Write對檔案而言,具有修改檔案內容的權限;對目錄來說具有洗掉移動目錄內檔案的權限
執行(x/1): execute對檔案而言,具有執行檔案的權限;對目錄來說,具有進入目錄的權限
“—”表示不具有該項權限
2.3 檔案權限值的表示方法
- 字符表示方法
| Linux表示 | 說明 |
|---|---|
| r- - | 只讀 |
| -w- | 僅可寫 |
| - -x | 僅可執行 |
| rw- | 可讀可寫 |
| r-x | 可讀可執行 |
| -wx | 可寫可執行 |
| rwx | 可讀可寫可執行 |
| - - - | 無權限 |
- 8進制數值表示方法
| 權限符號 | 八進制 | 二進制 |
|---|---|---|
| r- - | 4 | 100 |
| -w- | 2 | 010 |
| - -x | 1 | 001 |
| rw- | 6 | 110 |
| r-x | 5 | 101 |
| -wx | 3 | 011 |
| rwx | 7 | 111 |
| - - - | 0 | 000 |
2.4 檔案訪問權限的相關設定方法與命令
<1> 修改檔案權限:chmod
chmod 修改檔案權限的方法有兩種: 字母法與數字法,
- 字母法:
chmod u/g/o/a +/-/=rwx 檔案名
| [ u/g/o/a ] | 含義 |
|---|---|
| u | user 表示該?件的所有者 |
| g | group 表示與該?件的所有者屬于同?組( group )者, 即?戶組 |
| o | other 表示其他以外的? |
| a | all 表示這三者皆是 |
| [ ±= ] | 含義 |
|---|---|
| + | 增加權限 |
| - | 撤銷權限 |
| = | 設定權限 |
| rwx | 含義 |
|---|---|
| r | read 表示可讀取, 對于?個目錄, 如果沒有r權限, 那么就意味著不能通過ls查看這個?錄的內容, |
| w | write 表示可寫入, 對于?個目錄, 如果沒有w權限, 那么就意味著不能在目錄下創建新的檔案, |
| x | excute 表示可執行, 對于?個目錄, 如果沒有x權限, 那么就意味著不能通過cd進?這個目錄, |
執行該命令時,我們可以僅對用戶或用戶組等進行權限操作,如下所示:

也可以同時對用戶、用戶組等進行權限操作

- 數字法:rwx也可以用2.3節中8進制數值表示法
如執?: chmod u=rwx,g=rx,o=r filename 就等同于: chmod u=7,g=5,o=4 filename
chmod 754 filename

<2> 修改檔案的擁有者:chown

<3> 修改檔案的所屬組:chgrp

<4> 查看或修改檔案掩碼: umask
Linux下對于新建的檔案和目錄的默認權限如下
- 新建檔案默認權限=0666
- 新建目錄默認權限=0777
但實際上我們所創建的檔案和目錄,看到的權限往往不是上面這個值,原因就是創建檔案或目錄的時候還要受到umask的影響,
這里假設默認權限是default,則實際創建的出來的檔案權限是:
default & ~umask
舉個栗子:假設我們新建檔案test1.txt,則默認權限為default為666,其二進制序列為110 110 110,那么umask為02,二進制序列為000 000 010,取反后為111 111 101,按照公式
110
110
110
(
d
e
f
a
u
l
t
)
&
111
111
101
(
~
u
m
a
s
k
)
110
110
100
\ \ \ 110 \ 110 \ 110(default) \\ \& \ \ \ 111 \ 111 \ 101(\sim umask) \\ \ \ \ 110 \ 110 \ 100 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
110 110 110(default)& 111 111 101(~umask) 110 110 100
那么檔案test1.txt的權限就是rw- rw- --w,下圖證明了上述栗子

注意:
這里會有一個誤區:umask的作用是將現有的權限減去umask的權限,產生最終的權限,如果不能理解可以按照上述栗子的操作,切忌不能與減法混淆,即用666-002=664 ,這種做法是錯誤的!
2.5 粘滯位:t
為什么有粘滯位?
假設有這樣一個目錄dir對于所有用戶都有rwx權限,用戶就可以隨意操作目錄dir下的檔案了,但是問題來了如果目錄dir下有一個檔案file.c,檔案的權限如下

file.c檔案對于普通用戶來說只能讀取,而不能寫和執行,也就意味著不能對file.c進行修改和洗掉,但事實確不是這樣的

如圖所示,我雖然對你的檔案只具備讀權限,但是我可以洗掉你的檔案,這也就意味著只要用戶具有目錄的寫權限,就可以隨意洗掉目錄中的檔案而不必擔心檔案的任何權限和擁有者,對于這種問題是不科學的,Linux作業系統引入了粘滯位的概念
粘滯位的使用
chmod +t 目錄

增加了粘滯位后,我們就不可以洗掉別人的檔案了

當一個目錄被設定為"粘滯位"(用chmod +t),則該目錄下的檔案只能由
- 超級管理員洗掉
- 該目錄的所有者洗掉
- 該檔案的所有者洗掉
三、關于權限的總結
- 目錄的可執行權限是表示你可否在目錄下執行命令,
- 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目, 即使目錄仍然有-r 讀權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的檔案)
- 而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄,但由于沒有目錄的讀權限,
- 所以在目錄下,即使可以執行ls命令,但仍然沒有權限讀出目錄下的檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260692.html
標籤:其他
