Linux 中useradd命令的使用

     Linux 系統中一般都是root用戶具備超級權限,超級用戶root通常是不須要建立的,然而不少時候root用戶不是任何人均可以使用的,畢竟最高權限的用戶,任意使用的話,會對系統形成不少沒必要要的破壞。那麼就須要建立給不一樣人建立用戶進行Linux系統的訪問,或者針對不一樣的應用程序使用不一樣的用戶。這時候有人會說,建立用戶很簡單啦,不就直接使用useradd 或者adduser就完事啦,確實是這樣的,可是就這麼簡單的一個命令,卻有不一樣的使用方式或者有不一樣的方法來建立用戶。下面經過15個案例來看一這個useradd或者adduser的不一樣使用方式。web

   因爲Linux系統的版本以及操做系統類型不大同樣,不一樣版本的以及不一樣類型的操做系統的命令具體還要參照對應的文檔,這裏只是簡單的使用centos來進行舉例。shell

   在Linux系統中執行‘useradd’命令,主要就是完成如下三個過程:centos

  1. 爲新建立的用戶賬戶編輯/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow文件。
  2. 爲新用戶建立用戶主目錄(home目錄)。
  3. 設置用戶主目錄(home目錄)的權限和全部權.

建立用戶命令的基本語法是:安全

useradd [options] usernamebash

 在本文中,咱們將向您展現在Linux中最經常使用的15個useradd命令及其實際例子。咱們把這一節從基本用法到高級用法分爲兩部分微信

  1. 第一部分:主要經過10個例子來展現useradd的基本用法
  2. 第二部分::經過5個例子來展現useradd的高級用戶

第一部分:useradd命令的10個基本用法框架

1,如何增長一個用戶在Linux中加密

在Linux系統中新增一個用戶,可使用useradd或者adduser命令後面加上一個用戶名來進行新增。這個用戶名是用於系統登陸的,所以這個用戶名必須是惟一的,若是系統中已經又或者用戶了,就不能進行建立了。spa

例如,增長一個新的用戶test1,使用如下命令。操作系統

[root@localhost ~]# useradd test1

當咱們建立完test1用戶以後,這個時候用test1用戶來進行登陸,登陸不了的,因爲該用戶咱們不知道用戶的密碼,登陸不了的,那如何給用戶添加密碼呢?經過下面命令進行添加。

[root@localhost ~]# passwd test1
Changing password for user test1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

用戶建立以後默認會把用戶自動添加到/etc/passwd文件中, 這個文件用來存儲用戶的信息。

test1:x:1002:1002::/home/test1:/bin/bash

上面的條目包含一組由7個冒號分隔的字段,每一個字段都有本身的含義。讓咱們看看這些字段是什麼:

  1. 用戶名:用於登陸系統的用戶登陸名。長度應該在1到32字符之間。
  2. 密碼:以加密格式存儲在/etc/shadow文件中的用戶密碼(或x字符)。
  3. 用戶ID (UID):每一個用戶必須有一個用戶ID (UID)用戶標識號。默認狀況下,UID 0保留給根用戶,1-99之間的UID保留給其餘預約義賬戶。此外,UID的範圍從100-999保留系統賬戶和組。
  4. 組ID (GID):存儲在/etc/group文件中的主組ID (GID)組標識號。
  5. 用戶信息:該字段是可選的,容許您定義關於用戶的額外信息。例如,用戶全名。該字段由' finger '命令填充。
  6. 主目錄:用戶的主目錄的絕對位置。
  7. Shell:用戶Shell的絕對位置,即/bin/bash。

2,建立一個具備不一樣主目錄的用戶

一般狀況下,在Linux操做系統中建立一個用戶默認建立用戶的目錄在home目錄下,就好比上面建立的用戶主目錄就默認就是/home/test1目錄。

可是可使用「-d」 可選參數來改變用戶的主目錄的位置,例如建立一個test2用戶在/tempfile/user1.首先這個/tempfile/user1必須是已經在系統建立好的目錄也能夠是其它目錄。

[root@localhost /]# useradd -d /tempfile/user1/ test2

這個時候命令執行成功以後,咱們在回去看一下/etc/passwd 中的目錄

[root@localhost /]# cat /etc/passwd | grep test2
test2:x:1003:1003::/tempfile/user1/:/bin/bash

3,建立一個具備不一樣主目錄的用戶

在Linux中,每一個用戶都有本身的UID(唯一標識號)。默認狀況下,每當咱們在Linux中建立一個新用戶賬戶時,它都會分配用戶500、50一、502等等。。。

可是,咱們能夠建立用戶的自定義用戶id與' -u '選項。例如,下面的命令將建立一個用戶' test3'與自定義用戶id '996 '。

[root@localhost /]# useradd -u 996 test3

接下來讓咱們來驗證一下,該命令執行成功是否建立了用戶id爲996的用戶test3.

root@localhost /]# cat /etc/passwd |grep test3
test3:x:996:1005::/home/test3:/bin/bash

注意:確保用戶ID的值必須與系統中任何其餘已建立的用戶惟一。

4,建立具備特定組ID的用戶

相似地,每一個用戶都有本身的GID(組標識號)。咱們還可使用-g選項建立具備特定組ID的用戶。

在本例中,咱們將在「-u」和「-g」選項的幫助下同時添加具備特定UID(不存在的用戶id)和GID(必須存在的組)的用戶「test4」。

[root@localhost~]# useradd -u 1005 -g 1000 test4

執行完以後, 咱們來驗證一下,經過查看/etc/passwd文件。

[root@localhost~]# cat /etc/passwd | grep test4

5,將一個用戶添加到多個組

使用useradd命令加上「-G」選項將用戶添加到其餘組。每一個組名由逗號分隔,中間沒有空格。

在本例中,咱們將用戶「test5」添加到多個組中,如管理員、webadmin和開發人員。

[root@localhost /]# useradd -G webadmin,devloper,dba test5

接下來,使用id命令驗證分配給用戶的多個組

[root@localhost /]# id test5

6,添加一個沒有主目錄的用戶

在某些狀況下,因爲一些安全緣由,咱們不但願爲用戶分配主目錄。在這種狀況下,當用戶登陸到剛剛從新啓動的系統時,其主目錄將是根目錄。當該用戶使用su命令時,其登陸目錄將是之前的用戶主目錄。

若要建立沒有主目錄的用戶目錄,則使用' -M '。例如,下面的命令將建立一個沒有主目錄的用戶' test6'。

[root@localhost ~]# useradd -M test6

接下來咱們使用ls命令來驗證一下用戶test6是否有主目錄。

[root@localhost ~]# ls -l /home/test6
ls: cannot access /home/test6: No such file or directory

7,建立一個具備過時時間的用戶

默認狀況下,當咱們添加用戶使用’ useradd‘命令時,用戶賬戶永遠不會有過時時間。它們的有效日期被設定爲0(意思是從未過時)。

不過,咱們能夠用「e」來設置有效期。選項,它將日期設置爲yyyy-mm-ddd格式。這有助於爲特定時間段建立臨時賬戶。

在這個例子中,咱們建立了一個用戶‘test7‘用戶到期日爲2020年3月21日,格式爲yyyy-mm-ddd。

[root@localhost /]# useradd -e 2020-03-21 test7

其次,在設置賬戶到期日期後,使用「chage」命令爲用戶「test7」驗證賬戶和密碼的年齡。

[root@localhost /]# chage -l test7

8,建立一個具備密碼過時時間的用戶

useradd命令的‘-f‘參數用於定義密碼過時後的天數。當密碼過時時,用戶賬戶當即中止活動。默認狀況下,將密碼過時值設置爲-1意味着永不過時。.

在本例中,咱們將爲用戶設置一個賬戶密碼到期日期,即45天。使用’-e‘和’-f‘選項

[root@localhost /]# useradd -e 2020-03-20 -f 45 test8

9,建立一個自定義註釋的用戶

useradd命令的‘-c‘選項容許您添加自定義註釋,如用戶全名、電話號碼等到/etc/ passwd;)文件中。能夠將註釋添加爲不帶空格的單行

例如,下面的命令將添加一個用戶test9‘並將該用戶的全名test9 devloper插入到評論字段中。

[root@localhost~]# useradd -c "test9 devloper" test9

你能夠在/etc/passwd‘ /etc/passwd‘文件在評論部分。

[root@localhost~]# tail -1 /etc/passwd

10,更改用戶登陸Shell

有時,咱們添加與登陸shell無關的用戶,有時咱們須要爲用戶分配不一樣的shell。咱們能夠爲每一個用戶分配不一樣的登陸shell選項

在本例中,將添加一個用戶沒有登陸shell,即‘/sbin/nologin‘shell.

[root@localhost ~]# useradd -s /sbin/nologin test10

您能夠檢查分配給用戶的shell在‘/etc/passwd‘文件

[root@localhost ~]# tail -1 /etc/passwd

第二部分:useradd命令的5個高級用法

11,添加一個具備特定主目錄、默認Shell和自定義註釋的用戶

下面的命令將建立一個用戶'test11 '與主目錄' /tempfile/user11',默認shell爲/bin/bash,並添加額外的信息用戶。

[root@localhost ~]# useradd -m -d /tempfile/user11 -s /bin/bash -c "dba Owner" -U test11

在上面的命令中,' -m -d '選項建立一個具備指定主目錄的用戶,' -s '選項設置用戶的默認shell,即/bin/bash.「-c」選項添加關於用戶和「-U」參數的額外信息建立/添加與用戶同名的組。

12,添加具備主目錄、自定義Shell、自定義註釋和UID/GID的用戶

該命令與上面的命令很是類似,可是這裏咱們將shell定義爲' /bin/zsh ',並將自定義UID和GID定義爲用戶' test '的用戶id和用戶組id。其中「-u」定義新用戶的UID(即1204),而「-g」定義GID(即1000)。

[root@localhost /]# useradd -m -d /tempfile/user12 -s /bin/zsh -c "devloper owner" -u 1204 -g 1000 test12

13,添加一個具備主目錄、沒有Shell、自定義註釋和用戶ID的用戶

下面的命令與上面的兩個命令很是類似,惟一的區別是這裏,咱們禁用登陸shell到一個名爲' test13 '的用戶自定義用戶ID(即1026)。

這裏' -s '選項添加了默認的shell /bin/bash,但在本例中,咱們將login設置爲' /usr/sbin/nologin '。這意味着用戶' test13 '將沒法登陸到系統。

[root@localhost ~]# useradd -m -d /tempfile/user13 -s /usr/sbin/nologin -c "dba enginer" -u 1026 test13

14,添加具備主目錄、Shell、自定義Skell/註釋和用戶ID的用戶

這個命令中惟一的變化是,咱們使用' -k '選項來設置自定義框架目錄,即/etc/custom.skell,不是默認的 /etc/skel。咱們還使用了' -s '選項來定義不一樣的shell,即/bin/tcsh來定義用戶' test14 '。

[root@localhost ~]# useradd -m -d /tempfile/user14 -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of test14" -u 1212 test14

15,添加一個沒有主目錄、沒有Shell、沒有組和自定義註釋的用戶

下面的命令與上面介紹的其餘命令很是不一樣。這裏咱們使用' -M '選項來建立沒有用戶主目錄的用戶,並使用' -N '參數來告訴系統只建立用戶名(沒有組)。' -r '參數用於建立系統用戶。

[root@localhost ~]# useradd -M -N -r -s /bin/false -c "Disabled test15 Member" test15

好了,今天的分享就到這,小弟不才,望你們有什麼講解不到位或者有問題的,請多指教,歡迎留言區評論。有喜歡的朋友記得收藏或者點贊哦,最後不少知識分享到微信公衆號井壹數碼,但願感興趣的朋友關注一下。多謝各位。

相關文章
相關標籤/搜索