語法:useradd [選項] 用戶名 選項:
-d<登錄目錄> 指定新用戶登錄的起始目錄,默認爲/home
-e<有效期限> 指定用戶的有效期限,格式爲 YYYY-MM-DD
-g<用戶組> 指定用戶所屬的組
-p<密碼> 爲新用戶設置密碼
-r 創建系統用戶
PS:
1.建立一個新用戶 frisen,設定登陸起始目錄爲/home/guest,密碼 123456:
useradd -d /home/guest -p 123456 frisen
2.建立一個指定目錄、有效期和歸屬組的帳戶 frisen2:
useradd -d /home/guest -e 2017-01-01 -g guest frisen2linux
在linux中系統中,它並不認識賬號名稱。它認識的是咱們的賬號ID,賬號ID保存在/etc/passwd文件中。咱們在登陸linux主機時,在輸入完賬號和密碼時,linux會先查找/etc/passwd文件中是否有這個賬號,若是沒有則跳出,若是有的話,他會讀取該賬號的userID和groupID同時該賬號的根目錄和shell也讀了出來。而後在去核對密碼錶,在/etc/shadow中找出咱們剛剛輸入的賬號和userID,覈對咱們輸入密碼是否正確。一切正確咱們能夠登陸到當前用戶shell。那麼,咱們首先了解一下用戶賬號文件。
用戶管理通常須要知道 /etc/passwd /etc/shadow /etc/group
1./etc/passwd咱們使用cat查看一下這個文件
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
dingn:x:501:501::/home/dingn:/bin/bash
咱們首先看第一行root這一行,一共有七項,每一項使用:分開,他們表明的意思以下:
賬號名稱:賬號名稱因爲對應用戶ID,這個是系統默認用戶root超級管理員,在同一個系統賬號名稱是惟一的,長度根據不一樣的linux系統而定,通常是8位。
密碼: 因爲系統中還有一個/etc/shadow文件用於存放加密後的口令,因此在這裏這一項是「x」來表示,若是用戶沒有設置口令,則該項爲空。
用戶ID(UID):這個是系統內部用於來識別不一樣的用戶的,不一樣的用戶識別碼不一樣,其中用戶ID有如下幾種:
0表明系統管理員,若是你想創建一個系統管理員的話,能夠創建一個普通賬戶,而後將該帳戶的用戶ID改成0便可。
1-500系統預留的ID,500以上是普通用戶使用。
組ID(GID):其實這個和用戶ID差很少,用來規範羣組,他與/etc/group有關。
描述信息:這個字段幾乎沒有什麼做用,只是用來解釋這個賬號的意義。
用戶根目錄:就是用戶登陸系統的起始目錄,用戶登陸系統後將首先進入該目錄。root用戶默認的是/root,普通用戶的是/home/用戶名。
用戶登陸shell:就是用戶登陸系統時使用的shell,關於shell咱們會在之後專門的研究一下。shell
2./etc/shadow
在早期的unix操做系統中,用戶的賬號信息和口令信息都保存在passwd文件中,儘管系統已經對口令進行了加密,而且以密文的方式保存在passwd文件中,可是因爲passwd文件對於系統中的全部用戶是可讀的,口令比較容易破解,存在較大的安全隱患。如今使用「shadow」文件保存密文的用戶口令,使用passwd文件保存用戶賬號其它信息。「shadow」文件只有管理員用戶才能夠讀取其中的內容。因爲這個文件可能被破解,因此必定不要將該文件內容泄露給他人,保證系統安全。
一樣,咱們仍是分析第一行,一共有九項,分別說明一下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
dingn:x:501:501::/home/dingn:/bin/bash
賬戶名稱:和passwd對應,和passwd的意思相同。
密碼:這纔是真正的密碼,而且已經加密過了,只能看到一些特殊符號。須要注意的是這些密碼很難破解,可是不等於不能。還有密碼欄的第一個字符爲「*」表示這個用戶不用來登陸,若是那個用戶不想讓他登陸了,能夠在他前面加個星。
上次改動密碼的日期:這段記錄了改動密碼的最後日期,爲何是13798呢?這是由於linux計算日期的方法是以1970年1月1日做爲1,1971年1月1日就是366,依次類推到我修改密碼的日期表示爲13798了。
密碼不可被改動的天數:因爲懼怕密碼被人盜取而危害到整個系統的安全,因此安排了這個字段,你必須在這個時間內從新修改密碼,不然這個賬號將暫時失效。上面的99999,表示密碼不須要從新輸入,最好設定一段時間修改密碼。確保系統安全。
密碼變動期期限快到前的警告期:當賬號的密碼失效期限快到時,系統依據這個字段的設定發出警告,提醒用戶「再過n天您的密碼將過時,請儘快從新設定密碼。默認的是七天。
賬號失效期:若是用戶過了警告期沒有從新輸入密碼,使得密碼失效,而該用戶在這個字段限定的時間內又沒有向管理員反映,讓賬號從新啓用,那麼這個賬號將暫時失效。
賬號取消日期:這個日期跟第三個字段同樣,都是使用1970年以來的日期設定方法。這個字段表示:這個賬號在此字段規定的日期以後將沒法再使用。這個字段一般用於收費服務系統中,能夠規定一個日期讓該賬號不能再使用。
保留:最後一個字段是保留的,看之後有沒有新功能加入。安全
3. /etc/group查看一下這個文件
咱們仍是分析第一行,一共有四項,依次爲:
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
dingn:x:501:
羣組名稱:就是羣組的名稱了。
羣組密碼:一般不需設定,由於咱們不多使用羣組登陸。不過這個密碼也被記錄在/etc/gshadow中了。
羣組ID:也就是組ID了。
支持賬號的名稱:這個羣組的全部賬號。若是你想讓用戶qiuri也屬於root這個羣組,就在第一行最後加上「,qiuri」注意添加的時候沒有空格。bash
4. useradd添加用戶
若是沒有特殊的要求,一般咱們使用useradd 用戶名稱直接建立用戶賬號。例如咱們建立qiuri賬戶:
因爲通常新建立的賬號都會在剛纔咱們說的三個文件的最後一行添加一行內容,咱們驗證一下:
咱們使用這條命令是經過/etc/login.defs和/etc/default/useradd這兩個默認賬號設定文件來實現建立用戶的。
這個文件中咱們有必要了解一下,SKEL這個選項,用戶的根目錄內容是從/etc/skel這個目錄下複製過去的。在手動添加用戶的時候有用。查看一下這個目錄下的內容:
這條命令還有好多的參數舉例幾個,供你們參考一下:
useradd [-u uid][-g group][-d home][-s shell]
-u:直接給出userID
-g:直接給出GID
-d:直接將根目錄創建在已存在目錄
-s:定義shell
5.passwd設置用戶密碼
默認的狀況下,在添加完用戶後並無設置用戶的密碼,所以創建的用戶賬號即便存在也不能登錄系統。須要使用passwd命令對用戶賬號設置密碼才能夠用於登錄系統。這條命令分爲管理員給用戶修改密碼和用戶本身登陸系統本身修改密碼。
管理員root給用戶修改密碼,例如:建立用戶qiuri,而後設置密碼
管理員給用戶設置密碼以命令passwd [用戶名]來設置密碼,在輸入密碼的過程當中爲了不輸入錯誤,將連續輸入兩次。若是兩次輸入的密碼相同,表示輸入的密碼正確,同時將密碼以加密的方式保存到了shadow文件中。設置完之後咱們可使用用戶qiuri登陸。qiuri用戶本身修改一下密碼。ui
6. 增長一個新用戶
如下是操做一些具體的語法,能夠經過man useradd 查看幫助命令
在Linux系統中,只有root用戶纔可以建立一個新用戶,以下的命令將新建一個登陸名user1的用戶。
# useradd user1
可是,這個用戶還不可以登陸,由於還沒給它設置初始密碼,而沒有密碼的用戶是不可以登陸系統的。在默認狀況下,將會在/home目錄下新建一個與用戶名相同的用戶主目錄。若是須要另外指定用戶主目錄的話,那麼可使用以下命令:
# useradd -d /home/xf user1
同時,該用戶登陸時將得到一個Shell程序:/bin/bash,而假如你不想讓這個用戶登陸,也就能夠指定該用戶的Shell程序爲:/bin/false,這樣該用戶即便登陸,也不可以執行Linux下的命令:
# useradd -s /bin/false user1
在Linux中,新增一個用戶的同時會建立一個新組,這個組與該用戶同名,而這個用戶就是該組的成員。若是你想讓新的用戶歸屬於一個已經存在的組,則可使用以下命令:
# useradd -g user user1
這樣該用戶就屬於user組的一員了。而若是隻是想讓其再屬於一個組,那麼應該使用:
# useradd -G user user1
完成了這一操做後,你還應該使用passwd命令爲其設置一個初始密碼。
2. 刪除一個用戶
刪除用戶,只需使用一個簡單的命令「userdel 用戶名」便可。不過最好將它留在系統上的文件也刪除掉,你可使用「userdel -r 用戶名」來實現這一目的。
3. 修改用戶屬性
在前面咱們看到了在新建一個用戶的時候如何指定它的用戶主目錄,如何指定它的Shell,如何設置它所屬的組…等等。在Linux中提供了一個命令來實現: usermod -g組名 -G 組名 -d 用戶主目錄 -s 用戶Shell
還有一種直接的方法,那就是修改/etc/passwd文件,在這個文件中每一個用戶佔用一行,它的內容爲:
用戶名:密碼:用戶ID:組ID:用戶全名:用戶主目錄:用戶Shell
不過值得注意的是,密碼這一項一般是用一個*號代替的,你是看不到的。 加密
用戶組的管理
groupadd 選項 用戶組
-g GID 指定新用戶組的組標識號(GID)。
-o 通常與-g選項同時使用,表示新用戶組的GID能夠與系統已有用戶組的GID相同。
1. 增長一個組
還記得Linux的文件能夠爲同組的人、非同組的人設置不一樣的訪問權限嗎?咱們能夠根據本身的須要建立用戶組:
groupadd 組名
2. 刪除一個組
一樣的,咱們有時會須要刪除一個組,它的命令就是groupdel 組名。
3. 修改組成員
若是咱們須要將一個用戶加入一個組,只需編輯/etc/group文件,將用戶名寫到組名的後面。例如將newuser用戶加入到softdevelop組,只需找到softdevelop這一行:
softdevelop:x:506:user1,user2
而後在後面加上newuser,造成:
softdevelop:x:506:user1,user2,newuser spa