1. 程式人生 > >淺談使用者、組之管理指令

淺談使用者、組之管理指令

今天呢,我們來聊一聊關於使用者和組的管理指令。

一、使用者和組的概念

對於我們的計算機而言,它是不記錄名字的,只記錄數字,所以,就給每一個使用者排了編號,這個編號我們就稱之為使用者ID。大家都知道,linux系統下,擁有最高許可權的使用者就是root(超級管理員)了,所以root(超級管理員)的ID就是0,排在了最前面,以彰顯它的地位。在我們的linux centos7系統中,系統使用者(程序)的ID號是1-999,普通使用者的ID號是從1000開始的,在我們建立使用者時,系統會自動分配一個ID號,當然我們也可以自己指定,至於如何指定,在下文中小編會給大家介紹的。

關於組,組就是把若干個使用者放在其中,這樣一來,就更加方便我們對成員的管理,比如:把公司裡一個部門的成員放在一個組裡,直接把許可權設定到組,這樣,這個部門的人都可以訪問到他們需要訪問的檔案,會比一個一個設定快捷方便很多。

二、使用者和組的主要配置檔案

使用者和組的配置檔案有很多,主要的檔案就是下面的這四個:

1/etc/passwd該檔案中儲存的是使用者及其屬性資訊,包括名稱、UID、主組ID等等。

2/etc/group顧名思義,這個檔案中儲存的就是組及其屬性資訊啦。

3/etc/shadow該檔案儲存的是使用者密碼及其相關屬性。

4/etc/gshadow該檔案儲存的是組密碼及其相關屬性。

每個檔案的具體內容和用法稍後我們也會提到。

三、四大主要檔案的格式

1/etc/passwd

linux系統中,想要了解一個檔案最簡單的方法就是用man啦。

上圖就是man出來的結果,紅色方塊圈出來的就是格式資訊啦~我們用

cat檢視一下/etc/passwd的具體資訊,下圖就是root具體資訊的截圖。

圖中可以看出,每一部分內容是由":"分隔開來的,每一部分的意思就是上一張圖中用紅色方塊框起來的部分,分別如下:

登入使用者名稱:密碼:UIDGID:使用者全名或註解:使用者家目錄:預設的登陸shell

2/etc/group

同理,我們用man檢視一下:

同樣的,我們來看一下具體的顯示:

分別如下:組名:密碼:GID號:組成員列表

在這裡,需要說明的是:組成員列表顯示的是將該組作為輔助組的成員列表。(很重要很重要很重要!!!)那麼問題來了,如果我們將組成員列表中的某使用者主組更改為這個組,還會顯示嗎?我們就用

gentoo這個使用者來試一下:

            

從圖中,我們可以看出,當成員先把改組當做輔助組,再轉成主要組時,顯示內容是不變的~

3/etc/shadow

我們來man一下該指令:

接下來我們看一下root使用者的具體資訊:

每一塊的具體說明,在上一張圖中已經標示過了。

在這裡,我們要介紹一個命令——chage

Chage -l username顯示帳戶的密碼資訊

    -d 指定密碼的上次修改時間(yyyy-mm-dd)

    -d 0 則強制使用者下次登入時必須修改密碼

    -E 指定賬戶的過期時間

    -I 密碼過期之後多少天帳戶過期

    -m 設定最小存活時間

    -M 設定最大存活時間

    -W 設定密碼過期前的提醒時間

chage username互動式修改使用者的密碼策略

可能有人會問,什麼是互動式修改使用者的密碼呢?下面我們就來演示一下:

當我們輸入chage weichen指令後,就會依次彈出圖中資訊,我們挨個填一下就好。這樣是不是很方便呢~修改過後我們來查詢一下weichen的資訊:

圖中我們可以看出,已經按照我們設定的修改過啦~

4/etc/gshadow

Gshadow一共顯示四部分資訊,同樣以root為例:

分別為:組名:組密碼位:管理員:組成員

一樣的,該處顯示的組成員也是將該組作為輔助組的成員列表。

上圖中我們可以看出,組密碼位和管理員都是空的,那麼如何設定呢?

設定組密碼: gpasswd groupname

關於管理員,我們要說的命令會詳細一些:

任命管理員 gpasswd -A xiaoqiao,luren admin

撤消所有管理員 gpasswd -A "" admin

gpasswd -a libai admin往組中增加使用者

gpasswd -d libai admin將使用者從組中刪除

gpasswd -r admin刪除組密碼

gpasswd -R admin限制非輔助組使用者可以通過newgrp admin獲取主組許可權。當前密碼被刪除替換為!

gpasswd -M redhat,libai admin設定輔助組的成員列表。

重點來了!管理員只能由root來任命或者撤銷,可以同時有多名一起,中間用","隔開。身為管理員,當然有不一樣的權力啦:管理員可以修改組密碼,同時也可以將使用者從該組(輔助組)當中新增或者刪除!

四、使用者和組的管理命令

千呼萬喚使出來,我們終於說到了最重要的部分。

1、使用者管理命令:

1)使用者建立之useradd

useradd

-u uid username 建立使用者時指定uid(如不指定則Centos:500-60000, Centos7: 1000-60000)

-o -u uid username 建立使用者時指定uid(可以與已存在使用者的uid相同)

-g groupname username 建立使用者時指定主組為某個已存在的組。(將不會再建立與使用者同名的組)

-c ... username 建立使用者時指定描述資訊。相當於chfn ... username

-d path username 指定使用者的家目錄(確保指定的家目錄所在的上級目錄要存在,且家目錄本身不能存在)

-s /sbin/nologin username指定使用者的預設shell

-G group1[,group2] username指定使用者的輔助組

-N username 設定使用者的主要組為預設組(users,uid=100)

-r username 建立系統使用者

2)使用者屬性修改之usermod

usermod

-u newuid username         修改使用者的UID

-o -u newuid username 修改使用者的uid(可以與已存在使用者的uid相同)                        

-aG 加組名,可以追加輔助組而不用覆蓋之前的組

-G "" username usermod -G primarygroup username 清空使用者所有的輔助組

-g groupname username 修改使用者的主組

-s /sbin/nologin username修改使用者的預設shell

-c ... username 修改使用者時指定描述資訊。相當於chfn ... username

-d /.../path username 修改使用者的家目錄(不會建立,只修改/etc/passwd當中的家目錄資訊)

-m -d /.../path username修改使用者的家目錄資訊,並將家目錄移動到目的目錄並改名。

-l newname oldname 修改使用者名稱

-L 給使用者/etc/shadow中的密碼位加!使使用者被鎖定

-U !拿掉。

-e yyyy-mm-dd 設定一個帳戶過期時間

-f days 指定密碼過期之後多少天帳戶過期

3)刪除使用者之userdel

Userdel的用法很簡單,後面加上使用者名稱即可。需要說明的一點是,如果你想在刪除使用者的時候,連同他的家目錄和郵件等資訊一同刪除,則需要加上-r,如圖所示:

這樣過就可以把使用者李白的所有資訊都刪除了。

4)檢視使用者資訊之ID

id username 檢視每一使用者的資訊

id –u 檢視當前登入使用者的UID

id –un 檢視當前登入使用者的使用者名稱

id –g 檢視當前登入使用者的GID

id –gn 檢視當前登入使用者的主組名字

5)切換使用者之su

su (switch user)

su username 非登入式切換,即不會讀取目標使用者的配置檔案,不改變當前工作目錄

su - username 登入式切換,會讀取目標使用者的配置檔案,切換至家目錄,完全切換

-c 'command' 以使用者的身份執行命令而不登入

2、組管理命令

1)建立組之groupadd

groupadd -g gid groupname 建立指定gid的組

 -r groupname 建立系統組

2)修改組屬性之groupmod

groupmod

-n newgrpname oldgrpname 修改組名

-g newgid groupname 修改gid

3)刪除組之groupdel

groupdel groupname 刪除組

4)更改及檢視組成員之groupmems

groupmems -g admin -a libai (僅能一次加一個使用者到組中)

groupmems -g admin -d libai 將指定成員從組中刪除

groupmems -g admin -l 列出指定組的成員列表(輔助組)

groupmems -g admin -p 清空指定組的所有成員(輔助組)。

以上,就是我對使用者和組管理的小結,如有不足之處,還請大家多多指教諾~