Linux用戶和組管理

使用對象:Linux初學者

 

Linux系統中用戶和組管理是很重要的一部分內容。許多初學者在學習或剛接觸到用戶管理的時候會覺得很難理解,命令多、選項多、配置文件也多,用命令可以修改,用配置文件也可以修改,三兩下就被繞進去了。其實完全沒必要暈,只要了解了用戶管理的方式,就會很容易理解命令選項與配置文件之間的關系。下面我們就來了解下用戶管理命令與配置文件。

 

目錄

一、新建用戶1

1.1useradd命令1

1.2 passwd文件1

1.3 shadow文件2

1.4、配置文件/etc/login.defs. 2

1.5、配置文件/etc/defaults/useradd. 4

1.6useradd命令4

二、用戶信息修改5

2.1 usermod命令5

2.2 passwd命令5

三、用戶刪除6

四、新建組6

4.1 /etc/group文件6

4.2/etc/gshadow文件6

4.3 新建用戶命令groupadd. 6

五、修改組7

六、刪除用戶組7

七、其他命令7

 

 

 

一、新建用戶

1.1useradd命令

新建用戶其實就是增加用戶,我們使用useradd命令(user是用戶的意思,add是增加的意思,在一起就是useradd)。命令格式為:

  useradd  USERNAME

輸入該命令,執行之后,新的用戶就被添加到系統中了。

Linux用戶和組管理

1.2 passwd文件

Linux系統中用戶信息是保存在/etc/passwd文件里面的,用戶密碼保存在/etc/shadow文件中。所以,剛才的命令執行完之后,會在這兩個文件的文件末尾增加關于testuser1的信息,每個文件增加一條信息。

首先,我們來看/etc/passwd文件。使用cat命令打開該文件,在文件的最下方可以看到下圖

Linux用戶和組管理

從圖中我們可以看到,testuser1的信息被:(冒號)分成7個部分,我們來簡要介紹一下這7個部分的含義:

第一個字段testuser1:表示用戶名稱

第二個字段x :表示用戶密碼。不過Centos67中密碼都被保存在/etc/shadow文件中了,所以這里就不再保存密碼了,但是為了和之前舊版本的linux系統兼容,這個字段又不能取消或為空,所以就使用x來代替。

第三個字段1018 :表示系統給用戶分配的UIDuser  id)號碼

第四個字段1018 :表示系統給用戶分配的GIDgroup  id)號碼

第五個字段    :表示用戶的描述信息,因為我們創建用戶的時候沒有添加這個信息,所以這里顯示為空白

第六個字段/home/testuser1 :表示用戶的家目錄位置是/home/testuser1

第七個字段/bin/bash :表示該用戶使用的shellbash

1.3 shadow文件

我們再來看/etc/shadow文件中關于testuser1的信息

Linux用戶和組管理

同樣,可以看到testuser1的信息被:(冒號)分割成9個部分,我們來簡單介紹下這9個部分的含義:

第一個字段testuser1 :表示用戶的名稱

第二個字段!! :表示用戶的密碼。因為我們剛才沒有給testuser1用戶設置密碼,所以這里用!!代表未給用戶設置密碼。我們給用戶設置的密碼都是在這里以密文的方式在這里顯示的。

第三個字段17097 : 表示用戶創建的時間。從197011日到剛才創建用戶的日期之間的天數。

第四個字段0 :表示用戶密碼的最小使用時間。0表示用戶隨時可以修改密碼。其他的數字表示從用戶修改密碼之日起多少天內不能修改密碼。

第五個字段99999 :表示用戶的密碼最長使用時間

第六個字段7 :表示在密碼到期前7天對用戶發出警告,提示用戶密碼快到期

第七個字段  :表示用戶密碼到期后的寬限時間。也就是說用戶密碼到期之后幾天內還可以使用。

第八個字段  :表示用戶賬戶的過期時間

第九個字段  :保留字段。

1.4、配置文件/etc/login.defs

我們此前使用的命令是useradd  testuser1,后面并沒有跟任何的其他信息,那么為什么系統會自動給用戶分配UID GID呢,為什么用戶的家目錄會創建在/home/下,而且目錄名跟用戶名一樣呢,還有為什么用戶的shell/bin/bash而不是其他的呢?這就要跟我們的配置文件有關了。

Linux系統管理用戶是通過該用戶的UID來實現的,而不是用戶名。所以每個用戶都會擁有自己的用戶IDUID。默認情況下,超級管理員root UID0 ,系統用戶的UID以及普通用戶的UID在不同的Linux版本下也各不相同。

CentOS 6

CentOS 7

系統用戶UID范圍

1–499

201–999

普通用戶UID范圍

500–60000

1000–60000

這個范圍的定義是由/etc/login.defs文件來控制的。以CentOS 7為例,打開該文件,在文件中可以看到以下信息

Linux用戶和組管理

這里就定義了系統用戶和普通用戶的UID范圍。我們剛才創建的testuser1用戶是普通用戶,所以他的ID范圍在1000—60000之間。

這個文件除了定義用戶UID范圍之外,還定義了其他的參數,我們來看一下:

1)  給用戶創建郵件的目錄

Linux用戶和組管理

2)  用戶密碼的相關選項

Linux用戶和組管理

這里我們看到,默認定義了4個選項:

PASS_MAX_DAYS       99999    密碼最長使用期限

PASS_MIN_DAYS       0                 密碼最短使用期限

PASS_MIN_LEN          5                           密碼最短長度

PASS_WARN_AGE     7                 密碼到期前的警告期限

3)  家目錄是否創建

Linux用戶和組管理

4)  用戶權限設置

Linux用戶和組管理

5)  刪除用戶的時候如果用戶組中不存在其他用戶的話,是否刪除組

Linux用戶和組管理

6)  用戶密碼加密方式

Linux用戶和組管理

      1.5、配置文件/etc/defaults/useradd

                   Linux用戶和組管理

                   1GROUP 表示如果用戶創建的時候不指定組的話,默認加入的系統用戶組ID

                   2HOME  表示用戶創建家目錄的路徑

                   3INACTIVE表示用戶賬戶密碼過期之后是否馬上禁用該賬號。-1表示不馬上禁用

                   4EXPIRE 表示用戶賬號的過期時間  為空表示永不過期

                   5SHELL 表示創建用戶的時候默認給新用戶使用的shell

                   6SKEL  表示創建用戶家目錄的模板目錄,給用戶創建哪些文件

                   7CREATE_MAIL_SPOOL 表示是否給新用戶創建郵件

        

我們可以通過修改以上的兩個配置文件中相應的參數來控制創建新用戶的相關信息。

1.6、useradd命令

除了通過修改配置文件,我們也可以在執行useradd命令的時候,給命令添加選項和參數來控制新建用戶的信息。

使用方式如下:

useradd  [options]  用戶名

選項有很多,我們只列舉幾種常用的:

-u UID 手動給用戶指定UID

-g GID 手動給用戶指定GID

-G groupname 指定用戶屬于哪個附加組

-c COMMENT :指定用戶的注釋信息

-d DIR :指定用戶的家目錄

-s SHELL:指定用戶使用的SHELL

-r :創建系統用戶

-N : 不創建用戶組,并將用戶的主組設置為USER

         我們除了通過查看配置文件來看創建用戶的默認設置之外,還可以通過useradd  -D命令來查看和修改創建用戶的默認設置。

                  useradd -D [options]

                  useradd -D 后面不加選項和參數表示顯示新增用戶的默認配置

                                      -b DIR :表示修改默認選項中的家目錄位置

                                      -e 時間:修改默認選項中用戶賬戶的失效時間

                                      -f 數字 :修改默認選項中用戶密碼到期前的警告天數

                                      -g GID :修改默認選項中用戶賬號自動加入的GID

                                      -s SHELL : 修改默認選項中用戶使用的shell類型

 

二、用戶信息修改

2.1 usermod命令

創建完用戶之后,如果需要對用戶的信息進行修改,要是用usermod命令。

具體使用格式:

         usermod [options] 用戶名

         常用選項如下:

         -u, –uid UID  修改用戶UID為指定的UID

         -g, –gid GROUP :修改用戶所屬基本組ID

         -G, –groups GROUP1[,GROUP2,…[,GROUPN]]] :修改用戶的附加組,原來的附加組會被覆蓋

         -a, –append -G一同使用,為用戶增加新的附加組

         -c, –comment COMMENT 修改用戶注釋信息

         -d, –home-dir HOME_DIR 修改用戶家目錄:用戶原有的文件不會轉移至新位置。如果需要將文件一同移動,需要和-m一同使用

         -m, –move-home 只能與-d一同使用,用于移動原家目錄中的文件

         -l, –login NEW_LOGIN:修改用戶名

         -s, –shell SHELL : 修改用戶登錄后默認使用的shell

         -L, –lock 鎖定用戶密碼

         -U, –unlock 解鎖用戶密碼

      2.2 passwd命令

         如果需要變更用戶的密碼,或者對密碼信息進行修改,要使用passwd命令。具體使用格式為:

         passwd  [OPTIONS]  用戶名

                   passwd  用戶名:不加選項表示修改指定用戶密碼

                   -l , -u :鎖定和解鎖用戶,鎖定之后只是不能登錄,切換可以

                   -d, –delete :刪除和清除用戶密碼

                   -e, –expire DATE:過期期限,日期。不加時間默認強制讓用戶下次登錄時輸入口令

                   -i DAYS:非活動期限

                   -n DAYS:最短使用時間

                   -x DAYS:最長使用時間

                   -w DAYS: 警告時間        

三、用戶刪除

如果不需要某個用戶,刪除用戶要使用userdel命令。

具體使用格式:

userdel [options] 用戶名

-r 表示連同用戶的家目錄一起刪除

四、新建組

我們在新建用戶的時候,系統會默認創建一個跟用戶同名的組,并把這個組設置為該用戶的主組。用戶組的相關信息存放在/etc/group以及/etc/gshadow文件中。

4.1 /etc/group文件

Linux用戶和組管理

該組信息被:(冒號)分為四個部分:

第一部分testuser1 :表示組名稱

第二部分x :表示組密碼。組密碼存放在/etc/gshadow文件中,跟用戶名密碼存放在/etc/shadow文件類似。

第三部分1018 : 表示該組的GID

第四部分 :表示組內暫時沒有其他的用戶

 

4.2/etc/gshadow文件

Linux用戶和組管理

該文件被冒號分為四個部分:

第一部分testuser1 :表示組名稱

第二部分!! :表示組密碼。!!表示該組暫未設置密碼。

第三部分  :表示該組的管理員。為空表示沒有管理員。

第四部分 :表示該組的其他成員。為空表示無其他成員。

4.3 新建用戶命令groupadd

testuser1用戶,在如果不通過新建用戶,怎么增加組呢?跟新建用戶一樣,新建組也有一個單獨的命令groupadd。使用格式為:

groupadd [options] group

         -g GID:手動指定GID

         -r:創建系統組

五、修改組

修改組屬性信息要使用groupmod命令。

其格式為:

         groupmod [options] GROUP

         -g GID 組名:表示修改指定組的gid

         -n  :表示修改組名稱

         -p :表示給組設置密碼

六、刪除用戶組

刪除用戶組使用groupdel命令。使用格式為:

groupdel [options] GROUP

七、其他命令

除了以上的用戶、組管理命令之外,Linux還提供其他的命令來對用戶或者組進行修改。

例如:groupmems、chage、chsh、chfn、finger等。

我們只簡單的羅列一下,不再進行詳細描述命令的使用。如果想獲得更加詳細的命令使用信息,大家可以使用man幫助進行查看。

原創文章,作者:jacklei,如若轉載,請注明出處:http://www.www58058.com/53735

(0)
jackleijacklei
上一篇 2016-10-23
下一篇 2016-10-23

相關推薦

  • linux發展史

    linux發展史簡介: 20世紀60年代,MIT開發分時操作系統(Compatible TIme-Sharing System),支持30臺終端訪問主機;     ~主機負責運算,而終端負責輸入輸出; 1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發Multics系統,為了同時支持3…

    Linux干貨 2016-10-14
  • N26-第四周作業

    一、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 思路:先用遞歸操作復制文件,再用chmod改變文件及其下目錄權限。 方法一: [root@promote ~]# cp -r /etc/skel /home/tuser1 #復制文件并改名 [root@promote ~]#…

    2017-05-07
  • MapReduce數據流

    Hadoop的核心組件在一起工作時如下圖所示: 圖4.4高層MapReduce工作流水線   MapReduce的輸入一般來自HDFS中的文件,這些文件分布存儲在集群內的節點上。運行一個MapReduce程序會在集群的許多節點甚至所有節點上運行mapping任務,每一個mapping任務都是平等的:mappers沒有特定“標識物”與其關聯。因此,任意的map…

    Linux干貨 2015-05-13
  • iptables基本知識

    1)Linux下的防火墻概念 a、一般談到Linux下的防火墻,我們都會首先想到iptables,其實更確切的叫法應該是Netfilter/iptables,iptables和Netfilter其實是存在差別的。 b、盡管它們經常被用來相互替換使用,Netfilter是用來實現Linux內核中防火墻的Linux內核空間程序代碼段,它要么被直接編譯進內核,要么…

    Linux干貨 2016-07-16
  • 馬哥linux第一周學習筆記

    計算機組成 Linux基本命令

    Linux干貨 2017-12-17
  • N25第五周 grep 和find 命令使用示例

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;    [root@localhost grub]# grep "^[[:space:]]\+.*" grub.conf    root (hd0,0)…

    Linux干貨 2016-12-25
欧美性久久久久