天天看點

使用者管理

第1章 使用者

存儲使用者資訊,每一行表示一個使用者資訊,有多少行就表示多少個使用者資訊。

root : x : 0 : 0 : root : /root : /bin/bash

此檔案由7個字段的資料組成,字段之間用“:”分隔,格式如下:

1使用者名:2密碼:3使用者辨別号UID:4組辨別号GID:5個人資料:6主目錄:7指令解釋器

存儲使用者密碼資訊檔案

old : !! : 17749 : 0 : 99999 : 7 : : :

此檔案由9個字段的資料組成,字段之間用“:”分隔,格式如下:

1使用者名 2 密碼 3 最近改動密碼的日期 4 密碼不可被更動的天數 5 密碼需要重新變更的天數 6 密碼需要變更期限前的警告期限 7 密碼過期的恕限時間8帳号失效日期 9 保留

主要存儲組相關資訊的檔案

oldboy : x : 500 :

此檔案由4個字段的資料組成,字段之間用“:”分隔,格式如下:

1組名 2組密碼 3組ID(GID) 4組成員

主要用來存儲組密碼資訊

oldboy : ! : :

1組名 2組密碼 3組管理者 4使用者組成員

5、和建立使用者相關的目錄

此目錄用來存放新使用者需要的所有基礎環境變量檔案的目錄。

[oldboy@bogon ~]$ rm -f .bash* //删除使用者家目錄下的環境變量後,退出

-bash-4.1$ //重新登入

1、不帶任何參數使用添加使用者時,首先讀/etc/login.defs    /etc/default/useradd 預先定義的規則

2、根據設定的規則添加使用者,同時會向/etc/passwd  /etc/group檔案添加建立的使用者群組但/etc/shadow   /etc/gshadow也會同步生成記錄

3、同時系統會根據/etc/login.defs    /etc/default/useradd檔案中配置的資訊建立使用者的家目錄,并複制/etc/skel中所有隐藏的環境配置檔案到新使用者的家目錄中,以完成對使用者環境的初始化設定。

模拟故障:

1、useradd u1

2、passwd u1

3、在xshell裡新開一個視窗

ssh IP位址 //執行此指令

例如 :ssh 10.10.10.30

4、彈出視窗 輸入使用者名和密碼

5、在普通使用者的家目錄 ~ rm -rf .bash*

6、ls -a //發現.bash* 的檔案全部删除

7、exit //登出

8、 ssh IP位址 //執行此指令在重新登入一次,登入後發現故障

cp /etc/skel/.bash* ~ //把/etc/skel/.bash* 下的所有.bash* 檔案拷貝到 使用者的家目錄

Linux是一個多使用者、多任務的作業系統,如果要使用系統資源,就必須向系統管理者申請一個使用者,通過這個使用者進入系統,通過建立不同屬性的使用者實作

不同的作用或權限,可以合理利用和控制系統資源。

預設是root使用者,它的UID 和GID均為0,系統安裝完成後自動生成的,預設通過它就可以登入系統,擁有最高的管理權限。

由系統管理者root建立的,建立完成後可以登入系統,但預設無法建立、修改和删除任何管理者下的檔案;UID從500-65535

安裝系統後預設生成的使用者,大多數不能登入系統,但它們是系統正常運作不可缺少的,它們的存在主要是為了友善系統管理,滿足相應的系統程序對檔案所屬使用者的要求;UID從 1-499

-n 不建立以使用者名為名的組

-c 建立使用者時,添加個人資訊

-u 使用者ID值,這個值必須是唯一的

-s 使用者登入後使用的shell

-g 指定使用者對應的組,對應的組必須在系統中存在

[root@localhost ~]# useradd agan

[root@localhost ~]# grep -w "agan" /etc/passwd

agan:x:504:504::/home/agan:/bin/bash

[root@localhost ~]# grep -w "agan" /etc/group

agan:x:504:

注:建立使用者的同時,并建立了一個以自己為名的組

-c 修改使用者的個人資訊,同useradd 的-c功能

-g 修改使用者對應的使用者組,同 useradd的-d功能

-s 修改使用者登入後使用的shell名稱,同useradd的-s功能

-u 修改使用者的uid ,同useradd 的-u功能

-l 修改使用者的名稱

usermod -l u1 agan6

新名 已存在的名

-f 強制删除使用者

-r 删除使用者的同時,删除與使用者相關的所有檔案(包含郵箱資訊)

--stdin //從标準輸入讀取密碼字元串

一條指令非人工互動設定密碼(企業使用技巧)

[root@localhost ~]# echo "123456" | passwd --stdin u1

Changing password for user u1.

passwd: all authentication tokens updated successfully.

注:這個指令在工作中批量設定密碼時很有用

批量更新使用者的密碼

[root@localhost gj]# chpasswd //指令輸入完,直接回車

root:123456 //格式 使用者名:密碼,使用者必須存在才可以,一行一個使用者

u1:123456

u2:654321 //輸入完成後,直接ctrl+D 結束輸入

注:此指令有一個bagel,當一行輸入錯誤後,不能傳回修改。

當使用useradd 指令批量建立使用者後,可以使用chpasswd 指令批量設定密碼或批量修改密碼。

把使用者和密碼字元串放到檔案裡執行批量改密碼

[root@localhost gj]# cat passwd.txt

u1:123

u2:321

u3:123

[root@localhost gj]# chpasswd < passwd.txt

su的作用是變更為其它使用者的身份,超級使用者除外,需要鍵入該使用者的密碼。

su 切換使用者卻不切換工作環境 , su - 同時切換使用者與工作環境

su的缺點造就了sudo的誕生

由于使用者通過 su root 指令直接擷取root權限,進而造成使用者的權限太大,也就可能給系統造成危險。

為了既保證系統的安全又可以執行相應指令,sudo 也就以此誕生。

sudo作用:通過配置檔案來限制使用者的權限 ,可以讓普通使用者在執行指定的指令或程式時,擁有超級使用者的權限。

sudo的工作過程如下:

1,當使用者執行sudo時,系統會主動尋找/etc/sudoers檔案,判斷該使用者是否有執行sudo的權限

2,确認使用者具有可執行sudo的權限後,讓使用者輸入使用者自己的密碼确認

3,若密碼輸入成功,則開始執行sudo後續的指令

4,root執行sudo時不需要輸入密碼(因為sudoers檔案中有配置root ALL=(ALL) ALL這樣一條規則)

給普通使用者u1提權,讓普通使用者可以檢視root使用者的家目錄;普通使用者可以使用useradd指令,建立新使用者

1) useradd u1

2) visudo=vi打開/etc/sudoers檔案 或 vim /etc/sudoers

注:visudo會檢查内部文法,避免使用者輸入錯誤資訊,是以我們一般使用visudo,編輯此檔案要用root權限

3) 編輯檔案的第98行,編輯完成後,wq! 強制儲存退出

root ALL=(ALL) ALL

u1 ALL=(ALL) /bin/ls,/usr/sbin/useradd

4)使用u1 使用者登入測試

sudo useradd u11 //可成功建立使用者,證明提權成功

sudo ls /root //可檢視root的家,證明提權成功

5) sudo -l //-l 參數是列出目前使用者可執行的指令,但隻有在sudoers檔案裡的使用者才能使用該選項。

用于顯示目前登入系統的使用者資訊。

單獨執行 w 指令會顯示所有的使用者,您也可指定使用者名稱,僅顯示某位使用者的相關資訊。

w –h

不列印頭資訊;

檢視使用者的UID 、GID

[root@bogon /]# id user6

uid=8897(user6) gid=8899(z11) groups=8899(z11)

[root@bogon /]# id -g user6

8899

[root@bogon /]# id -G user6

[root@bogon /]# id -u user6

8897

用了顯示使用者登入情況,以下是直接顯示固定行數的記錄:

lastlog 指令 顯示linux中所有使用者最近一次遠端登入的資訊

第2章 使用者組

Linux系統中的使用者組(group)就是具有相同特征的使用者的集合;

有時我們需要讓多個使用者具有相同的權限,就要建立組;

将使用者分組是Linux系統中對使用者進行管理及控制通路權限的一種手段;

一個使用者可以加入到多個組。

-g gid 指定使用者組的GID,GID唯一不能為負數,如果不指定GID從500開始

-f 新增一個組,強制覆寫一個已存在的組,GID、組成員不會改變。

添加組z11,檢視添加後的組資訊

[root@bogon ~]# groupadd z11

[root@bogon ~]# grep "z11" /etc/group

z11:x:8895:

[root@bogon ~]# tail -1 /etc/group

-a:添加一個使用者到組,可以追加到組

-M:添加多個使用者到組,覆寫之前的組成員

-d:從組删除使用者

把user1使用者添加到z1,并且檢視是否添加成功

[root@bogon gj]# groupadd z1

[root@bogon gj]# useradd user1

[root@bogon gj]# gpasswd -a user1 z1

Adding user user1 to group z1

[root@bogon gj]# grep "z1" /etc/group

z1:x:8896:user1

-a選項隻能添加一個使用者,需要同時添加多使用者時,使用-M參數

同時添加user2、user3使用者到z1組(先建立user2、user3使用者)

[root@bogon gj]# gpasswd -M user2,user3 z1

z1:x:8896:user2,user3

注:使用-M參數添加多個使用者時,多使用者之間使用逗号分割;添加批量使用者時,先使用-a參數,在使用-M參數,就會覆寫之前添加過的使用者;是以添加多使用者時,先使用-M 參數。

将user2使用者從組中删除

[root@bogon gj]# gpasswd -d user2 z1

Removing user user2 from group z1

z1:x:8896:user3

-n 修改組名

-g 修改GID

groupmod -n 新名 舊名

groupmod -g 8888 dir

修改z1組的GID

[root@bogon gj]# groupmod -g 8888 z1

z1:x:8888:user3

修改z1組的組名為newz1

1:x:8888:user3

[root@bogon gj]# groupmod -n z1new z1

z1new:x:8888:user3

删除組,删除組後,使用者名依然存在

附加指令: 檢視使用者屬于到哪些組,使用指令:groups

groups 使用者名

[root@bogon gj]# groups user1

user1 : user1 z2

批量建立使用者:

建立一個檔案,此檔案的擴充名必須為*.sh

vim aa.sh

#!/bin/bash

for ((i=1;i<=10;i++));

{

useradd gj$i

}

echo "批量使用者成功建立完成啦!!!"

2、sh aa.sh

3、檢視腳本是否成功

ls /home

注:如果在home裡看到,批量建立的使用者,代表成功

批量建立30個使用者,并為30個使用者批量設定密碼,以腳本形式。

繼續閱讀