2021-05-12 14:32:11
Linux使用者和組管理
使用者和組管理
目錄
1.使用者和使用者組介紹
2.使用者管理
3.組管理
4.使用者和組相關檔案操作
1.使用者和組介紹
在linux中,使用者分為管理員和普通使用者;管理員為root,普通使用者又分為系統使用者和登入使用者;系統使用者是對linux的守護行程進行資源分配的使用者,而登入使用者就是我們平常登入linux所使用的,都是登入使用者自己定義的名字。
實際上,在linux系統中,系統所識別你是什麼使用者可不是依靠所謂的使用者名稱來實現的,而是依靠UID來實現的,所謂的使用者名稱是為了讓我們更方便記憶。UID就是linux系統識別你是什麼型別的使用者的唯一識別符號。root的使用者的uid=0,普通使用者的uid為1-65535;其中,在CentOS6系統裡系統使用者為為1-499,登入使用者為500以後;而在centos7上,系統使用者是1-999,登入使用者為1000以後。
組的情況和使用者基本一樣,也有管理員組和普通組,系統組和登入使用者組,且系統識別組也是通過組id的,稱為GID,GID的分配方法也是和使用者一樣。但也有些不同地方,組名和使用者名稱相同且僅僅保護使用者自身的組稱為私有組;一個使用者可以附加到其他組內,這個組稱為這個使用者的附加組,也就是說,一個使用者可以屬於零個或多個組。
2.使用者管理命令
與使用者管理的相關的命令有以下這些,這裡會選擇常用的選項來詳細說下:
useradd;usermod;userdel;id;passwd;chage;chfn;chsh;finger;chpasswd;newusers
1.useradd
useradd
:用於建立新使用者或更新預設的新使用者資訊
用法:useradd [選項] username
-u UID
:指明新使用者的ID-g GID
:指明使用者所屬主組,可以使用組名,也可以使用GID。-o
:允許使用相同的uid 來建立使用者,常與-u配合-d home_dir
:用於所指定的路徑為家目錄-c comment
:用於指明使用者的注釋資訊-s shell
:指明使用者預設shell程式-G group1[,group2, ...]
:指明使用者附加組,組必要事先存在-r
:建立系統使用者,系統賬號一般用於服務。-N
:不建立以使用者名稱命名的私有組,而是用users組作為主組-D [s,b,g]
:輸出或更改新增使用者時的預設設定
對於新建立的使用者,一個使用者的預設設定是根據/etc/default/useradd
檔案來設定的,選項-D
就是用來修改這個檔案的,你也可以直接修改這個檔案裡的內容。
上面提到選項-u
和-g
是決定使用者和組id的,你也可以去檔案/etc/login.defs中來修改uid和gid可選範圍。當然/etc/login.defs檔案中還有些其他如郵件地址等設定,你也可以根據需求進行修改。
建立一個新的使用者,一般是更改4個檔案,分別:是/etc/passwd
用於存放使用者資訊;/etc/shadow
用於存放密碼資訊;/home
用於存放使用者家目錄檔案;/var/spool/mail
用於存放使用者的郵件。
2.usermod
usermod
:用於修改使用者屬性資訊
用法:usermod [選項] username
-u UID
:指定使用者的新的UID-g GID
:指定使用者所屬新的主組,可以使用組名,也可以使用GID-G group1[,group2, ...]
:指定使用者新附加組,組必要事先存在。-s shell
:指定使用者新的預設shell程式-c comment
:指定使用者的新的註釋資訊-d home_dir
:指定的路徑為新家目錄-l loginname
:指定使用者登入時新的使用者名稱-L
:鎖定使用者-U
:解鎖被鎖定的使用者,與-L相反-e YY-MM-DD
:指定使用者賬號過期日期-f inactive
:設定非活動期限
使用選項-G
時需要注意,它會把原來的組給覆蓋掉,但你也可以保留原有的組,就需要用-a
配合。
使用-d
時,若要建立新的家目錄並移動原有家資料,則要配合使用-m
選項。usermod -c
用來修改或新增註釋資訊,和後面提到的chfn作用一樣。usermod -e
用來指定使用者賬號過期日期的,和後面提到的chage作用一樣。
對於分別用來鎖定和解鎖的-L
和 -U
,實際上是對/etc/shadow檔案的修改,鎖定是在檔案中加密碼的那一欄增加了個“!”,解鎖就是去掉了那個“!”。
3.userdel
userdel
:用於刪除使用者賬號和相關使用者相關檔案
用法:userdel [選項] username
-r
:移除使用者家目錄和郵件-f
:強制執行刪除
刪除使用者時需要注意一點,就是正在使用的使用者是不能刪除的,強制執行刪除的話會有各種問題,所以建議不要使用強制刪除,並且強制刪除不一定能夠刪除掉。
4.id
id
:檢視使用者相關ID資訊
用法:id [選項] [username]
-G
:顯示所有組的id-g
:僅顯示有效的組id-u
:僅顯示有效的使用者id-n
:顯示名稱,需配合ugG
5.passwd
passwd
:設定使用者密碼
用法:passwd [選項] username
-l
:鎖定使用者-u
:解鎖被鎖定的使用者,與-l相反-e
:強制使用者下次登入時修改密碼-n mindays
:指定最短使用期限-x maxdays
:指定最長使用期限-w warndays
:指定提前多少天開始警告-i inactivedays
:指定非活動期限--stdin
:從標準輸入接收使用者密碼
選項-l
實際上是在/etc/passwd中有關密碼那一欄上增加了兩個“!!”,解鎖的-u
選項就是把增加的“!!”給去掉。大家可能發現usermod中鎖定和解鎖和passwd 的不同,是否可以用usermod來解開passwd命令的鎖定,答案是可以的,passwd也可解開usermod的鎖定,這樣開來增加幾個“!”,好像沒什麼區別。
選項--stdin
的用法一般是echo "Password
|passwd -stdin Username。
passwd -e的作用和
chage -d 0`一樣,可以相互代替。
6.chage
chage
:修改使用者密碼滿期資訊
用法:chage [選項] username
-d lastday
:設定期滿最後時間-E expiraday
:設定期滿日期-I
:設定期滿後非活動日期-l,--list
:顯示使用者期滿資訊-m
:設定min_day-M
:設定max_day-W
:設定warn_day
一般來說,有關密碼期滿設定,都是設定一個固定設定,就不會再更改了。這個命令的作用就是用來修改/etc/shadow
檔案中的設定的,你也可以直接修改這個檔案,但不建議,用命令修改會更加保險。
7.chfn
chfn
:修改個人使用者註釋資訊
用法:chfn [選項] [username]
-f
:更改使用者全名-o
:修改office room number-p
:修改office phone number-h
:修改home phone number
chfn
用來新增註釋資訊,作用和useradd -c
以及usermod -c
相同,但畢竟chfn
是專門用來針對個人資訊的,功能更加全面。這個命令是修改的是/etc/passwd檔案。
8.chsh
chsh
:更改使用者登入shell
用法:chsh [選項] [username]
-s
:指定登入shell-l,--list
:列出/etc/shells的shell內容
chsh
指定shell與useradd -s
和usermod -s
有相同的作用,但還是那句話塑業有專攻,它也是修改的/etc/passwd
檔案。
9.finger
finger
:檢視使用者資訊
用法:finger [-lsmp] [username...] [user@host...]
[-lsmp]
都是可以用的選項,man中解釋太長了,這裡就用例子看下:
10.newusers
newusers
:批次建立使用者
用法:newusers [選項] [檔案]
-r
:建立系統賬號
[檔案]:檔案的格式是/etc/passwd的格式:pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
11.chpasswd
chpasswd
:批次建立使用者密碼
用法 :cat 檔案 |chpasswd
檔案的格式:user_name:password,且每行一個使用者密碼。
上述命令中有些選項沒有提到,這裡只說了下經常用到的,對其他選項有興趣的可以檢視man幫助。
3.組管理
與組管理相關的命令如下,基本上和使用者管理命令差不多,這裡也是說下常用的選項內容:
groupadd、groupmod、groupdel、gpasswd、newgrp、goupmems、groups
1.groupadd
groupadd
:建立新組
用法:groupadd [選項] group
-g GID
:指明gid給新使用者-K KEY=VALUE
:修改/etc/login.defs中的預設設定-o
:忽略gid的唯一性來建立組-p password
:給新使用者新增密碼-r
:建立系統賬戶
2.groupmod
groupmod
:修改組的定義資訊
用法:groupmod [選項] group
-g GID
:修改為新的gid-n groupname
:修改為新的組名-o
:忽略gid的唯一性來修改組-p password
:修改組的密碼
3.groupdel
groupdel
:刪除組
用法:groupdel [hR] group
4.gpasswd
gpasswd
:管理/etc/group和/etc/gshadow
用法:gpasswd [選項] group
-a user
:新增使用者到組-d user
:從組中刪除使用者-r
:刪除組的密碼-R
:限制組中的使用者-M user ...
:設定組中使用者列表,也就是新增多個用到組-A admin
:設定組的管理員,組的管理員許可權放在/etc/gshadow
中
5.newgrp
newgrp
:臨時切換主組
用法:newgrp [-] group
切換組時,如果使用者本不屬於此組,則會需要密碼
6.groupmems
groupmems
:管理使用者組成員,也就是附加組成員
用法:groupmems [選項] [操作]
[選項]:-g groupname
:指定所要修改的除root使用者組外的組名
[操作]:-a username·:新增使用者到組
-d username:從組中刪除用
-p:從組中清除所有成員
-l`:顯示所有組成員
groupmems
命令實際上也就是修改/etc/groups
7.groups
groups
:顯示組中使用者,或存在一個使用者的組
用法:groups [username]
上述命令可以看出其和使用者管理命令很相似,實際上命令的執行都是通過修改組態檔來實現的,上述命令主要修改的是:/etc/group
用來存放組的資訊,也即就是組中使用者的列表等;/etc/gshadow
用來存放組的密碼資訊。
說到與使用者和組相關的檔案,那來看看有關對這些檔案操作命令
4.使用者和組相關檔案操作
操作使用者和組相關組態檔的命令有以下這些:
vipw、vigr、pwck、grpck、getent
1.vipw和vigr
vipw,vigr
:用於編輯password,group,shadow-password和shadow-group檔案
用法:vipw [選項] 、vigr [選項]
vipw
編輯的是/etc/passwd
檔案,vigr
編輯的是/etc/group
檔案。我這裡雖說寫了出來,但不建議大家用,畢竟是通過直接修改組態檔,檔案間的相互關係會出現問題,即使你看起來編輯成功了,但可能出現各種問題,所以特別不建議大家用。
2.pwck和grpck
pwck
,grpck
:用於檢查password檔案和group檔案的完整性。
用法:pwck [選項] [passwd [shadow] ]
,grpck [選項] [group [gshadow] ]
-q
:僅報告錯誤-r
:僅顯示錯誤和告警但不修改檔案-s
:按照UID進行排序分類
可以看出來pwck是檢查/etc/passwd
和/etc/shadow
檔案的,grpck是檢查/etc/group
和/etc/gshadow
檔案的。
3.getent
getent
:檢視資料相關資訊
用法:getent datebase [key...]
datebase包含shadow,passwd,group,gshadow...這是開啟了相應的/etc/下的組態檔。
你可能發現有好多命令選項有相同的用法,這裡就做個總結:
新增使用者到組:
useadd -g 主組 -G 附加組... user (建立)
usermod -g mg -G ag... user (修改)
gpasswd -a user ag(新增)
gpasswd -M user... ag (設定)
gpasswd -A user mg (設定) (設定管理員使用者)
goupmems -g 組 -a user (新增)
刪除組中使用者:gpasswd -d user ag
goupmems -g 組 -d user
給組設定管理員:gpasswd -A user 主組
指定個人資訊:useradd -c
usermod -c
chfn
指定shell:useradd -s
usermod -s
chsh -s
以上就是我對使用者和組管理的相關認識,這裡就不再舉例,大家可以多加嘗試。有什麼寫的不對地方,歡迎提出,謝謝~
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-10/147271.htm
相關文章