如何在 Ubuntu 中添加、刪除和授予用戶 Sudo 權限


本教程將向您展示如何添加、刪除和授予 須藤 Ubuntu Linux 操作系統的用戶權限。以下說明已在 Ubuntu 20.04 LTS 版本中進行了測試。但是,其他基於 DEB 的發行版的步驟相同。在我們進入它之前,讓我們看一下 sudo 是什麼以及它的好處。

內容

  1. 1.什麼是sudo?
  2. 2.存在sudo的優點
  3. 3、在Ubuntu中為用戶添加、刪除和授予sudo權限
    1. 3.1. 在 Linux 上添加新用戶
    2. 3.2. 在 Linux 中授予用戶 Sudo 權限
    3. 3.3. 驗證 Sudo 用戶
    4. 3.4. 刪除一個 sudo 用戶
    5. 3.5. 永久刪除用戶

1.什麼是sudo?

Linux 和 Unix 操作系統有一個特殊的用戶,稱為 . root 用戶可以在類 Unix 系統上做任何事情。 使用 root 用戶進行日常活動可能很危險,不建議這樣做。一個錯誤的命令可能會破壞您的整個系統。這是 “須藤” 為了幫助。授權用戶可以在不知道 root 用戶密碼的情況下以 root 級別權限執行任務。因此,會創建一個普通用戶並將其添加到 sudo 用戶組,以根據需要執行管理任務。因此,該用戶在執行帶前綴的命令時,既可以作為普通用戶,也可以作為管理用戶。

2.存在sudo的優點

  • 無需與其他用戶共享 root 密碼。
  • 用戶無需知道 root 用戶密碼即可執行管理任務。
  • 執行管理任務時,系統會在對系統進行任何更改之前提示用戶輸入 sudo 密碼。您需要讓您的用戶考慮他們所做的事情的後果。
  • 該管理員可以輕鬆地向用戶授予權限,並在不再需要時撤銷他們。
  • 某些 Linux 發行版(例如 Ubuntu)默認禁用 root 用戶。所以沒有辦法對root用戶發起暴力攻擊。任何人嘗試都是沒有用的。因為沒有root密碼可以破解。
  • 此外,sudo 會話將在短時間內超時。提醒一下,如果您在以具有 sudo 權限的 root 身份運行命令後保持終端打開,您的授權將自動過期。因此,其他用戶無法執行進一步的管理任務。默認情況下,密碼在當前會話中保存 15 分鐘。之後,您必須再次輸入密碼。
  • 監視 sudo 用戶的命令行活動。 sudo 將用戶運行的命令的日誌條目添加到 /var/log/auth.log 文件中。如果遇到問題,可以查看這些命令並嘗試修復它們。

這些是成為 sudo 用戶的一些好處。讓我們看看如何在 Linux 中為用戶添加、刪除和授予 sudo 權限。

3、在Ubuntu中為用戶添加、刪除和授予sudo權限

首先,創建一個普通用戶。

3.1. 在 Linux 上添加新用戶

首先創建一個普通用戶。 “ubuntu 服務器”為此,請運行:

$ sudo adduser ubuntuserver

示例輸出:

Adding user `ubuntuserver' ...
Adding new group `ubuntuserver' (1001) ...
Adding new user `ubuntuserver' (1001) with group `ubuntuserver' ...
Creating home directory `/home/ubuntuserver' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for ubuntuserver
Enter the new value, or press ENTER for the default
    Full Name []: ubuntu 20.04 server
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] y
在 Ubuntu Linux 上創建一個新用戶

創建了一個名為“ubuntuserver”的新用戶。

3.2. 在 Linux 中授予用戶 Sudo 權限

一些 Linux 系統,例如 Arch Linux,需要安裝。 “須藤” 在創建新用戶之前打包 sudo 用戶。

# pacman -S sudo

對於 Debian:

# apt install sudo

‘sudo’ 默認安裝在 Ubuntu 服務器和桌面上。

使用以下命令將新創建的用戶添加到 sudo 組:

$ sudo adduser ubuntuserver sudo

示例輸出:

Adding user `ubuntuserver' to group `sudo' ...
Adding user ubuntuserver to group sudo
Done.
在 Linux 中授予用戶 Sudo 權限

名為“ubuntuserver”的用戶已被授予 sudo 權限。

您還可以使用以下命令將用戶添加到 sudo 社區:

$ sudo usermod -aG sudo ubuntuserver

要檢查用戶是否在 sudo 組中,請運行:

$ sudo -l -U ubuntuserver

示例輸出:

Matching Defaults entries for ubuntuserver on ostechnix:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

User ubuntuserver may run the following commands on ostechnix:
    (ALL : ALL) ALL
在 Linux 中檢查用戶 sudo 組確保用戶在 sudo 組中

是這裡, “(全部:全部)全部” line 表示用戶擁有無限權限,可以在系統上執行任何命令。在這種情況下,“ubuntuserver”用戶屬於 sudo 用戶組,現在可以執行各種管理任務。

對於開放內容 sudoers 文檔;

$ sudo cat /etc/sudoers

您將看到如下所示的一些行。

[...]
# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

從上面的輸出可以看出,sudo 組的所有成員都可以執行任意命令。

  • 第一個 ALL 是授權用戶。
  • 第二個 ALL 是主機。將相同的“sudoers”文件分發到多個主機允許用戶在所有主機上運行管理命令。
  • 第三個是運行命令的用戶。
  • 最後一個是允許的命令。

3.3. 驗證 Sudo 用戶

為確保用戶可以執行管理任務,請註銷並以新用戶身份重新登錄。

或者,您可以立即以具有 sudo 權限的其他用戶身份登錄,而無需退出當前會話,如下所示。

$ sudo -i -u <username>

例子:

$ sudo -i -u ubuntuserver

現在運行任何以“sudo”開頭的命令,如下所示:

$ sudo apt update
使用 sudo 權限運行命令使用 sudo 權限運行命令

3.4. 刪除一個 sudo 用戶

您可以刪除 sudo 用戶的權限,而無需完全刪除它。 在 Ubuntu 系統上執行此操作時要小心。 不要從“sudo”組開始。您的系統必須至少有一個 sudo 用戶。

要撤銷用戶的 sudo 權限,命令為:

$ sudo deluser ubuntuserver sudo

上面的命令是從“sudo”組啟動的。

示例輸出:

Removing user `ubuntuserver' from group `sudo' ...
Done.

請注意,此命令僅將用戶從 sudo 組中刪除,它不會將其從系統中永久刪除。

或者,通過運行以下命令撤銷用戶的 sudo 權限:

$ sudo gpasswd -d ubuntuserver sudo

該用戶現在是普通用戶,無法執行 sudo 允許的管理任務。

要驗證用戶確實是“sudo”組中的用戶,請運行:

$ sudo -l -U ubuntuserver

示例輸出:

User ubuntuserver is not allowed to run sudo on ostechnix.

此 sudo 刪除了用戶的權限。

3.5. 永久刪除用戶

在上面的步驟中,我只從“sudo”組開始。但是用戶仍然存在於系統中。 要從 Linux 系統中完全刪除用戶,請以 root 或 sudo 用戶身份登錄並運行:

$ sudo deluser <username>

例子:

$ sudo deluser ubuntuserver

如果要刪除用戶及其主目錄和郵件池,請運行以下命令:

$ sudo deluser --remove-home ubuntuserver

示例輸出:

Looking for files to backup/remove ...
Removing files ...
Removing user `ubuntuserver' ...
Warning: group `ubuntuserver' has no more members.
Done.

查看手冊頁以獲取更多詳細信息。

$ man adduser
$ man deluser
$ man sudo

本指南也適用於 Alpine Linux、Arch Linux 和 CentOS 系統。 查看以下有關在 Arch Linux 和 CentOS Linux 發行版上添加、刪除和授予 sudo 用戶權限的指南。

  • 在 Alpine Linux 中為用戶添加、刪除和授予 Sudo 權限
  • 在 Arch Linux 中為用戶添加、刪除和授予 Sudo 權限
  • 在 CentOS 上為用戶添加、刪除和授予 Sudo 權限

希望這可以幫助。

相關文件:

  • 如何在 Linux 上更改 sudo 密碼超時
  • 如何更改 Linux 上的默認 sudo 日誌文件
  • 如何恢復用戶的 sudo 權限
  • 如何在 Linux 系統上查找所有 Sudo 用戶
  • 如何在 Linux 中運行沒有 sudo 密碼的特定命令

由 Mohamed Hassan 在Pixabay上發布的精選圖片.

添加 sudo 用戶添加用戶添加 sudo 權限刪除用戶授予 sudo 權限LinuxLinux 命令Linux howtoLinux 用戶管理Ubuntu