1. 程式人生 > >Linux學習(四)——使用者許可權相關命令

Linux學習(四)——使用者許可權相關命令

使用者許可權相關命令

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.4 chmod 簡單使用(重要)

  • chmod 可以修改 使用者/組檔案/目錄 的許可權
  • 命令格式如下:
chmod +/-rwx 檔名|目錄名

提示:以上方式會一次性修改 擁有者 / 許可權,有關 chmod

的高階用法,後續會講

1.5 超級使用者

  • Linux 系統中的 root 賬號通常 用於系統的維護和管理,對作業系統的所有資源 具有所有訪問許可權
  • 在大多數版本的 Linux 中,都不推薦 直接使用 root 賬號登入系統
  • 在 Linux 安裝的過程中,系統會自動建立一個使用者賬號,而這個預設的使用者就稱為“標準使用者”

sudo

  • susubstitute user 的縮寫,表示 使用另一個使用者的身份
  • sudo 命令用來以其他身份來執行命令,預設的身份為 root
  • 使用者使用 sudo 時,必須先輸入密碼,之後有 5 分鐘的有效期限,超過期限則必須重新輸入密碼

若其未經授權的使用者企圖使用 sudo,則會發出警告郵件給管理員

02. 組管理 終端命令

提示:建立組 / 刪除組 的終端命令都需要通過 sudo 執行

序號 命令 作用
01 groupadd 組名 新增組
02 groupdel 組名 刪除組
03 cat /etc/group 確認組資訊
04 chgrp -R 組名 檔案/目錄名 遞迴修改檔案/目錄的所屬組

提示:

  • 組資訊儲存在 /etc/group 檔案中
  • /etc 目錄是專門用來儲存 系統配置資訊 的目錄

 

  • 在實際應用中,可以預先針對 設定好許可權,然後 將不同的使用者新增到對應的組中,從而不用依次為每一個使用者設定許可權

演練目標

  1. python 使用者的桌面資料夾下建立 Python學習 目錄
  2. 新建 dev
  3. Python學習 目錄的組修改為 dev

03. 使用者管理 終端命令

提示:建立使用者 / 刪除使用者 / 修改其他使用者密碼 的終端命令都需要通過 sudo 執行

3.1 建立使用者/設定密碼/刪除使用者

序號 命令 作用 說明
01 useradd -m -g 組 新建使用者名稱 新增新使用者
  • -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 個資訊,分別是

  1. 使用者名稱
  2. 密碼(x,表示加密的密碼)
  3. UID(使用者標識)
  4. GID(組標識)
  5. 使用者全名或本地帳號
  6. 家目錄
  7. 登入使用的 Shell,就是登入之後,使用的終端命令,ubuntu 預設是 dash

usermod

  • usermod 可以用來設定 使用者主組附加組登入 Shell,命令格式如下:
  • 主組:通常在新建使用者時指定,在 etc/passwd 的第 4 列 GID 對應的組
  • 附加組:在 etc/group 中最後一列表示該組的使用者列表,用於指定 使用者的附加許可權

提示:設定了使用者的附加組之後,需要重新登入才能生效!

# 修改使用者的主組(passwd 中的 GID)
usermod -g 組 使用者名稱

# 修改使用者的附加組
usermod -G 組 使用者名稱

# 修改使用者登入 Shell
usermod -s /bin/bash 使用者名稱

注意:預設使用 useradd 新增的使用者是沒有許可權使用 sudoroot 身份執行命令的,可以使用以下命令,將使用者新增到 sudo 附加組中

usermod -G sudo 使用者名稱

which(重要)

提示

  • /etc/passwd 是用於儲存使用者資訊的檔案
  • /usr/bin/passwd 是用於修改使用者密碼的程式
  • which 命令可以檢視執行命令所在位置,例如:
which ls

# 輸出
# /bin/ls

which useradd

# 輸出
# /usr/sbin/useradd

binsbin

  • Linux 中,絕大多數可執行檔案都是儲存在 /bin/sbin/usr/bin/usr/sbin
  • /binbinary)是二進位制執行檔案目錄,主要用於具體應用
  • /sbinsystem binary)是系統管理員專用的二進位制程式碼存放目錄,主要用於系統管理
  • /usr/binuser commands for applications)後期安裝的一些軟體
  • /usr/sbinsuper user commands for applications)超級使用者的一些管理程式

提示:

  • cd 這個終端命令是內建在系統核心中的,沒有獨立的檔案,因此用 which 無法找到 cd 命令的位置

3.3 切換使用者

序號 命令 作用 說明
01 su - 使用者名稱 切換使用者,並且切換目錄 - 可以切換到使用者家目錄,否則保持位置不變
02 exit 退出當前登入賬戶  
  • su 不接使用者名稱,可以切換到 root,但是不推薦使用,因為不安全

 

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