用戶管理-useradd,usermod,id,who


一、Linux中用戶的概述
用戶指能正常登陸Linux或windows系統

與windows 用戶的區別
支持同一個用戶同時登陸多個設備
支持不同用戶多個設備同時登陸
二、用戶的作用
系統上每一個進程(運行中的程序)都需要特定的用戶運行
每一個文件都有特定的用戶擁有,所以訪問文件或目錄會受到用戶權限限制
進程以何種方式訪問一個文件或目錄,與進程所關聯的用戶有關
三、查看系統用戶命令
1、id:默認情況下不加用戶名這是查看當前登陸用戶的信

id 用戶名

例子:

16:22:21 root@yyds,10.0.0.100:~ # id root
0(root) gid=0(root) groups=0(root)

2、查看進程(每個進程的運行用戶)

ps -ef

130 ✗ 16:22:35 root@yyds,10.0.0.100:~ # ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          2      0  0 Mar31 ?        00:00:00 [kthreadd]
root          4      2  0 Mar31 ?        00:00:00 [kworker/0:0H]
root          5      2  0 Mar31 ?        00:00:04 [kworker/u256:0]
root          6      2  0 Mar31 ?        00:00:04 [ksoftirqd/0]
root          7      2  0 Mar31 ?        00:00:00 [migration/0]

id
0 ✓ 23:21:10 root@yyds,10.0.0.100:~ # id fog
uid=1016(fog) gid=1022(fog) groups=1022(fog)
  0 ✓ 23:21:17 root@yyds,10.0.0.100:~ # id -u fog
1016
  0 ✓ 23:21:26 root@yyds,10.0.0.100:~ # id -g fog
1022
  0 ✓ 23:21:33 root@yyds,10.0.0.100:~ # id -un fog
fog
  0 ✓ 23:21:47 root@yyds,10.0.0.100:~ # id -gn fog
fog

四、系統用戶有關配置文件
#用戶信息配置文件
/etc/passwd
#用戶密碼存儲文件
/etc/shadow
#用戶組信息配置文件
/etc/group
#用戶組密碼配置文件
/etc/gshadow

1、/etc/passwd
130 ✗ 16:29:37 root@yyds,10.0.0.100:~ # cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:ftp user:/var/ftp:/sbin/nologin
nobody:x:99:99:nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd network management:/:/sbin/nologin
dbus:x:81:81:system message bus:/:/sbin/nologin
bash
#文件內容
root:x:0:0:root:/root:/bin/bash


第一列

第二列

第三列

第四列

第五列

第六列

第七列

內容

root

x

0

0

root

/root

/bin/bash

作用

用戶名

密碼站位符

UID

gid

描述信息

用戶家目錄

用戶登陸的shell

2、/etc/shadow
#存放用戶密碼相關信息文件
130 ✗ 16:49:29 root@yyds,10.0.0.100:~ # cat /etc/shadow
root:$6$1yFJbWuGt3gSkrFW$bgpojVIYov5U4oWxpBL.4C6UZsWtTmWwijmbJj6HICBJoI7R8UQxuYeOdcq10t0HLiAiLjyAseahvxP.TowRL.::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::

# daemon:*:18353:0:99999:7:::
 


第一列

第二列

第三列

第四列

第五列

第六列

第七列

第八列

第九列

內容

root

* !!(沒有密碼)

17834

0

99999

7

2

6627567

作用

用戶名

密碼加密

從1970開始上一次密碼修改過了多少天

密碼最少使用多少天,0代表沒有限制

密碼最大使用天數

密碼過期從1979前七天提醒

密碼過期後2天強制修改密碼

用戶過期時間從1970年開始

保留位

3、用戶分類(centos7 約定、規範 )
用戶UID

系統中的含義

0

超級管理員用戶

1-200

系統用戶(系統自己創建)

201-999

系統用戶(可以手動創建)

1000+

普通用戶

4、chang命令修改用戶信息

-d //設置最近一次更改密碼時間, 0下次登陸系統強制修改密碼
-m //設置用戶兩次改變密碼之間使用"最小天數"
-M //設置用戶兩次改變密碼之間使用"最大天數"
-W //設置密碼更改警告時間 將過期警告天數設爲“警告天數”
-I //設置密碼過期天數後, 密碼爲失效狀態
-E //設置用戶過期時間, 賬戶失效後無法登陸
-l //顯示用戶信息
 
 
//修改時間爲2014年08月31日,和圖中時間匹配,方便後續驗證
[root@zls <sub>]# date -s '20140831'
Sun Aug 31 00:00:00 CST 2014
[root@zls </sub>]# date
Sun Aug 31 00:00:01 CST 2014
[root@zls <sub>]# useradd zls1
[root@zls </sub>]# echo "123" |passwd --stdin zls1
[root@zls <sub>]# tail -1 /etc/shadow
zls1:!!:16312:0:99999:7:::
 
 
//設置最近一次修改密碼時間
[root@zls </sub>]# chage -d "2014-09-01" zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:0:99999:7:::
 
//設置最短使用密碼時間
[root@zls </sub>]# chage -m 2 zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:2:99999:7:::
 
//設置密碼最長使用時間
[root@zls </sub>]# chage -M 15 zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::
 
//設置密碼警告時間
[root@zls </sub>]# chage -W 6 zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:::
[root@zls </sub>]# chage -W 7 zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::
 
//設置密碼過期時間
[root@zls </sub>]# chage -I 5 zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5::
 
//設置用戶過期時間
[root@zls </sub>]# chage -E "20115-08-31" zls1
[root@zls <sub>]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5:6627567:
 
[root@zls </sub>]# chage -l zls1
Last password change            : Sep 01, 2014       //最近一次更改密碼時間
Password expires                : Sep 16, 2014      //密碼過期時間
Password inactive               : Sep 21, 2014     //密碼失效時間
Account expires                 : Aug 31, 2015     //用戶失效時間
Minimum number of days between password change      : 2  //密碼最短使用時間
Maximum number of days between password change      : 15 //密碼最長使用時間
Number of days of warning before password expires   : 7 //密碼過期前警告天數
 
 
//如何驗證,只調整時間爲如下進行驗證:
 
1.驗證普通用戶是否能修改密碼, 不需要調整時間。
 
2.普通用戶登陸系統後, 會提示警告密碼還剩多少天過期
[root@zls <sub>]# date -s "2014-09-12"
 
3.普通用戶登陸系統後, 強制要求修改密碼
[root@zls </sub>]# date -s "2014-09-18"
 
4.普通用戶登陸系統後, 提示賬戶已過期
[root@zls ~]# date -s "2014-09-23"
 

五、用戶操作命令
1、用戶創建
useradd [選項] 用戶名,(groups有效用戶組)
#選項
-u: 創建用戶時指定用戶的uid
-g: 創建用戶時指定用戶的gid,指定用戶組名(該組必須存在)
-G:創建用戶時指定用戶附加組(該組必須存在)
-c:創建用戶時指定用戶描述信息
-d:創建用戶時指定用戶家目錄(該用戶不存在,會自動創建)
-M:創建用戶時,不創建用戶的家目錄
-s:創建用戶時指定用戶登陸的shell(默認情況下選擇/bin/bash)
-r:創建用戶時指定用戶爲系統用戶,不再創建家目錄。
例子:
#創建用戶:
130 ✗ 16:49:54 root@yyds,10.0.0.100:<sub> # useradd god
 0 ✓ 17:37:10 root@yyds,10.0.0.100:</sub> # id god
uid=1009(god) gid=1009(god) groups=1009(god)
 
#-u -g
 9 ✗ 17:36:25 root@yyds,10.0.0.100:<sub> # useradd god1 -u 888 -g root
  0 ✓ 17:37:17 root@yyds,10.0.0.100:</sub> # id god1
uid=888(god1) gid=0(root) groups=0(root)

# -G 
 6 ✗ 17:46:12 root@yyds,10.0.0.100:<sub> # useradd zhujiao
  0 ✓ 17:56:55 root@yyds,10.0.0.100:</sub> # useradd god3 -G god,zhujiao
  0 ✓ 18:00:23 root@yyds,10.0.0.100:<sub> # id god3
uid=1011(god3) gid=1011(god3) groups=1011(god3),1009(god),1010(zhujiao)

# -c
130 ✗ 18:02:17 root@yyds,10.0.0.100:</sub> # useradd god5 -c smart
0 ✓ 18:07:41 root@yyds,10.0.0.100:<sub> # cat  /etc/passwd
god3:x:1011:1011::/home/god3:/bin/bash
god5:x:1012:1012:smart:/home/god5:/bin/bash

#-d
130 ✗ 18:13:44 root@yyds,10.0.0.100:</sub> # useradd god6 -d /moon
 0 ✓ 18:29:50 god6@yyds,10.0.0.100:<sub> $ pwd
/moon

#-M
  0 ? 08:54:23 root@yyds,10.0.0.100:</sub> # useradd dog -M
  0 ? 08:56:39 root@yyds,10.0.0.100:<sub> # id dog
uid=1017(dog) gid=1017(dog) groups=1017(dog)
 
 
# -M
 0 ✓ 09:06:14 root@yyds,10.0.0.100:</sub> # useradd cow -s /nologin
130 ✗ 09:12:47 root@yyds,10.0.0.100:<sub> # useradd pig -r
  0 ✓ 09:13:55 root@yyds,10.0.0.100:</sub> # id pig
uid=887(pig) gid=887(pig) groups=887(pig)

#報錯-1
 創建指定家目錄,該家目錄不能提前存在
  0 ✓ 09:16:39 root@yyds,10.0.0.100:<sub> # useradd goat1 -d /pig/
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
 
 #報錯-2
 創建用戶時,指定用戶組名,該用戶組必須存在
130 ✗ 09:17:14 root@yyds,10.0.0.100:</sub> # useradd fish -u 211 -g duck
useradd: group 'duck' does not exist

58.
59.
  1 ✗ 21:43:07 root@yyds,10.0.0.100:~ # useradd zxc11
  0 ✓ 21:43:31 root@yyds,10.0.0.100:~ # id zxc11
uid=1022(zxc11) gid=1030(zxc11) groups=1030(zxc11)
  0 ✓ 21:43:36 root@yyds,10.0.0.100:~ # echo 111|passwd  --stdin zxc11
Changing password for user zxc11.
passwd: all authentication tokens updated successfully.

2、修改用戶- usermod
#選項
'-u'    修改用戶的UID
'-g'    修改用戶所屬的基本組GID
'-G'    修改用戶附加組, 使用逗號隔開多個附加組, 覆蓋原有的附加組
'-a'    追加更多的附加組, 必須和-G使用: -aG 追加附加組
'-m'    家目錄遷移, 必須和-d一起使用, 移動用戶的家目錄到新的位置
'-d'    指定用戶的家目錄新位置  
'-c'    修改用戶的註釋信息 
'-s'    更改用戶使用的shell

'-l'    更改用戶登錄名
'-L'    鎖定用戶
'-U'    解鎖用戶
 
 #-G, -aG
 0 ✓ 09:43:23 root@yyds,10.0.0.100:<sub> # id pig6
uid=1022(pig6) gid=1022(pig6) groups=1022(pig6),1021(pig5)
  0 ✓ 09:43:31 root@yyds,10.0.0.100:</sub> # usermod pig6 -G pig
  0 ✓ 09:44:23 root@yyds,10.0.0.100:<sub> # id pig6
uid=1022(pig6) gid=1022(pig6) groups=1022(pig6),887(pig)
  0 ✓ 09:44:31 root@yyds,10.0.0.100:</sub> # usermod pig6 -aG goat,cow
  0 ✓ 09:45:55 root@yyds,10.0.0.100:<sub> # id pig6
uid=1022(pig6) gid=1022(pig6) groups=1022(pig6),1018(cow),887(pig),1019(goat)

#-md
 12 ? 13:41:46 root@yyds,10.0.0.100:</sub> # usermod haha -m -d /home/niao

# -s
 0 ✓ 13:45:21 root@yyds,10.0.0.100:<sub> # usermod haha -s /sbin/nologin

#-l
  9 ✗ 13:54:16 root@yyds,10.0.0.100:</sub> # usermod fish -l guanyu

2.1 usermod -G與 -aG
0 ✓ 03:35:20 root@yyds,10.0.0.100:~ # useradd cow -G admins
  0 ✓ 03:36:21 root@yyds,10.0.0.100:~ # id cow
uid=1006(cow) gid=1009(cow) groups=1009(cow),1008(admins)
 0 ✓ 03:39:14 root@yyds,10.0.0.100:~ # usermod cow -G tian1
  0 ✓ 03:39:41 root@yyds,10.0.0.100:~ # id cow
uid=1006(cow) gid=1009(cow) groups=1009(cow),1010(tian1)
  0 ✓ 03:39:48 root@yyds,10.0.0.100:~ # usermod cow -aG tian2
  0 ✓ 03:40:06 root@yyds,10.0.0.100:~ # id cow
uid=1006(cow) gid=1009(cow) groups=1009(cow),1010(tian1),1011(tian2)

3、鎖定解鎖用戶(瞭解)
鎖定用戶
[root@zls <sub>]# echo "123" |passwd --stdin zls_zls
[root@zls </sub>]# usermod -L zls_zls
//無法正常登錄系統
➜  <sub> ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
{1}
解鎖用戶
[root@zls </sub>]# usermod -U zls_zls
//正常登錄系統
➜  ~ ssh [email protected]
[email protected]'s password:
Welcome to Aliyun Esc Linux
-sh-4.1$

4、刪除用戶
userdel delete
# -r
 2 ✗ 14:00:33 root@yyds,10.0.0.100:~ # userdel yu -r

5、查看用戶其他命令
# who 查看登陸了那些用戶
130 ✗ 14:01:04 root@yyds,10.0.0.100:<sub> # who
root     pts/0        2022-04-02 13:59 (10.0.0.1)

# w 查看當前登陸了那些用戶
130 ✗ 14:04:50 root@yyds,10.0.0.100:</sub> # w
 14:05:19 up 45 min,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         13:59    7.00s  0.05s  0.01s w

# whoami 
130 ✗ 14:05:26 root@yyds,10.0.0.100:~ # whoami
root

六、故障處理
1、缺少環境變量

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章