目標
- 用戶 和 權限 的基本概念
- 用戶管理 終端命令
- 組管理 終端命令
- 修改權限 終端命令
01. 用戶 和 權限 的基本概念
1.1 基本概念
- 用戶 是 Linux 系統工作中重要的一環,用戶管理包括 用戶 與 組 管理
- 在 Linux 系統中,不論是由本機或是遠程登錄系統,每個系統都必須擁有一個賬號,并且對于不同的系統資源擁有不同的使用權限
- 在 Linux 中,可以指定 每一個用戶 針對 不同的文件或者目錄 的 不同權限
- 對 文件/目錄 的權限包括:
序號 | 權限 | 英文 | 縮寫 | 數字代號 |
---|---|---|---|---|
01 | 讀 | read | r | 4 |
02 | 寫 | write | w | 2 |
03 | 執行 | excute | x | 1 |
1.2 組
- 為了方便用戶管理,提出了 組 的概念,如下圖所示
001_組示意圖.png
- 在實際應用中,可以預先針對 組 設置好權限,然后 將不同的用戶添加到對應的組中,從而不用依次為每一個用戶設置權限
1.3 ls -l 擴展
-
ls -l
可以查看文件夾下文件的詳細信息,從左到右依次是:-
權限,第 1 個字符如果是
d
表示目錄 - 硬鏈接數,通俗地講,就是有多少種方式,可以訪問到當前目錄/文件
- 擁有者,家目錄下 文件/目錄 的擁有者通常都是當前用戶
- 組,在 Linux 中,很多時候,會出現組名和用戶名相同的情況,后續會講
- 大小
- 時間
- 名稱
-
權限,第 1 個字符如果是
002_權限示意圖.png
1.4 chmod
簡單使用(重要)
-
chmod
可以修改 用戶/組 對 文件/目錄 的權限 - 命令格式如下:
chmod +/-rwx 文件名|目錄名
提示:以上方式會一次性修改
擁有者
/組
權限,有關chmod
的高級用法,后續會講
1.5 超級用戶
- Linux 系統中的
root
賬號通常 用于系統的維護和管理,對操作系統的所有資源 具有所有訪問權限 - 在大多數版本的 Linux 中,都不推薦 直接使用 root 賬號登錄系統
- 在 Linux 安裝的過程中,系統會自動創建一個用戶賬號,而這個默認的用戶就稱為“標準用戶”
sudo
-
su
是substitute user
的縮寫,表示 使用另一個用戶的身份 -
sudo
命令用來以其他身份來執行命令,預設的身份為root
- 用戶使用
sudo
時,必須先輸入密碼,之后有 5 分鐘的有效期限,超過期限則必須重新輸入密碼
若其未經授權的用戶企圖使用
sudo
,則會發出警告郵件給管理員
02. 組管理 終端命令
提示:創建組 / 刪除組 的終端命令都需要通過
sudo
執行
序號 | 命令 | 作用 |
---|---|---|
01 | groupadd 組名 | 添加組 |
02 | groupdel 組名 | 刪除組 |
03 | cat /etc/group | 確認組信息 |
04 | chgrp -R 組名 文件/目錄名 | 遞歸修改文件/目錄的所屬組 |
提示:
- 組信息保存在
/etc/group
文件中/etc
目錄是專門用來保存 系統配置信息 的目錄
001_組示意圖.png
- 在實際應用中,可以預先針對 組 設置好權限,然后 將不同的用戶添加到對應的組中,從而不用依次為每一個用戶設置權限
演練目標
- 在
python
用戶的桌面文件夾下創建Python學習
目錄 - 新建
dev
組 - 將
Python學習
目錄的組修改為dev
03. 用戶管理 終端命令
提示:創建用戶 / 刪除用戶 / 修改其他用戶密碼 的終端命令都需要通過
sudo
執行
3.1 創建用戶/設置密碼/刪除用戶
序號 | 命令 | 作用 | 說明 |
---|---|---|---|
01 | useradd -m -g 組 新建用戶名 | 添加新用戶 | <ul><li>-m 自動建立用戶家目錄</li><li>-g 指定用戶所在的組,否則會建立一個和同名的組</li></ul> |
02 | passwd 用戶名 | 設置用戶密碼 | 如果是普通用戶,直接用 passwd 可以修改自己的賬戶密碼 |
03 | userdel -r 用戶名 | 刪除用戶 | -r 選項會自動刪除用戶家目錄 |
04 | cat /etc/passwd | grep 用戶名 | 確認用戶信息 | 新建用戶后,用戶信息會保存在 /etc/passwd 文件中 |
提示:
- 創建用戶時,如果忘記添加
-m
選項指定新用戶的家目錄 —— 最簡單的方法就是刪除用戶,重新創建- 創建用戶時,默認會創建一個和用戶名同名的組名
- 用戶信息保存在
/etc/passwd
文件中
3.2 查看用戶信息
序號 | 命令 | 作用 |
---|---|---|
01 | id [用戶名] | 查看用戶 UID 和 GID 信息 |
02 | who | 查看當前所有登錄的用戶列表 |
03 | whoami | 查看當前登錄用戶的賬戶名 |
passwd 文件
/etc/passwd
文件存放的是用戶的信息,由 6 個分號組成的 7 個信息,分別是
- 用戶名
- 密碼(x,表示加密的密碼)
- UID(用戶標識)
- GID(組標識)
- 用戶全名或本地帳號
- 家目錄
- 登錄使用的 Shell,就是登錄之后,使用的終端命令,
ubuntu
默認是dash
usermod
-
usermod
可以用來設置 用戶 的 主組 / 附加組 和 登錄 Shell,命令格式如下: -
主組:通常在新建用戶時指定,在
etc/passwd
的第 4 列 GID 對應的組 -
附加組:在
etc/group
中最后一列表示該組的用戶列表,用于指定 用戶的附加權限
提示:設置了用戶的附加組之后,需要重新登錄才能生效!
# 修改用戶的主組(passwd 中的 GID)
usermod -g 組 用戶名
# 修改用戶的附加組
usermod -G 組 用戶名
# 修改用戶登錄 Shell
usermod -s /bin/bash 用戶名
注意:默認使用
useradd
添加的用戶是沒有權限使用sudo
以root
身份執行命令的,可以使用以下命令,將用戶添加到sudo
附加組中
usermod -G sudo 用戶名
which(重要)
提示
/etc/passwd
是用于保存用戶信息的文件/usr/bin/passwd
是用于修改用戶密碼的程序
-
which
命令可以查看執行命令所在位置,例如:
which ls
# 輸出
# /bin/ls
which useradd
# 輸出
# /usr/sbin/useradd
bin
和 sbin
- 在
Linux
中,絕大多數可執行文件都是保存在/bin
、/sbin
、/usr/bin
、/usr/sbin
-
/bin
(binary
)是二進制執行文件目錄,主要用于具體應用 -
/sbin
(system binary
)是系統管理員專用的二進制代碼存放目錄,主要用于系統管理 -
/usr/bin
(user commands for applications
)后期安裝的一些軟件 -
/usr/sbin
(super user commands for applications
)超級用戶的一些管理程序
提示:
cd
這個終端命令是內置在系統內核中的,沒有獨立的文件,因此用which
無法找到cd
命令的位置
3.3 切換用戶
序號 | 命令 | 作用 | 說明 |
---|---|---|---|
01 | su - 用戶名 | 切換用戶,并且切換目錄 | - 可以切換到用戶家目錄,否則保持位置不變 |
02 | exit | 退出當前登錄賬戶 |
-
su
不接用戶名,可以切換到root
,但是不推薦使用,因為不安全 -
exit
示意圖如下:
003_su和exit示意圖.png
04. 修改文件權限
序號 | 命令 | 作用 |
---|---|---|
01 | chown | 修改擁有者 |
02 | chgrp | 修改組 |
03 | chmod | 修改權限 |
- 命令格式如下:
# 修改文件|目錄的擁有者
chown 用戶名 文件名|目錄名
# 遞歸修改文件|目錄的組
chgrp -R 組名 文件名|目錄名
# 遞歸修改文件權限
chmod -R 755 文件名|目錄名
-
chmod
在設置權限時,可以簡單地使用三個數字分別對應 擁有者 / 組 和 其他 用戶的權限
# 直接修改文件|目錄的 讀|寫|執行 權限,但是不能精確到 擁有者|組|其他
chmod +/-rwx 文件名|目錄名
004_文件權限示意圖.png
- 常見數字組合有(
u
表示用戶/g
表示組/o
表示其他):-
777
===>u=rwx,g=rwx,o=rwx
-
755
===>u=rwx,g=rx,o=rx
-
644
===>u=rw,g=r,o=r
-
chmod
演練目標
- 將
01.py
的權限修改為u=rwx,g=rx,o=r
- 將
123.txt
的權限修改為u=rw,g=r,o=-
- 將
test
目錄以及目錄下的 所有 文件權限修改為u=rwx,g=rwx,o=rx