Debian

adduser 做了哪些 useradd 不做的事情?

  • November 12, 2020

除了更廣泛的useradd,基於 Debian 的系統還包含一個附加adduser命令,該命令為添加使用者和一些相關任務提供了更高級別的界面。其他 SE 網站上有各種問題/答案,詳細說明了這些命令之間的基本區別,例如:

大多數答案本質上說,adduser它為互動式添加使用者提供了更好的界面,但沒有詳細說明adduser執行時會發生什麼,與useradd. 所以:

  1. adduseruseradd不做什麼?
  2. 我需要使用什麼命令來產生等效的結果?

首先,各自的手冊頁片段突出顯示了兩個命令之間的差異,並給出了一些指示。對於adduser

adduser 和 addgroup 根據 /etc/adduser.conf 中的命令行選項和配置資訊將使用者和組添加到系統中。它們是 useradd、groupadd 和 usermod 程序等低級工具的更友好前端,預設選擇符合 Debian 策略的 UID 和 GID 值,創建具有骨架配置的主目錄,執行自定義腳本和其他功能。

然後為useradd

useradd 是用於添加使用者的低級實用程序。在 Debian 上,管理員通常應該使用 adduser(8)。

進一步調查adduser顯示,它是一個 perl 腳本,為以下命令提供高級介面,從而提供以下命令的一些功能:

  • useradd
  • groupadd
  • passwd- 用於添加/更改使用者密碼。
  • gpasswd- 用於添加/更改組密碼。
  • usermod- 用於更改各種使用者相關參數。
  • chfn- 用於添加/更改使用者持有的附加資訊。
  • chage- 用於更改密碼到期資訊。
  • edquota- 用於更改磁碟使用配額。

該命令的基本執行adduser如下:

adduser username

這個簡單的命令會做很多事情:

  1. 創建名為 的使用者username
  2. 創建使用者的主目錄(預設是/home/username並將文件複製/etc/skel到其中。
  3. 創建一個與使用者同名的組並將使用者放入其中。
  4. 提示使用者輸入密碼。
  5. 提示有關使用者的其他資訊。

useradd程序可以完成大部分工作,但是預設情況下它不會這樣做,並且需要其他選項。一些資訊需要更多命令:

useradd -m -U username
passwd username
chfn username

請注意,adduser確保創建的 UID 和 GID 符合Debian 政策。如果/ in符合 Debian 政策,創建普通使用者useradd似乎沒問題。問題在於Debian為系統使用者 UID 指定了一個特定範圍,而該範圍似乎只在.UID_MIN``UID_MAX``/etc/login.defs``/etc/adduser.conf``useradd

的另一個常見用途adduser是簡化將使用者添加到組的過程。在這裡,以下命令:

adduser username newgroup

等效於以下usermod命令:

usermod -a -G newgroup username

在這種情況下的主要缺點usermod是忘記傳遞附加選項(即-a:)最終會在將使用者添加到“新組”之前將使用者從所有組中刪除(即:-G單獨表示“替換為”)。

但是,在這裡使用的一個缺點adduser是您一次只能指定一個組。

引用自:https://unix.stackexchange.com/questions/121071