1. 用戶和組的配置文件
Linux用戶和組的主要配置文件:
/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性
2. /etc/passwd
在Linux /etc/passwd文件中每個用戶都有一個對應的記錄行,它記錄了這個用戶的一些基本屬性。系統管理員經常會接觸到這個文件的修改以完成對用戶的管理工作。這個文件對所有用戶都是可讀的。
getent passwd [username] 查看用戶passwd的命令
/etc/passwd中一行記錄對應著一個用戶,每行記錄又被冒號(:)分隔為7個字段。
使用getent passwd
magedu可以查看magedu的passwd中信息
其格式和具體含義如下:
用戶名:密碼:用戶標識號UID:組標識號GID:注釋性描述:家目錄:登錄Shell
用戶名:
密碼位:x
因為passwd這個文件任何用戶都能訪問,所以將密碼存在里面不安全,一般這一位都是x:
pwconv (默認) 將密碼映射到了/etc/shadow
pwunconv 此命令將密碼保存到/etc/passwd中,刪除/etc/shadow文件
UID:
每個用戶都有一個UID,UID為0時,說明是管理員帳戶。
CentOS6
1-499為系統用戶,預留
CentOS7
1-999為系統用戶,預留
GID:
主要組:每個有且僅有一個主要組,當用戶創建時,自動創建一個與用戶同名的組作為主要組。
輔助組:用戶可以有零個或多個輔助組。
描述位:
chfn username 設置用戶的描述
finger username (默認沒有安裝) 查看用戶的信息
家目錄:
usermod -d /home/magedunew magedu 修改用戶家目錄
默認的登錄Shell:
usermod -s /sbin/nologin
magedu
chsh -s /sbin/nologin magedu 都可以修改magedu的shell
如果要禁止某個用戶登錄,可以將它最后一位改為/sbin/nologin
3. /etc/shadow
只有root能訪問
getent shadow [username] 查看用戶shadow信息
同樣,使用getent shadow magedu可以查看magedu的shadow中信息
其各位含義為:
用戶名:
密碼位:sha512 sha256
md5 $id$salt$password
authconfig –passalgo=sha256 –update
!!:用戶被鎖定
usermod -L 鎖定用戶
usermod -U 解鎖用戶 -p
password
密碼上一次的修改日期:(從1970-1-1到修改的時間經過了多少天來表示)
密碼最小存活期:(指的是兩次修改口令之間所需的最小天數)
密碼最大存活期:(指的是口令保持有效的最大天數)
密碼過期之前提前多少天提醒用戶:(在正確登錄時)
密碼過期之后多少天帳戶過期:(在正確登錄時)
帳戶過期時間:(自1970-1-1到該天經過了多少天來表示)
保留位:(還沒被開發出來)
chage -l
username 顯示帳戶的密碼信息
-d 指定密碼的上次修改時間(yyyy-mm-dd)
-d 0 則強制用戶下次登錄時必須修改密碼
-E 指定賬戶的過期時間
-I 密碼過期之后多少天帳戶過期
-m 設置最小存活時間
-M 設置最大存活時間
-W 設置密碼過期前的提醒時間
chage username 交互式修改用戶的密碼策略
4. /etc/group
getent group [groupname]
分為以下四位:
groupname:組名
密碼位:x
gid:
CentOS6
1-499為系統組,預留
CentOS7
1-999為系統組,預留
組成員:將該組作為輔助組的成員列表。當成員先把該組當作輔助組,再轉成主要組時,不改變。當成員離開該組時,被刪除。
首先使用groupmems -g group -a username將指定成員加入指定組中。
如圖,將lky加入magedu組,使用id可以看到lky為lky的主組,magedu為附加組。
使用usermod -g groupname username 修改用戶的主組,將lky的主組改成magedu
組成員沒有改變。
我們再將主組改回lky,刪除附加組,此時才消失。因為該成員已經離開該組。
5. /etc/gshadow
getent
gshadow [groupname]
groupname:組名
密碼位:
gpasswd
groupname設置組密碼
newgrp
groupname(普通用戶)
當用戶不是該groupname的輔助組成員時,則需要輸入密碼,成功后臨時以主要組的身份加入該組。
當用戶是該groupname的輔助組成員時,無需輸入密碼,將臨時以主要組的身份加入該組,而其原有的主要組,臨時變為輔助組。
管理員:只能由root任命或撤銷,可以同時有多名,以,為間隔。權利:可以修改組密碼,可以將用戶從該組(輔助組)當中添加或刪除。
任命 gpasswd -A
username1,username2 groupname
撤消所有管理員:gpasswd
-A “” groupname
gpasswd
-a libai admin 往組中增加用戶
gpasswd
-d libai admin 將用戶從組中刪除
gpasswd
-r admin 刪除組密碼
gpasswd
-R admin 限制非輔助組用戶可以通過newgrp admin獲取主組權限。當前密碼被刪除替換為!
gpasswd
-M redhat,libai admin 設置輔助組的成員列表。
groupmems
-g admin -a libai 將指定成員加入指定組中(僅能一次加一個用戶到組中)
groupmems
-g admin -d libai 將指定成員從組中刪除
groupmems
-g admin -l 列出指定組的成員列表(輔助組)
groupmems
-p admin 消除指定組的所有成員。
組成員:將該組作為輔助組的成員列表。當成員先把該組當作輔助組,再轉成主要組時,不改變。當成員離開該組時,被刪除。
6.創建用戶刪除用戶
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,gid=100)
-r
username 創建系統用戶
如圖,使用上述方法創建了一個新用戶keke
創建用戶時會有默認值,默認值的信息存放在/etc/default/useradd 文件中。
由此可以看出,默認組為100,家目錄默認在home下,默認shell為/bin/csh 等信息。
刪除用戶userdel
[-r] username
一般都加上-r,可以連同其家目錄,mail一同刪除
7.修改用戶信息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 指定密碼過期之后多少天帳戶過期
文件編輯:
vipw = vim /etc/passwd 編輯passwd中內容
vipw -s = vim /etc/shadow 編輯shadow中內容
vigr = vim /etc/group 編輯group中內容
vigr -s = vim /etc/gshadow 編輯gshadow中內容
(輸入:q退出)
pwck 檢查用戶密碼文件的完整性/etc/passwd /etc/shadow
grpck 檢查用戶組及密碼文件的完整性/etc/group /etc/gshadow
8.查看用戶相關的ID信息
id username
-u 顯示UID
-un 顯示UID名稱
-g 顯示GID
-gn 顯示GID名稱
-G 顯示用戶所數組的ID
-Gn 顯示用戶所數組的名稱
9.用戶切換
su (switch user用戶切換)
su
username 非登錄式切換,即不會讀取目標用戶的部分配置文件,不改變當前工作目錄
su
– username 登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
su
[-] username -c ‘command’ 換個身份執行命令,不登錄
如圖,可以直接臨時換成natasha用戶的身份執行命令
10.設置密碼
passwd [OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限
passwd: 修改自己的密碼
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登錄修改密碼(或者chage -d 0)
-n
mindays: 指定最短使用期限
-x
maxdays:最大使用期限
-w
warndays:提前多少天開始警告
-i
inactivedays:非活動期限
–stdin:從標準輸入接收用戶密碼(就是設置密碼時,密碼會顯示出來)
echo “PASSWORD” | passwd
–stdin USERNAME 因此也可以使用管道將密碼傳輸過去,如圖,將xinmima作為新的密碼設置成了natasha的密碼。
11.組
groupadd 創建組
-g gid groupname 創建指定gid的組
-r groupname 創建系統組
groupmod 修改組
-n newgrpname oldgrpname 修改組名
-g newgid groupname 修改gid
groupdel groupname 刪除組
groups username 查看指定用戶屬于哪些組
****重點總結****
groupmems -g groupname -l 查看組里有哪些人
groups username 查看一個人屬于哪些組
****重點總結****
原創文章,作者:T_endless,如若轉載,請注明出處:http://www.www58058.com/82190