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
下一篇 2016-08-05

相關推薦

  • linux基礎之磁盤管理

    linux基礎之磁盤管理 學習linux,數據維護和管理是重中之重,而數據大部分存放在硬盤當中,因此,熟練掌握磁盤的使用和管理是運維人員的基礎要求。那么,linux系統包括哪些知識點呢? 下面,我們就詳細闡述下Linux中磁盤的分區、格式化,以及一些磁盤的高級用法:磁盤配額、RAID陣列和LVM 一、硬盤 隨著技術的進步,人類社會的不斷發展。硬盤也經歷了幾代…

    Linux干貨 2017-03-19
  • 推薦-Linux命令幫助的獲取

    幫助命令 1. 使用幫助命令和幫助選項來獲取幫助 2. 使用man來查看命令使用手冊(manual) 3. 使用info來查看命令的信息頁 4. 程序自身的幫助文檔 5. 程序官方文檔 6. 發行版的官方文檔 7. 使用Google搜索關鍵字 1. 使用幫助命令和幫助選項來獲取幫助 Linux系統中命令分為【內部命令】和【外部命令】。 【內部命令】:內部命令…

    Linux干貨 2016-03-25
  • 絕對路徑和相對路徑及cd、pwd、mkdir、rmdir、tree命令

    絕對路徑和相對路徑及cd、pwd、mkdir、rmdir、tree命令詳解 一、絕對路徑和相對路徑(由下圖進行講解) 絕對路徑:由根目錄開始(/)開始的文件名或者目錄名稱,我們通過絕對路徑切換到/man1文件處,所經過的路徑。 cat /root/usr/share/man/man1 如下圖 相對路徑:相對于當前路徑,以當前所在位置的相對路徑。例如…

    Linux干貨 2016-08-02
  • ~~ 1;列出當前系統上所有已經登錄的用戶的用戶名,注意:同一用戶登錄多次,則只顯示 一次即可。 # who | cut -d" " -f 1 | sort -u 2;取出最后登錄到當前系統的用戶的相關信息 # id $(who | tail -1 |cut -d" " -f 1) # last | head -1 3…

    Linux干貨 2017-01-03
  • 第六周博客作業

                   1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s@^[[:space:]]\+[^[:…

    Linux干貨 2016-12-05
  • 【25期】Linux第一周學習知識小結

    1:設置Linux圖形界面不用輸入賬號和密碼直接登錄系統 首先在圖形化界面編輯文件:vi /etc/gdm/custom.conf 編輯如下圖: 在[daemon]下添加兩行代碼: AutomaticLoginEnable=True // 自動登陸器用 AutomaticLogin=root   //登錄賬號root 2:free命令 在終端輸入f…

    2017-07-15
欧美性久久久久