1. 程式人生 > >Linux 中useradd命令的使用

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,建立一個具有不同主目錄的使用者

在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

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