用户管理
用户的基本概述
# 什么是用户?
能正常登陆系统的就是用户
linux是支持多用户同时登陆的
系统中有很多进程需要不同的用户进行管理
[root@lxy ~]# id#显示当前登录的用户信息
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@lxy ~]# id adm#显示其他用户的信息
uid=3(adm) gid=4(adm) groups=4(adm)
[root@lxy ~]# ps aux#不同的进程使用不同的用户启动和管理
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 128032 6648 ? Ss Nov28 3:28 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Nov28 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Nov28 0:18 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Nov28 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Nov28 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S Nov28 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R Nov28 0:43 [rcu_sched]
用户的配置文件
[root@lxy ~]# head -1 /etc/passwd#存在用户的基本信息
root:x:0:0:root:/root:/bin/bash
以:为分隔符,分成7列
第一列: root#用户的名称
第二列: x#密码的占位符
第三列: 0#用户的UID
第四列: 0#用户的组ID,GID
第五列: root#用户的注释信息
第六列: /root#用户的家目录
第七列; /bin/bash #用户的命令解释器
/bin/bash #是可以登录系统,正常执行命令
/sbin/nologin #不能登录系统
[root@lxy ~]# head -1 /etc/shadow #存放用户的密码信息
root:$6$V9AwwqfvrAHzDuQo$zTpPusyj3Xbq3eOFe6bhhupTCAsJ8vVRodnPlPnMF.6/GNuuSqlF5J72IzDQh02ZOiFEFdxPnKe5OOKjd0sH5.::0:99999:7:::
以:号为分割符,分成9列
第一列: #用户的名称
第二列: #用户的密码,加密 ,* 或 !! 表示没有密码
第三列:17834#表示用户的密码最近的一次修改时间,距离1970年1月1号过了多少天
第四列: 0 #密码最小使用时间,0 没有限制
第五列:99999#密码的最大有效期,最大的使用时间
第六列:7#密码到期后的警告时间
第七列:#密码过期后的宽恕时间
第八列:#账户的失效时间
第九列:#没有使用
系统跟用户的约定
0#超级管理员的用户的UID,root
1-200#系统用户,这些用户是系统创建好的,用于管理系统的进程或者程序
201-999#系统用户,用户自己用来管理程序或进程的,系统用户是不能登录系统
1000+#普通用户 60000 2的16次方 65535
用户的相关命令
id #查看用户的id信息
[root@lxy ~]# id#查看当前登录的用户
uid=0(root) gid=0(root) groups=0(root)
[root@lxy ~]# id test#查看指定的用户信息
uid=1000(test) gid=1000(test) groups=1000(test)
useradd#创建用户,默认创建的是普通用户
[root@lxy ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Nov 26 20:23 /usr/sbin/adduser -> useradd
选项:
-u#指定用户的UID
-g#指定用户组,写组名或者组的ID,基本组
-G#指定附加组,多个使用逗号分隔
-c#添加注释信息
-r#创建系统用户,不创建家目录
-M#不创建家目录
-d#指定家目录的位置,目录要是不存在
-s#指定用户的命令解释器
[root@lxy ~]# id user01#默认创建普通的用户
uid=1001(user01) gid=1001(user01) groups=1001(user01)
[root@lxy ~]# grep 'user01' /etc/passwd
user01:x:1001:1001::/home/user01:/bin/bash
[root@lxy ~]# useradd -u888 -c "测试用户" -d /opt/user02 user02
[root@lxy ~]# id user02
uid=888(user02) gid=1002(user02) groups=1002(user02)
[root@lxy ~]# grep 'user02' /etc/passwd
user02:x:888:1002:测试用户:/opt/user02:/bin/bash
[root@lxy ~]# ll /opt/
drwx------. 2 user02 user02 62 Dec 12 18:36 user02
[root@lxy ~]# useradd -r -s /sbin/nologin user04
[root@lxy ~]# grep 'user04' /etc/passwd
user04:x:664:663::/home/user04:/sbin/nologin
[root@lxy ~]# ll /home/
total 0
drwx------. 2 test test 62 Nov 27 19:57 test
drwx------. 2 user01 user01 62 Dec 12 18:29 user01
[root@lxy ~]# useradd -M -s /sbin/nologin user05
[root@lxy ~]# ll /home/
total 0
drwx------. 2 test test 62 Nov 27 19:57 test
drwx------. 2 user01 user01 62 Dec 12 18:29 user01
[root@lxy ~]# grep 'user05' /etc/passwd
user05:x:2000:2000::/home/user05:/sbin/nologin
usermod#修改用户
选项:
-u#修改uid信息
-g#修改基本组的id,GID
-a#添加附加组,不能单独添加,-G配合
-G#修改附加组,会将附加组的覆盖
-aG#追加
-m#迁移家目录
-d#修改家目录
-c#修改注释信息
-s#修改命令解释器
-l#修改用户的名称
-L#锁定用户
-U #解锁用户
[root@lxy ~]# usermod -u1010 -c "test" -s /bin/bash user05
[root@lxy ~]# grep 'user05' /etc/passwd
user05:x:1010:2000:test:/home/user05:/bin/bash
[root@lxy ~]# usermod -md /home/user02 user02
[root@lxy ~]# ll /home/
total 0
drwx------. 2 test test 62 Nov 27 19:57 test
drwx------. 2 user01 user01 62 Dec 12 18:29 user01
drwx------. 2 user02 user02 62 Dec 12 18:36 user02
[root@lxy ~]# usermod -l oldboy user05#修改名称
[root@lxy ~]# id user05
id: user05: no such user
[root@lxy ~]# id oldboy
uid=1010(oldboy) gid=2000(user05) groups=2000(user05)
[root@lxy ~]# grep 'oldboy' /etc/passwd
oldboy:x:1010:2000:test:/home/user05:/bin/bash
[root@lxy ~]# usermod -L test#锁定用户
[root@lxy ~]# usermod -U test#解锁用户
userdel#删除用户
选项:
-r#删除用户的家目录及邮件信息
[root@lxy ~]# userdel user02#默认不删除家目录和邮件信息
[root@lxy ~]# grep 'user02' /etc/passwd
[root@lxy ~]# id user02
id: user02: no such user
[root@lxy ~]# ll /home/
total 0
drwx------. 2 test test 62 Nov 27 19:57 test
drwx------. 2 user01 user01 62 Dec 12 18:29 user01
drwx------. 2 888 1002 62 Dec 12 18:36 user02
[root@lxy ~]# userdel -r user01#删除跟用户相关的所有信息
[root@lxy ~]# ll /home/
total 0
drwx------. 2 test test 62 Nov 27 19:57 test
drwx------. 2 888 1002 62 Dec 12 18:36 user02