adduser 做了哪些 useradd 不做的事情?
除了更廣泛的
useradd
,基於 Debian 的系統還包含一個附加adduser
命令,該命令為添加使用者和一些相關任務提供了更高級別的界面。其他 SE 網站上有各種問題/答案,詳細說明了這些命令之間的基本區別,例如:
- ServerFault - ‘useradd’ 和 ‘adduser’ 有什麼區別?
- 超級使用者 - “adduser”和“useradd”有什麼區別?
- 問 Ubuntu - adduser 和 useradd 有什麼區別?
大多數答案本質上說,
adduser
它為互動式添加使用者提供了更好的界面,但沒有詳細說明adduser
執行時會發生什麼,與useradd
. 所以:
adduser
那useradd
不做什麼?- 我需要使用什麼命令來產生等效的結果?
首先,各自的手冊頁片段突出顯示了兩個命令之間的差異,並給出了一些指示。對於
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
這個簡單的命令會做很多事情:
- 創建名為 的使用者
username
。- 創建使用者的主目錄(預設是
/home/username
並將文件複製/etc/skel
到其中。- 創建一個與使用者同名的組並將使用者放入其中。
- 提示使用者輸入密碼。
- 提示有關使用者的其他資訊。
該
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
是您一次只能指定一個組。