一、什么是用户?
能够正常登录的账号用户
linux支持多个用户同一时刻登陆系统, 互相之间不影响
windows只允许同一时刻不允许多个用户登录
用户分为普通用户和超级用户
普通用户能逻辑上分为一个组 ,一个用户也能隶属于多个组
二、用户的作用,为什么要创建用户
1、系统上的每一个进程都需要一个特定的用户运行
2、root权限太大容易造成故障
三、查看用户
1、查看当前登录的用户信息
[root@oldboy ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@oldboy ~]# id Jgb
uid=6666(Jgb) gid=1001(students) groups=1001(students),1002(Jgb)
2、每一个进程都会由一个用户身份运行
[root@oldboy ~]# ps aux|less
root 2 0.0 0.0 0 0 ? S 11:25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11:25 0:00 [ksoftirqd/0]
四、用户信息的位置
/etc/passwd 存放用户的信息,但没有密码信息。
/etc/shadow 存放密码信息。
1、/etc/passwd
[root@oldboy ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
以:为分隔符
#第一列 用户名称
#第二列 密码占位符
#第三列 用户UID
#第四列 组GID
#第五列 注释信息
#第六列 用户家目录
#第七列 登录shell信息
2、/etc/shadow
[root@oldboy ~]# tail -1 /etc/shadow
Jgb2:!!:18113:0:99999:7:::
以:为分隔符
#第一列 用户名称
#第二列 密码,!!为无密码
#第三列 从1970年到最近一次修改密码的天数
#第四列 密码最少使用天数,0无限制
#第五列 密码最长使用特数,默认999999不过期
#第六列 密码到期前七天提醒变更密码
#第七列 密码到期后两天强制提醒变更用户密码
#第八列 账户失效时间,从1970年起,用户在此日期内可用
#第九列 保留字段(未使用)
五、系统对用户的约定
用户UID | 系统中约定的含义 |
---|---|
0 | 超级管理员,最高权限,有着极强的破坏能力 |
1~200 | 系统用户,用来运行系统自带的进程,默认已创建 |
201~999 | 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统 |
1000+ | 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限 |
六、用户相关命令
1、新增用户
useradd命令 adduser命令软链接指向useradd命令
#选项
# -u 指定要创建用户的UID,不允许冲突
# -g 指定要创建用户默认组
# -G 指定要创建用户附加组,逗号隔开可添加多个附加组
# -d 指定要创建用户家目录
# -s 指定要创建用户的bash shell
# -c 指定要创建用户注释信息
# -M 给创建的用户不创建家目录
# -r 创建系统账户,默认无家目录
1、创建Jgb用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash
[root@oldboy ~]# groupadd sa
[root@oldboy ~]# groupadd students
[root@oldboy ~]# useradd -u 5001 -g students -G sa -c "2019 new student" -s /bin/bash Jgb
2、创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
[root@oldboy ~]# useradd mysql -M -s /sbin/nologin
[root@oldboy ~]# useradd -r dba -s /sbin/nologin
2、修改用户信息
usermod命令
#选项
# -u 指定要修改用户的UID
# -g 指定要修改用户基本组
# -G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
# -d 指定要修改用户家目录
# -s 指定要修改用户的bash shell
# -c 指定要修改用户注释信息
# -l 指定要修改用户的登陆名
# -L 指定要锁定的用户
# -U 指定要解锁的用户
1、修改Jgb用户uid、gid,附加组
[root@oldboy ~]# groupadd -g 5008 aa
[root@oldboy ~]# groupadd -g 5009 bb
[root@oldboy ~]# usermod -u 6001 -g5008 -a -G 5009 Jgb
2、修改Jgb用户的注释信息, 用户家目录, 登录shell, 登录名
[root@oldboy ~]# usermod -c "2019 new student" -md /bgx -s /bin/sh -l JGB Jgb
3、锁定用户[扩展]
[root@oldboy ~]# echo "123" |passwd --stdin change_bgx
[root@oldboy ~]# usermod -L JGB #锁定后会无法登陆系统
4、解锁用户[扩展]
[root@oldboy ~]# usermod -U JGB
PS: 当然还有很多命令可以查看用户的信息,以下简单列举一些,但都是我们常用,所以了解即可
-
使用finger命名查询用户信息以及登录信息,示例: finger UserName
-
使用chfn命令修改用户信息,示例: chfn UserName
-
使用chsh命令修改用户登录Bash Shell,示例: chsh UserName
-
使用who、whoami、w检查用户登陆情况
3、删除账户
userdel命令
#选项 -r 删除用户同时删除它的家目录
1、删除user1用户,但不删除用户家目录和 mail spool
[root@oldboy ~]# userdel user1
2、-r参数可以连同用户家目录一起删除(慎用)
[root@oldboy ~]# userdel -r user1
image.png
网友评论