Linux 中useradd命令的使用


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

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

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

  1. 為新創建的用戶帳戶編輯/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow文件。
  2. 為新用戶創建用戶主目錄(home目錄)。
  3. 設置用戶主目錄(home目錄)的權限和所有權.

創建用戶命令的基本語法是:

useradd [options] username

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

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

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

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

在Linux系統中新增一個用戶,可以使用useradd或者adduser命令后面加上一個用戶名來進行新增。這個用戶名是用於系統登錄的,因此這個用戶名必須是唯一的,如果系統中已經有用戶了,就不能進行創建了。

例如,增加一個新的用戶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,創建一個具有不同用戶ID的用戶

在Linux中,每個用戶都有自己的UID(惟一標識號)。默認情況下,每當我們在Linux中創建一個新用戶帳戶時,它都會分配用戶500、501、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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM