「adduser」和「useradd」有什麼不同?

「adduser」和「useradd」有什麼不同?

我想知道:為什麼 Debian Linux 上有這兩個命令,其名稱和功能非常相似?這一直讓我感到困惑。

  • 它們中的任何一個都優於另一個嗎?
  • 為什麼他們不合而為一呢?
  • 它們之間有什麼顯著差異嗎?
  • 我應該使用哪一個?或者它取決於用例?

答案1

useradd是隨系統編譯的本機二進位。但是,它是一個在後端adduser使用二進制的 Perl 腳本。useradd

adduser比其後端更用戶友好和互動useradd。提供的功能沒有差別。

答案2

主要優點是新增用戶超過用戶新增正在與系統級用戶打交道。和新增用戶建立系統級使用者帳戶時,會在系統使用者的主目錄中放置一個使用者目錄,其中用戶新增不會自動。如果您閱讀該手冊,它們本質上是相同的,除了系統級使用者和關聯的主目錄是自動的。新增用戶自動為系統級使用者建立一個 /home/user 目錄,其中沒有規定用戶新增,除非指定-m選項。我遇到的其他讀物一般都指出 UID 和 GUID 是由公認的 Debian 標準分配的新增用戶

答案3

在我檢查的幾個 Redhat 實例中(2011 年的 4.9 和 2017 年的 6.9),adduser 只是 useradd 的別名,而不是 Perl 腳本。在 Redhat 6.9 是這樣的:

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

我記得 useradd 是「正確」程式是這樣的:新增使用者只是 CRUD 範圍中的一項操作。您還需要“修改”和“刪除”操作(“讀取”可能是透過查看 /etc/passwd 來覆蓋的)。因此,這些程式被命名為使用者*(分別為 useradd、usermod 和 userdel)。我想替代方案*用戶命名約定(adduser、moduser 和 deluser——這些不存在)也可以運作。但會稍微尷尬一些(原因我暫時無法表達清楚:)

答案4

在 raspian 中(我需要檢查其他作業系統),「adduser USER」啟動一個對話方塊(TUI),而「useradd USER」則不會。

顯然,使用 adduser,一旦出現對話框,完整的「useradd」指令就已經執行。即使您按 CTRL-C,您的用戶也在那裡。

與在新系統中一樣,他們會建立「個人」群組,要刪除新建立的用戶,您需要:

  • vi /etc/passwd
  • vi /etc/組
  • rm -rf /home/用戶

我假設因為 adduser “使用”useradd,所以其餘的都是有關用戶的元資料。因此,從技術上講,「skel」、「檔案遮罩」等(即您的系統預設值)沒有變化。

另一方面,因為 useradd 不會啟動任何 TUI,所以它在腳本編寫中可能更有用。

老實說,我只在rasbian 中進行了測試,因為這就是我踩到這個問題的原因。

我可以想像其他作業系統可能會實作不同版本的 adduser。

相關內容