1、用户基本概述
1.1什么是用户
用户是指可以正常登录到Linux或windows系统的,或者游戏,qq,微信等都叫做用户
1.2为什么需要用户
系统的每一个进程运行的程序都需要一个特定的用户运行; 通常在公司我们使用普通的用户管理服务器,因为root用户权限过大,容易造成故障;
用户有哪些分类
系统对用户有一个约定,一般我们遵守这个(也可以不遵守)
用户UID | 系统中约定的含义 |
---|
0 | 超级管理员,最高权限 | 1-200 | 系统用户,用来运行系统自带的进程,默认已创建 | 201-999 | 系统用户,用来运行用户安装的程序,所以此类用户无序登录系统 | 1000+ | 普通用户,正常可以登录系统的用户,权限比较小,能执行的任务有限 |
1.3 id 查询用户IDxxi
使用id命令查询当前登录的用户信息
1.4 用户相关的配置文件
当我们创建一个新的用户,系统会将这个用户的信息存放到 /etc/passwd 中,而密码单独存放在/etc/shadow,这两个文件非常重要,不要轻易的删除更改。
1.4.1 passwd文件
/etc/passwd配置文件解释如下图,使用命令man 5 shadow获取帮助
1.4.2 shadow文件
/etc/shadow配置文件解释如下图,使用命令man 5 shadow获取帮助
2.用户相关命令
2.1 添加用户命令useradd
如果想要添加系统的普通用户可以使用useradd命令,使用root账号登录之后就可以添加普通用户了。
选项 | 功能描述 |
---|
-u | 指定要创建的用户的UID,不允许冲突 | -g | 指定要创建用户的基本组 | -G | 指定要创建用户附加组,逗号隔开可添加多个附加组 | -s | 指定要创建用户的bash shell | -c | 指定要创建用户注释信息 | -M | 给创建的用户不创建家目录 | -r | 创建系统账号,默认家目录 |
2.1.1.1 添加用户示例1
。创建shunge用户 。基本组为klc,附加组bbc 。注释信息为 10000 yqyqy,登录shell:/bin/bash``
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
uid=6971(shunge) gid=6974(klc) 组=6974(klc),6975(bbc)
2.1.2 添加用户示例2
。创建一个mmm系统用户[201-999] 。该用户不需要家目录 。该用户不需要登录用户
[root@localhost ~]
[root@localhost ~]
更改用户 mmm 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]
uid=997(mmm) gid=995(mmm) 组=995(mmm)
/bin/bash 可以登录系统 /sbin/nologin 不可以登录系统 然后我们在使用mmm用户登录一下xshell,显示无法登录
2.2 修改用户usermod
我们也可以登录root用户,使用usermod命令修改Linux系统普通用户
选项 | 功能描述 |
---|
-u | 指定修改用户的UID | -g | 指定要修改用户基本组 | -G | 指定要修改用户附加组,使用逗号隔开多个附加组,覆盖原有的附加组 | -a | 必须与-G一起使用追加到某些组中 | -d | 指定要修改用户家目录 | -s | 指定要修改用户注释信息 | -l | 指定要修改用户的登录名 | -L | 指定要锁定的用户 | -U | 指定要解锁的用户 |
2.2.1 修改用户示例1
。修改shunge用户 。uid为5008 。基本组为network,附加组为 sa,sb,sc 。注释信息为new,登录名称为new_shunge
[root@localhost ~]
[root@localhost ~]
uid=5008(new_shunge) gid=6971(network) 组=6971(network),6972(sa),6975(bbc),6976(sb),6977(sc)
2.2.2 修改用户示例2
。修改用户new_shunge用户 。为new_shunge配置密码 。解锁该用户然后再次远程登录
[root@localhost ~]
更改用户 new_shunge 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]
[root@localhost ~]
2.3 删除用户userdel
如果想要删除用户我们也可以登录root用户来删除系统普通用户
2.2.1 删除用户示例
。删除new_shunge 。连同家目录一起删除(-r)
[root@localhost ~]
2.2.1 删除用户示例2
。批量系统中此前创建过的使用无用用户 。使用awk提取无用的用户名称 。使用sed拼接删除用户的命令 。调用userdel命令,连同家目录一起删除
[root@localhost ~]
for i in {1..100}
do
useradd shunge-$i
echo "shunge-$i is create ok"
done
[root@localhost ~]
2.4 设定密码passwd
创建用户后,如需登录用户进行远程登录系统则需要为用户设定密码,设定密码使用passwd 。普通用户只能更改自己的密码,无法修改其他人的密码,并且密码长度必须8位字符 。管理员(root)用户允许修改任何人密码,无论密码多长多短
2.4.2 交互式设定密码
。通过交互式为用户设置密码
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
2.4.2 非交互设定密码
通过非交互设定简单密码
[root@localhost ~]
非交互式设定随机密码
root@localhost ~]
#!/bin/bash
for i in s1 s2 s3
do
pass=$(mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4)
useradd $i
echo "$pass" | passwd --stdin $i &> /dev/nell
echo "user: $i pass: $pass"
echo "user: $i pass: $pass" >> user_pass.txt
done
[root@localhost ~]
user: s1 pass: .kXN
user: s2 pass: LP:a47d!}
user: s3 pass: =9f-"eW:5Y
2.5 系统创建用户流程
。系统在创建用户时,会参考如下两个配置文件: /etc/login.defs /etc/default/useradd 如果在创建用户时指定了参数会覆盖系统默认的配置,如果没有指定参数则遵循默认配置建立用户;
2.5.1 /etc/login.defs
/etc/login.defs主要定义创建用户UID划分规则,密码加密类型,是否创建家目录等;
[root@localhost ~]
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
2.5.2 /etc/default/useradd
/etc/default/useradd主要定义 创建家目录位置; 默认用户的shell类型; 默认从哪个位置拷贝环境变量; 是否创建用户同名邮箱等
[root@localhost ~]
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
2.5.3 用户环境变量丢失案例
当我们不小心在当前用户家目录下执行rm -rf ,* 后再次登录系统会发现命令提示符变成了 -bash-4.1$ 那是因为我们删除了当前用户的环境变量造成的现象,通过以下凡是即可恢复
-bash-4.2$ cp -a /etc/skel/.bash* ./
-bash-4.2$ exit
默认linux创建用户,会从 /etc/skel 目录中拷贝对应的环境变量,由 /etc/defaults/useradd 配置文件定义,所以只需要从该目录下拷贝相应的环境变量即可恢复故障
3.用户组基本概述
3.1 什么是用户组
。组是一种逻辑层面的定义 。逻辑上就是将多个用户归纳为一个组,当我们对组操作,其实相当于对组内的所以用户操作
|