1. 程式人生 > >Linux用戶權限相關命令

Linux用戶權限相關命令

組成 無法找到 swd 目標 忘記 rep sys 基本概念 沒有

目標
  • 用戶權限 的基本概念
  • 用戶管理 終端命令
  • 組管理 終端命令
  • 修改權限 終端命令

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 組 新建用戶名 添加新用戶 <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 個信息,分別是

  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,但是不推薦使用,因為不安全
  • 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 演練目標

  1. 01.py 的權限修改為 u=rwx,g=rx,o=r
  2. 123.txt 的權限修改為 u=rw,g=r,o=-
  3. test 目錄以及目錄下的 所有 文件權限修改為 u=rwx,g=rwx,o=rx

Linux用戶權限相關命令