M20 – 1- 第三周博客(2):Linux用戶、組

一、Linux用戶組詳解

Linux系統中的每個用戶都有一個用戶組,系統能對一個用戶組中的所有用戶進行集中管理。不同Linux系統對用戶組的規定有所不同,如Linux下的用戶屬于和他同名的用戶組,這個用戶組在創建用戶時同時創建。用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就對/etc/group文件的更新。

用戶組(group)就是具有相同特征的用戶(user)的集合體;比如有時我們要讓多個用戶具有相同的權限,比如查看、修改某一文件或執行某個命令,這時我們需要用戶組,我們把用戶都定義到同一用戶組,我們通過修改文件或目錄的權限,讓用戶組具有一定的操作權限,這樣用戶組下的用戶對該文件或目錄都具有相同的權限,這是我們通過定義組和修改文件的權限來實現的;

1、用戶組的添加、刪除、管理

很多人都問,為什么Linux系統中已經存在用戶了,為什么還需要組呢,其實這個不難理解,也是跟我們的生活息息相關的,假設1000個軍人如果沒有編組沒有編號,是否會亂成一團呢,如果把把這一千人編組和編號,是否覺得就好方便管理了呢,而Linux系統用戶組也是以這種方式進行管理和分配資源的。

Linux系統中,當創建一個普通用戶時,同時也會創建一個以普通用戶名稱命名的用戶組,是否真的是這樣呢,接下來是操作演示:

[root@centos7 ~]# id tomcat
id: tomcat: no such user
[root@centos7 ~]# useradd tomcat
[root@centos7 ~]# id tomcat
uid=1001(tomcat) gid=1001(tomcat) groups=1001(tomcat)
[root@centos7 ~]#

從上面的操作可以看出,創建普通用戶tomcat時,同時也創建出了tomcat用戶組,而這個組是該用戶的基本組,而且是僅有一個基本組,但是可以有多個附加組,如果僅僅只是創建組,而不創建用戶只需要用groupadd命令創建組即可:

groupadd 命令

簡介:
groupadd - create a new group
格式:
groupadd [options] group
選項:
-g GID:指明GID號;[GID_MIN, GID_MAX]
-r:創建系統組,(CentOS 6: ID<500,CentOS 7: ID<1000)
實例1:
[root@centos7 ~]# man groupadd
[root@centos7 ~]# groupadd -g 1020 nginx
[root@centos7 ~]# getent group nginx
nginx:x:1020:
實例2:
[root@centos7 ~]# groupadd -r zabbix   #創建系統用戶
[root@centos7 ~]# getent group zabbix  
zabbix:x:986:                          #centos7系統中,系統用戶小于1000

普通用戶組是用于供人類使用,而系統用戶組是供系統中的程序運行的,接下來講的是附加組,為什么有了用戶組還多了個附加組呢,附加組的作用是干什么的呢,假設一位王老師教兩個班級數學,王老師給這兩個班級批改作業,必須對這個兩個班級有權限才能修改,但是用戶只能有一個基本組,那不是王老師只能更改一個班級的作業么,但是由于linux系統的存在附加組的性質,因此將兩個班級的基本組作為王老師的附加組,是不是王老師就有了更改兩個班級的作業權限呢,因此附加組的作用在于用戶可以使用附加組的權限,如何添加用戶的附加組呢,下面講的是gpasswd命令:

gpasswd 命令

簡介:
gpasswd - administer /etc/group and /etc/gshadow
格式:
gpasswd [option] group
選項:
-a user:將user添加至指定組中
-d user:從指定組中移除用戶user
-A user1,user2,...:設置有管理權限的用戶列表
實例1:
[root@centos7 ~]# id mageedu
uid=1000(mageedu) gid=1000(mageedu) groups=1000(mageedu),10(wheel)
[root@centos7 ~]# getent group tom
tom:x:1021:
[root@centos7 ~]# gpasswd -a mageedu tom   #設置mageeedu用戶添加附加組tom
Adding user mageedu to group tom
[root@centos7 ~]# id  mageedu
uid=1000(mageedu) gid=1000(mageedu) groups=1000(mageedu),10(wheel),1021(tom)
實例2:
[root@centos7 ~]# id  mageedu
uid=1000(mageedu) gid=1000(mageedu) groups=1000(mageedu),10(wheel),1021(tom)
[root@centos7 ~]# gpasswd -d mageedu tom
Removing user mageedu from group tom  #將mageedu用戶從tom組中移除
[root@centos7 ~]# id mageedu
uid=1000(mageedu) gid=1000(mageedu) groups=1000(mageedu),10(wheel)

在有些場景中,有些用戶添加組會寫錯名稱,那如何更改組的名稱呢,下面用的是groupmod命令詳解:

groupmod 命令

簡介:
groupmod - modify a group definition on the system
格式:
groupmod [options] GROUP
選項:
-n group_name:新名字
-g GID:新的GID
實例1:
[root@centos7 ~]# getent group nginx
nginx:x:1020:
[root@centos7 ~]# groupmod -n tom nginx  #更改普通組nginx名稱為tom
[root@centos7 ~]# getent group tom
tom:x:1020:
實例2:
[root@centos7 ~]# groupmod -g 1021 tom   #更改普通組的tom的GID為1021
[root@centos7 ~]# getent group tom
tom:x:1021:

如果王老師不想加入到兩個班級的組中,又想更改兩個班級的作業,改怎么做呢,這時候只需要用newgrp命令,但是必須知道兩個班級的組密碼:

newgrp 命令

簡介:
newgrp - log in to a new group
格式:
newgrp [-] [group]
實例1:
[wang@centos7 ~]$ newgrp user1  #切換到一班的組,即可對一班的資源進行操作
Password: 
[wang@centos7 ~]$

如果王老師用戶已經加入兩個班級的組中,我們該如何查看呢,接下來將的是查看該組的成員,

groupmems 命令

簡介:
groupmems - administer members of a user's primary group
格式:
groupmems -a user_name | -d user_name | [-g group_name] | -l | -p
選項:
-g, --group:groupname更改為指定組(只有root)
-a, --add username:指定用戶加入組
-d, --delete username:從組中刪除用戶
-p, --purge:從組中清除所有成員
-l, --list:顯示組成員列表
實例1:
[root@centos7 ~]# groupmems -g wang -l  #將wang用戶加入到user1組中
user1  user2 
[root@centos7 ~]# gpasswd -a wang user1 #將wang用戶加入到user2組中
Adding user wang to group user1
[root@centos7 ~]# gpasswd -a wang user2
Adding user wang to group user2
[root@centos7 ~]# groupmems -g user1 -l #查看user1組中的成員
wang 
[root@centos7 ~]# groupmems -g user2 -l #查看user2組中的成員
wang
實例2:
如何將新來tom老師加入到兩個班級的組中呢?
[root@centos7 ~]# useradd tom
[root@centos7 ~]# groupmems -a tom -g user1
[root@centos7 ~]# groupmems -a tom -g user2
[root@centos7 ~]# groupmems -g user1 -l
wang  tom 
[root@centos7 ~]# groupmems -g user2 -l
wang  tom
實例3:
如果wang老師離職了,需要將wang用戶將兩個組中刪除
[root@localhost ~]# groupmems -a wang -g user1
[root@localhost ~]# groupmems -g user1 -l
tom  wang 
[root@localhost ~]# groupmems -d wang -g user1
[root@localhost ~]# groupmems -g user1 -l
tom 
[root@localhost ~]# groupmems -d wang -g user2
[root@localhost ~]# groupmems -g user2 -l
tom

Linux系統中還自帶了一個命令是查看用戶組中的用戶列表,下面講的是groups命令:

groups 命令

簡介:
groups - print the groups a user is in
格式:
groups [OPTION]... [USERNAME]...
實例1
[root@localhost ~]# groups wang
wang : wang
[root@localhost ~]# groups tom
tom : tom user1 user2

2、用戶組的管理

如果已經停用的用戶組不需要了,可以用groupdel命令刪除。

groupdel 命令

簡介:
groupdel - delete a group
格式:
groupdel [options] GROUP
實例1:
[root@localhost ~]# getent group wang  
wang:x:1004:
[root@localhost ~]# groupdel wang   #刪除用戶組wang
groupdel: cannot remove the primary group of user 'wang'    #因為wang組中有wang用戶,因此提示僅刪除了wang組,wang用戶未有刪除
[root@localhost ~]# userdel -r wang  #使用userdel命令刪除wang用戶

Linux組:Groupname/GID

管理員組:root, 0
普通組:
    系統組:1-499, 1-999
    普通組:500+, 1000+
    
Linux組的類別:
    用戶的主要組(主組):
        用戶必須屬于一個且只有一個主組
        組名同用戶名,且僅包含一個用戶:私有組
    用戶的附加組(輔助組):
        一個用戶可以屬于零個或多個輔助組

3、用戶組的配置文件詳解

Linux用戶組的主要配置文件:

/etc/group:組及其屬性信息

/etc/gshadow:組密碼及其相關屬性

/etc/group:
   group_name:password:GID:user_list
   組名:組密碼:群組的ID:以當前組為附加組的用戶列表(分隔符為逗號)
/etc/gshadow
group_name:encrypted_password:administrators:members
群組名稱:群組密碼:組管理員列表:以當前組為附加組的用戶列表(分隔符為逗號)

如果要編輯用戶組的配置文件,建議使用vigr和grpck命令,這兩個命令可以檢測編輯的文件是否有語法錯誤。

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

(0)
AleenAleen
上一篇 2016-08-05 16:13
下一篇 2016-08-05 16:13

相關推薦

  • Ansible Conditionals & Loops

     一、條件語句     條件判斷語句,就是根據某些變量的值來控制Ansible的執行流程。控制某些主機執行某些操作與不執行某些操作。根據某些操作結果,判斷是否執行其它操作等等。     Ansible的條件判斷語句只有 when 語句,結合變量使用才能顯示出它的價值。when的用…

    Linux干貨 2015-11-21
  • linux常用基礎命令簡介

    linux常用基礎命令簡介 linux入門 基礎 筆記 linux新手入門常用命令語法參數簡介 linux常用基礎命令簡介 cd 語法 選項 ls 語法 選項 echo 語法 選項 history 語法 選項 man 語法 選項 cd cd命令用來切換工作目錄至指定目錄。 其中指定目錄表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至…

    Linux干貨 2017-03-26
  • Linux screen命令

    screen命令 一、簡介 Screen是一款終端模擬的屏幕管理器,用于命令行終端自由切換。 當我們需要執行一個用時較多的作業,不希望自己或者他人誤操作關閉終端導致作業中斷,可以進入screen,這樣,當終端關閉,作業仍會繼續執行。 GNU’s Screen 官方站點:http://www.gnu.org/software/screen/ &nb…

    2017-07-13
  • 文件共享服務之SAMBA

    文件共享服務之SAMBA 文件共享服務之SAMBA 一、samba出現的意義 二、samba協議描述 三、samba為客戶端的實現 四、samba為服務端的實現 五、使用圖形界面配置SAMBA 一、samba出現的意義 首先nfs實現系統文件掛載linux與linux之間,linux到windows之間實現的并不是那么理想 FTP可以實現linux和wind…

    Linux干貨 2016-04-19
  • iptables

    iptables Firewall:防火墻 隔離工具;Packets Filter Firewall;工作于主機或網絡的邊緣,對經由的報文根據預先定義的規則(匹配條件)進行檢測,對于能夠被規則匹配到的報文實行某預定義的處理機制的一套組件; 分類: 硬件防火墻:在硬件級別實現部分功能的防火墻;另一個部分功能基于軟件實現; 軟件防火墻:應用軟件處理邏輯運行于通用…

    Linux干貨 2016-11-07
  • 網絡知識

    網絡知識 一、網絡初識 1.網絡概念  在計算機領域中,網絡是信息傳輸、接收、共享的虛擬平臺,通過它把各個點、面、體的信息聯系到一起,從而實現這些資源的共享。 2.分類 按覆蓋范圍分: 局域網LAN(作用范圍一般為幾米到幾十公里)。 城域網MAN(界于WAN與LAN之間)。 廣域網WAN(作用范圍一般為幾十到幾千公里)。 按拓撲結構分類: 總線型 …

    Linux干貨 2016-09-01
欧美性久久久久