Linux - 使用者許可權相關命令
阿新 • • 發佈:2020-06-29
使用者許可權相關命令
目標
- 使用者和許可權的基本概念
- 使用者管理終端命令
- 組管理終端命令
- 修改許可權終端命令
01.使用者和許可權的基本概念
1.1 基本概念
- 使用者是 Linux 系統工作中重要的一環,使用者管理包括使用者與組管理
- 在 Linux 系統中,不論是由本機或是遠端登入系統,每個系統都必須擁有一個賬號,並且對於不同的系統資源擁有不同的使用許可權
- 在 Linux 中,可以指定每一個使用者針對不同的檔案或者目錄的不同許可權
- 對檔案/目錄的許可權包括:
序號 | 許可權 | 英文 | 縮寫 | 數字代號 |
---|---|---|---|---|
01 | 讀 | read | r | 4 |
02 | 寫 | write | w | 2 |
03 | 執行 | excute | x | 1 |
1.2 組
- 為了方便使用者管理,提出了組的概念,如下圖所示
- 在實際應用中,可以預先針對組設定好許可權,然後將不同的使用者新增到對應的組中,從而不用依次為每一個使用者設定許可權
1.3 ls -l 擴充套件
-
ls -l
可以檢視資料夾下檔案的詳細資訊,從左到右依次是:- 許可權,第 1 個字元如果是
d
表示目錄 - 硬連結數,通俗地講,就是有多少種方式,可以訪問到當前目錄/檔案
- 擁有者,家目錄下 檔案/目錄 的擁有者通常都是當前使用者
- 組,在 Linux 中,很多時候,會出現組名和使用者名稱相同的情況,後續會講
- 大小
- 時間
- 名稱
- 許可權,第 1 個字元如果是
1.4chmod
簡單使用(重要)
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
目錄是專門用來儲存系統配置資訊的目錄
- 在實際應用中,可以預先針對組設定好許可權,然後將不同的使用者新增到對應的組中,從而不用依次為每一個使用者設定許可權
演練目標
- 在
python
使用者的桌面資料夾下建立Python學習
目錄 - 新建
dev
組 - 將
Python學習
目錄的組修改為dev
03.使用者管理終端命令
提示:建立使用者/刪除使用者/修改其他使用者密碼的終端命令都需要通過
sudo
執行
3.1 建立使用者/設定密碼/刪除使用者
序號 | 命令 | 作用 | 說明 | |
---|---|---|---|---|
01 | useradd -m -g 組 新建使用者名稱 | 新增新使用者 |
|
|
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
示意圖如下:
04. 修改檔案許可權
序號 | 命令 | 作用 |
---|---|---|
01 | chown | 修改擁有者 |
02 | chgrp | 修改組 |
03 | chmod | 修改許可權 |
- 命令格式如下:
# 修改檔案|目錄的擁有者
chown 使用者名稱 檔名|目錄名
# 遞迴修改檔案|目錄的組
chgrp -R 組名 檔名|目錄名
# 遞迴修改檔案許可權
chmod -R 755 檔名|目錄名
chmod
在設定許可權時,可以簡單地使用三個數字分別對應擁有者/組和其他使用者的許可權
# 直接修改檔案|目錄的 讀|寫|執行 許可權,但是不能精確到 擁有者|組|其他
chmod +/-rwx 檔名|目錄名
- 常見數字組合有(
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