歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux的用戶管理工具

一.添加、切換、刪除用戶組命令groupadd/newgrp/groupdel

1.groupadd命令

用來新建一個用戶組。語法格式為:

groupadd [-g -o] gid  group

各個選項具體含義如下:

-g:指定新建用戶組的GID號,該GID號必須唯一,不能和其它用戶組的GID號重復。

-o:一般與-g選項同時使用,表示新用戶組的GID可以與系統已有用戶組的GID相同。

例如:

創建一個linuxfans的用戶組和一個fanslinux用戶組,GID分別為1020和1030

[root@localhost ~]# groupadd -g 1020 linuxfans

[root@localhost ~]# groupadd -g 1030 fanslinux

[root@localhost ~]# more /etc/group|grep  linuxfans

linuxfans:x:1020:

[root@localhost ~]# more /etc/group|grep  fanslinux

fanslinux:x:1030:

2.newgrp命令

如果一個用戶同時屬於多個用戶組,那麼用戶可以在用戶組之間切換,以便具有其他用戶組的權限,newgrp主要用於在多個用戶組之間進行切換,語法格式為:

newgrp <用戶組>

例子:下面通過實例講述newgrp的用法:

首先建立了3個用戶組group1、group2和group3.

[root@localhost ~]# groupadd group1

[root@localhost ~]# groupadd group2

[root@localhost ~]# groupadd group3

下面創建了一個用戶user1,同時指定user1的主用戶組為group1,附加用戶組為group2和group3

[root@localhost ~]# useradd -g group1 -G group2,group3 user1

[root@localhost ~]# more /etc/group|grep user1

group2:x:501:user1

group3:x:502:user1

下面是對用戶user1設置密碼

[root@localhost ~]# passwd user1

Changing password for user user1.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

下面是切換到user1用戶下,通過newgrp切換用戶組進行的一系列操作,從中可以看出newgrp的作用。

[root@localhost ~]# su - user1

[user1@localhost ~]$ whoami

user1

[user1@localhost ~]$ mkdir user1_doc

[user1@localhost ~]$ newgrp group2

[user1@localhost ~]$ mkdir user2_doc

[user1@localhost ~]$ newgrp group3

[user1@localhost ~]$ mkdir user3_doc

[user1@localhost ~]$ ll

total 12

drwxr-xr-x  2 user1 group1 4096 Oct 24 01:18 user1_doc

drwxr-xr-x  2 user1 group2 4096 Oct 24 01:18 user2_doc

drwxr-xr-x  2 user1 group3 4096 Oct 24 01:19 user3_doc

[user1@localhost ~]$

3.groupdel命令

表示刪除用戶組,語法格式為:

groupdel [群組名稱]

當需要從系統上刪除用戶組時,可用groupdel指令來完成這項工作。如果該用戶組中仍包括某些用戶,則必須先刪除這些用戶後,然後才能刪除用戶組。

例如:刪除linuxfans這個用戶組

[root@localhost ~]# groupdel  linuxfans

二. 添加、修改和刪除用戶命令useradd/usermod/userdel

1.useradd建立用戶的過程

useradd不加任何參數創建用戶時,系統首先讀取添加用戶配置文件/etc/login.defs和/etc/default/useradd,根據這兩個配置文件中定義的規則添加用戶,然後會向/etc/passwd和/etc/group文件添加用戶和用戶組記錄,同時/etc/passwd和/etc/group對應的加密文件也會自動生成記錄,接著系統會自動在/etc/default/useradd文件設定的目錄下建立用戶主目錄,最後復制/etc/skel目錄中的所有文件到新用戶的主目錄中,這樣一個新的用戶就建立完成了。

2.useradd的使用語法

useradd語法的一般格式為:

useradd  [-u uid [-o]] [-g group] [-G group,...]

               [-d home] [-s shell] [-c comment]

               [-f inactive] [-e expire ] name

各個選項具體含義如下:

-u uid:即用戶標識號,此標識號必須唯一。

-g group:指定新建用戶登錄時所屬的默認組,或者叫主組。此群組必須已經存在。

-G group:指定新建用戶的附加組,此群組必須已經存在。附加組是相對與主組而言的,當一個用戶同時是多個組中的成員時,登錄時的默認組成為主組,而其它組稱為附加組。

-d home:指定新建用戶的默認主目錄,如果不指定,系統會在/etc/default/useradd文件指定的目錄下創建用戶主目錄。

-s shell:指定新建用戶使用的默認shell,如果不指定,系統以/etc/default/useradd文件中定義的shell作為新建用戶的默認shell。

-c comment:對新建用戶的說明信息。

-f inactive:指定帳號過期多長時間後永久停用。當值為0時帳號則立刻被停權。而當值為-1時則關閉此功能,預設值為-1

-e expire:指定用戶的帳號過期時間,日期的指定格式為MM/DD/YY。

name:指定需要創建的用戶名。

3.usermod的使用語法

usermod用來修改用戶的賬戶屬性信息,使用語法如下:

usermod  [-u uid [-o]] [-g group] [-G group,...]

               [-d 主目錄 [-m]] [-s shell] [-c 注釋] [-l 新名稱]

               [-f 失效日期] [-e 過期日期][-L|-U] Name

各個選項具體含義如下:

-u uid:指定用戶新的UID值,此值必須為唯一的ID值,除非用-o選項。

-g group:修改用戶所屬的組名為新的用戶組名,此用戶組名必須已經存在。

-G group:修改用戶所屬的附加組。

-d 主目錄:修改用戶登錄時的主目錄。

-s shell:修改用戶登錄系統後默認使用的shell

-c 注釋:修改用戶的注釋信息。

-l 新名稱:修改用戶帳號為新的名稱。

-f 失效日:帳號過期多少天後永久禁用。

-e 過期日:增加或修改用戶賬戶的過期時間。

-L:鎖定用戶密碼,使密碼無效。

-U:解除密碼鎖定。

Name:要修改屬性的系統用戶。

4.userdel的使用語法

Userdel用來刪除一個用戶,若指定“-r”參數不但刪除用戶,同時刪除用戶的主目錄以及目錄下的所有文件。語法格式為:

userdel [-r][用戶帳號]

5.應用舉例

1)添加一個用戶mylinux,指定所屬的主用戶組為fanslinux,附加用戶組為linuxfans,同時指定用戶的默認主目錄為/opt/mylinux

[root@localhost ~]# useradd -g fanslinux -G linuxfans -d /opt/mylinux mylinux

[root@localhost ~]# more /etc/passwd|grep mylinux

mylinux:x:523:1030::/opt/mylinux:/bin/bash

[root@localhost ~]# more /etc/group|grep mylinux

linuxfans:x:1020:mylinux

2)添加一個用戶test_user,指定UID為686,默認的shell為/bin/csh,讓其歸屬為用戶組linuxfans和fanslinux,同時添加對此用戶的描述,

[root@localhost ~]# useradd  -u 686 -s /bin/csh  -G linuxfans,fanslinux  -c "This is test user" test_user

[root@localhost ~]# more /etc/passwd|grep test_user

test_user:x:686:686:This is test user:/home/test_user:/bin/csh

[root@localhost ~]# more /etc/group|grep test_user  

fanslinux:x:1030:test_user

linuxfans:x:1020:mylinux,test_user

test_user:x:686:

3)修改用戶test_user的主用戶組為新建的組test_group1,同時修改test_user的附加組為linuxfans和root,最後修改test_user的默認登錄shell為/bin/bash

[root@localhost ~]# groupadd test_group1  #添加一個新的用戶組

[root@localhost ~]# more /etc/group|grep test_group1 #顯示新增用戶組的信息

test_group1:x:1031:

[root@localhost ~]# usermod -g test_group1 -G linuxfans,root -s /bin/bash test_user

[root@localhost ~]# more /etc/passwd|grep test_user   #從輸出可知,用戶的屬性已經更改

test_user:x:686:1031:This is test user:/home/test_user:/bin/bash

[root@localhost ~]# more /etc/group|grep test_user   #從輸出可知,用戶組的屬性也同步更改  

root:x:0:root,test_user

linuxfans:x:1020:mylinux,test_user

test_user:x:686:

4)如何鎖定、解除用戶密碼

下面首先對test_user和mylinux用戶設置密碼

[root@localhost ~]# passwd  test_user

Changing password for user test_user.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@localhost ~]# passwd  mylinux

Changing password for user mylinux.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

下面的操作是通過su命令切換到mylinux用戶下,然後在mylinux下再次切換到test_user用戶下,這裡的切換用戶是為了說明一個問題:從超級用戶root切換到普通用戶下,是不需要輸入普通用戶密碼的,系統也不會去驗證密碼。但普通用戶之間切換是需要密碼驗證的。

[root@localhost ~]# su – mylinux  #通過su命令切換到mylinux用戶下

[mylinux@localhost ~]$ whoami      #用whoami命令查看當前用戶

mylinux

[mylinux@localhost ~]$ su - test_user  #這裡是從mylinux用戶下切換到test_user用戶下,需要輸入密碼

Password:

[mylinux@localhost ~]$ whoami          #成功切換到test_user用戶下

test_user

接下來,在root用戶下執行usermod鎖定test_user的密碼,測試test_user是否還能登錄,從下面可以看出,密碼鎖定後,出現登錄失敗。

[root@localhost ~]# usermod -L test_user  #鎖定test_user用戶的密碼

[root@localhost ~]# su - mylinux  

[mylinux@localhost ~]$ whoami

mylinux

[mylinux@localhost ~]$ su - test_user  #這裡輸入的密碼是正確的,但是提示密碼錯誤,因為密碼被鎖定了

Password:

su: incorrect password

[mylinux@localhost ~]$ whoami

mylinux

最後對test_user解除密碼鎖定,登錄正常。

[root@localhost ~]# usermod -U test_user  #解除密碼鎖定

[root@localhost ~]# su – mylinux

[mylinux@localhost ~]$ whoami

mylinux

[mylinux@localhost ~]$ su - test_user

Password:

[test_user@localhost ~]$ whoami  #密碼鎖定解除後,test_user用戶可以登錄系統

test_user

本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/531793

Copyright © Linux教程網 All Rights Reserved