當前位置:
首頁 > 知識 > Linux useradd 命令基本用法

Linux useradd 命令基本用法


作者:sparkdev


鏈接:https://www.cnblogs.com/sparkdev/p/5823353.html


在 Linux 中 useradd 是個很基本的命令,但是使用起來卻很不直觀。以至於在 Ubuntu 中居然添加了一個 adduser 命令來簡化添加用戶的操作。本文主要描述筆者在學習使用 useradd 命令時的一些測試結果。


說明:本文中的所有試驗都是在 Ubuntu14.04 上完成。

功能


在Linux中 useradd 命令用來創建或更新用戶信息。


useradd 命令屬於比較難用的命令 (low level utility for adding users),所以 Debian 系的發行版中建議管理員使用 adduser 命令。其實 adduser 命令只是一個調用了 useradd 命令的腳本文件。


本文將詳細分析群組和家目錄相關的選項。並且以實例的方式介紹常用的 useradd 命令寫法。


語法和基本選項


注意:本文並不是一個完整的文檔,所以僅列出部分常用的選項進行說明。

useradd [option] username
[option]:

-d<登入目錄> 指定用戶登入時的目錄。


-g<群組> 初始群組。

-G<群組> 非初始群組。


-m 自動創建用戶的家目錄。


-M 不要創建用戶的家目錄。


-N 不要創建以用戶名稱為名的群組。


-s 指定用戶登入後所使用的shell。



細說用戶組


首先我們要搞清楚,什麼是初始群組?簡單來說在 /etc/passwd 文件中,每行的第四個欄位指定的就是用戶的初始群組。用戶登錄後立即就擁有了初始群組中的許可權。


下面我們通過不同的命令來查看群組選項的用法:

$ sudo useradd tester1

沒有使用任何群組相關的參數,默認在創建用戶 tester1 的同時會創建一個同名的群組。用戶 tester1 的初始群組就是這個新建的群組。

$ sudo useradd tester2 -N

這次我們使用了 -N 選項,即不要生成與用戶同名的群組。查看下 /etc/passwd 文件,發現 tester2 用戶的初始群組ID是100。這個100是哪來的?有ID為100的群組嗎?其實100作為 -N 的默認值是寫在配置文件中的。不管有沒有ID為100的群組,都是這個值。當然我們也可以通過修改配置文件來改變這個默認值!

$ sudo useradd tester3 -g sudo

sudo 是一個非常有權勢的群組,我決定把 tester3 加入到這個群組。好,現在去查看一下 /etc/passwd 和 /etc/group 文件,看看有沒有新的群組被創建? tester3 的初始群組又是誰?這次沒有創建與 tester3 同名的群組。用戶 tester3 的初始群組變成了 sudo。

$ sudo useradd tester4 -G sudo

和上一條命令相比我們只是把小寫的g替換成了大寫的G。但結果可相差太多了,請您一定要好好的檢查 /etc/passwd 和 /etc/group 文件。因為這次不僅創建了群組 tester4,它還是用戶 tester4 的初始群組。和tester1 的唯一不同是 tester4 被加入了 sudo 群組。


在實際的使用中,tester3 和 tester4 的場景都是比較常見的,需要根據實際情況進行區分。


細說家目錄


Useradd 命令對用戶家目錄的處理讓人困惑,下面我們將通過實驗來了解家目錄相關的不同選項的使用方法:

$ sudo useradd tester1

讓我們重新看看創建用戶 tester1 這條命令。它不會為用戶 tester1 創建名為 tester1 的目錄作為家目錄,但是我們打開 /etc/passwd 文件,發現 tester1 的記錄中居然包含了家目錄 /home/tester1。

tester1:x:1005:1005::/home/tester1

:

這讓人不可思議,但這條命令確實是這麼實現的。

$ sudo useradd -m tester5

若要在創建用戶的同時創建用戶的家目錄,必須指定 -m 選項。

$ sudo useradd -d /home/abc tester6

我們希望自己指定家目錄,此時不生成目錄 abc

$ sudo useradd -d /home/abcd -m tester7

此時生成目錄 abcd,並且目錄下默認存在文件


常見用例


Case 1:

創建一個帶有家目錄並且可以登錄 bash 的用戶

$ sudo useradd -m -s /bin/bash tester1

Case 2:

指定創建用戶家目錄的路徑

$ sudo useradd -m -d /home/xxx tester2

/home/xxx目錄會被創建。

Case 3:

創建一個沒有家目錄且不能登錄的用戶

$ sudo useradd -s /sbin/nologin tester3

Case 4:

創建時把用戶加入不同的用戶組

$ sudo useradd -m -G xxx,sudo tester4

注意過個組名使用逗號分隔,不能有空格。


●編號674,輸入編號直達本文



●輸入m獲取文章

目錄

推薦↓↓↓



運維


更多推薦

25個技術類公眾微信

涵蓋:程序人生、演算法與數據結構、黑客技術與網路安全、大數據技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux學習 的精彩文章:

Linux查殺stopped進程
那些讓你起飛的計算機基礎知識

TAG:Linux學習 |