一、用户的基本概述
- 用户指的是能够正常登录Linux或Windows系统,只不过Linux支持同一时刻多个用户同时登陆,且登陆后相互之间操作并不影响。
用户为:超级用户与普通用户
多个用户为一个组,一个用户可以加入多个组 - 创建用户的意义在于:
- 系统上的每一个进程(运行的程序),都需要一个特定的用户运行
- 通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。
- 查看用户的信息
id #查看当前用户的信息
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
id xzl_new #查看其他用户的信息
uid=6001(xzl_new) gid=1003(devops) groups=1003(devops),1002(sa),1004(network)
- Linux系统的用户信息一般存放在/etc/passwd,记录了用户的信息,而密码信息被存放在/etc/shadow。(不要轻易修改)
cat /etc/passwd |head -1
root : x : 0 : 0 : root : /root : /bin/bash
#用户名 密码占位符 用户UID 组GID 注释信息 用户家目录 登录shell
cat /etc/shadow -n |sed -n '21p'
21 tom:!!:18325:0:99999:7:2:66257:
#第一列:tom 用户名
#第二列:!! !!表示是无密码,有密码则是一串加密的字符串,*代表无法登录的用户
#第三列:18325 最近一次变更密码,从1970年到现在过了多少天
#第四列:0 密码最少使用天数,0为无限制
#第五列:99999 密码最长使用天数,默认99999不过期
#第六列:7 密码到期前,系统会在密码到期前7天提醒变更密码
#第七列:2 密码到期后,密码过期后2天强制提示变更用户密码。空格则表示无提示
#第八列:66257 账户失效时间,从1970年起,账户在这个日期前可使用,到期后失效
- UID的潜规则
用户UID | 系统中的含义 |
---|---|
0 | 超级管理员,最高权限,有着极强的破坏能力 |
1~200 | 系统用户,用来运行系统自带的进程,默认已创建 |
201~999 | 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统 |
1000+ | 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限 |
二、用户相关命令
-
创建用户
useradd/adduser+用户名称+选项=创建成功
选项:
-u : 指定要创建用户的UID,不允许冲突
-g :指定要创建用户默认组
-G :指定要创建用户附加组,逗号隔开可添加多个附加组
-d :指定要创建用户家目录
-s :指定要创建用户的bash shell
-c :指定要创建用户注释信息
-M :给创建的用户不创建家目录
-r :创建系统账户,默认无家目录
例:创建mike用户,UID5001,基本组为students,附加组为sa,注释信息为’2019 new student’,登录shell:/bin/bash。
groupadd students #创建组
groupadd sa #创建组
useradd mike -u 5001 -g students -G sa -c '2019 new students' -s /bin/bash #创建用户
id mike #检查用户
uid=5001(mike) gid=1001(students) groups=1001(students),1002(sa)
tail -1 /etc/passwd #检查passwd文件
mike:x:5001:1001:2019 new students:/home/mike:/bin/bash
-
修改用户信息
usermod+用户名称+选项=修改成功
选项:
-u :指定要修改用户的UID
-g :指定要修改用户基本组
-G :指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
-aG :追加附加组
-d :指定要修改用户家目录
-s :指定要修改用户的bash shell
-c :指定要修改用户注释信息
-l :指定要修改用户的登陆名
-L :指定要锁定的用户
-U :指定要解锁的用户
**例:**修改mike用户的UID6001,组改为devops,附加组增加一个network,用户家目录改为/opt/mike,登录shell:/bin/sh。
groupadd devops #创建组
groupadd network #创建组
usermod mike -u 6001 -g devops -G network,sa -d /opt/mike -s /bin/sh #修改用户信息
id mike #检查
uid=6001(mike) gid=1003(devops) groups=1003(devops),1002(sa),1004(network)
grep 'mike' /etc/passwd #检查/etc/passwd文件
mike:x:6001:1003:2019 new students:/opt/mike:/bin/sh
#(修改用户信息附加组位置也可以用添加选项 -aG network)
-
删除用户
userdel+用户名+选项=删除成功
选项:-r :删除用户的家目录,以及用户的邮件(工作环境中最好不要用,慎用!) - 检查用户登录情况:who,whoami,w
三、密码的相关命令
- 使用passwd命令对密码进行操作
passwd :给当前用户修改密码
passwd+用户名 :给用户修改密码
(1.普通用户只允许变更自己的密码,无法修改其他人密码,并且密码长度必须8位字符2.管理员用户允许修改任何人的密码,无论密码长度多长或多短。) - 通过passwd --stdin读取输出结果,将结果赋值给用户
echo '123' |passwd --stdin mike #给mike密码设置为123
echo $RANDOM |md5sum |cut -c 2-10 #生成一个随机数并且只要2-10位
- mkpasswd生成随机自负串
选项:
-l :设定密码长度,
-d :数子,
-c :小写字母,
-C : 大写字母,
-s : 特殊字符
yum install expect -y #下载组件
mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2 #生成10个随机数,2个数字,3个小写字母,3个大写字母,2个特殊字符
推荐下载软件:lastpass