linux useradd命令的基本用法
在 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
注意過個組名使用逗號分隔,不能有空格。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3486/viewspace-2800272/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- useradd 命令的常見用法
- Linux useradd 命令介紹Linux
- Linux基礎命令---新增使用者useraddLinux
- Linux基礎命令—新增使用者useraddLinux
- Linux最常用的5個重啟命令基本用法講解!Linux
- Linux使用者管理之useradd、passwd命令講解Linux
- Linux中useradd命令如何使用?常用引數是什麼?Linux
- linux 中 date命令的用法Linux
- Linux sed命令用法Linux
- linux中grep基本用法Linux
- rocky與linux的nmcli命令用法Linux
- Linux read命令的基本使用!Linux
- Linux命令-Sed用法教程Linux
- Linux基本操作命令Linux
- Linux 基本操作命令Linux
- linux基本命令Linux
- 在 Linux 中不使用 useradd 命令如何建立使用者賬號Linux
- linux命令下jq的用法簡介Linux
- Linux 基本命令 -------- tail 的使用LinuxAI
- Linux的常用基本命令(二)Linux
- linux 路由基本命令的使用Linux路由
- 常用的Linux命令;Linux常用命令用法及實現方式Linux
- Linux——基礎命令用法(下)Linux
- Linux——基礎命令用法(上)Linux
- Linux iostat命令基本使用LinuxiOS
- Linux vmstat命令基本使用Linux
- Linux下crontab命令的用法:sudo crontab -lLinux
- Linux 命令列:find 的 26 個用法示例Linux命令列
- Linux shutdown關機命令的基本使用!Linux
- 『學了就忘』Linux基礎命令 — 18、Linux命令的基本格式Linux
- Linux下more命令高階用法Linux
- Linux下mv命令高階用法Linux
- Linux常用基本命令[cp]Linux
- Linux常用基本命令(more)Linux
- Linux命令列:cURL的十種常見用法Linux命令列
- linux後臺執行命令:&與nohup的用法Linux
- Linux下 ls 命令的高階用法8例Linux
- linux中查詢find命令的複雜用法Linux