Linux基础模块--day7(用户管理1)

Linux运维(基础模块)--day7

Linux系统用户管理

用户存在的意义:

  1. 系统上的每一个进程都需要特定的用户运行
  2. 每一个文件都有特定的用户拥有
  3. 访问文件或目录受到用户的限制
  4. 进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关

查看当前用户信息

[root@AliceServer ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

UID的分类:

UID 用户
0 超级管理员
1-200 系统用户,由系统分配给系统进程使用
201-999 系统用户,用来运行服务的账户,不需要登陆,动态分配
1000+ 常规用户

*在Linux7之前的惯例是, UID1-499用于系统用户. 而UID500+则用于普通用户

组类别

基本组: 优先使用基本组, 用户只能属于一个基本组, 用户默认基本组
附加组: 基本组不能满足授权要求, 创建附加组, 用户可以属于多个附加组
私有组: 创建用户时如果没有指定基本组, 系统会创建和用户名相同的组名

用户管理

账户信息存放在/etc/passwd, 账户密码密码信息保存在/etc/shadow, 这两个文件是linux系统中最重要的文件之一, 如果没有这两个文件或者文件出现问题, 会导致无法正常登录linux系统

/etc/passwd

>head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash

由':'分隔成7段

  1. 用户名称
  2. 密码占位符
  3. 用户的UID
  4. 用户的基本组GID
  5. 用户注释
  6. 用户家目录
  7. 用户登陆shell

/etc/shadow

>cat /etc/shadow | grep root
root:$6$Eof4RgKtYZksm5nN$uwfZfTBzsxmloBms4Xc5LJ4tTbVBkJ/s40k.Ke40gcXLVU/iO0sEtgb6lbJ7ThSjcOlHndck5jHJkB/edrMRa0::0:99999:7:::

由':'分隔成9段

  1. 用户登录名
  2. 加密后的密码
  3. 最近一次修改密码的时间
  4. 密码最少使用几天
  5. 密码最多使用几天
  6. 密码到期前警告期限
  7. 密码到期后保持活动的天数
  8. 账户到期时间
  9. 标志

密码格式

$a$b$c

  • a 加密算法
  • b salt随机加密值
  • c 加密后的值

使用chage更改用户密码的使用情况

-d	设置最近一次更改密码的时间,设置0为下次登录强制修改密码
-m	设置用户2次密码使用的最小天数
-M	设置用户2次密码使用的最大天数
-W	设置用户密码的警告过期天数
-I	设置密码过期天数后,密码为失效状态
-E	设置用户过期时间,账号失效后无法登录
-l	显示线上

eg:

# 添加用户
useradd user1
tail -1 /etc/passwd
>>>user1:x:1000:1000::/home/user1:/bin/bash
# 更改密码
echo 123 | passwd --stdin user1
tail -1 /etc/shadow
>>>user1:$6$BQfGfOJg$DePPzuE96zlUZo9T0zHLfRQpDMFM7x9bX3tOnHfY.QXU2ksTzzJZC6xqnhZQFaTQ9kBdZUn8wchXH5Yh22NKb.:18882:0:99999:7:::
# 查看密码详情
chage -l user1
最近一次密码修改时间					:9月 12, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7
## 设置最近一次修改密码的时间
chage -d '2020-02-20' user1
## 设置最短密码使用的时间
chage -m 2 user1
#查看密码表
tail -1 /etc/shadow
>>>user1:$6$BQfGfOJg$DePPzuE96zlUZo9T0zHLfRQpDMFM7x9bX3tOnHfY.QXU2ksTzzJZC6xqnhZQFaTQ9kBdZUn8wchXH5Yh22NKb.:18312:2:99999:7:::
## 设置最长密码使用时间
chagre -M 15 user1
## 设置密码过期警告
chage -W 6 user1
## 设置密码过期时间
chage -I 5 user1
## 设置用户过期时间
chage -E '2099-12-31' user1

用户命令

添加用户前需要确认

  • 用户的默认组是否有特殊要求
  • 用户是否允许登陆
  • 用户的密码策略
  • 用户的有效期
  • 用户的UID是否有特殊要求
    1. 使用useradd命令新增用户
    2. adduser软链接是指向useradd

创建用户

# 创建用户参数
-u	指定用户的UID(不能和现有的冲突)
-g	指定用户默认基本组
-G	指定用户附加组,用逗号隔开添加多个附加组
-d	指定用户家目录
-c	指定用户的注释信息
-M	不建立家目录
-s	指定用户默认shell
-r	创建系统账户,没有家目录

eg:创建user用户,指定UID5001,基本组student,附加组sa,dba,注释信息:'new student',shell:bash

# 创建用户组
groupadd sa
groupadd dba
groupadd student
# 创建用户
useradd -u 5001 -g student -G sa,dba -c "new student" -d /home/user -s /bin/bash user
# 查看用户信息
tail -1 /etc/passwd
>>>user:x:5001:1003:new student:/home/user:/bin/bash
# 创建系统用户
useradd -M -s /sbin/nologin mysql
useradd -r -s/sbin/nologin dba

更改用户组

使用usermod修改

# usermod参数
-u	修改用户的UID
-g	修改用户所属的基本组GID
-G	修改用户的附加组,使用逗号隔开,覆盖原有附加组
-a	追加更多的附加组和-G一起使用 -aG:追加附加组
-md	家目录迁移, 和-d一起使用
-d	指定用户家目录的位置
-c	修改用户注释信息
-s	更改用户使用的shell
-l	更改用户的登录名
-L	锁定用户
-U	解锁用户

使用finger命令查看用户

yum install -y finger
finger root

用户创建

用户创建原理: ==Linux用户创建会默认读取/etc/default/useradd的配置文件, 如果指定参数,使用指定的参数, 如果不指定参数会默认使用/etc/default/useradd的参数, 当使用useradd时, 用户的家目录会产生.bash_*的文件, 这些文件默认都是从/etc/skel目录复制, 如需变更环境拷贝目录站点可修改/etc/default/useradd的文件

如果执行useradd,指向了参数, 就会覆盖/etc/defaults/useradd的默认配置

# 和chage -l user1看到的一样,只不过是不一样的形式
egrep -v "^#|^$" /etc/login.defs

/etc/default/useradd文件解释

cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home  # 用户的家目录建在/home
INACTIVE=-1  # 是否启用账号过期, -1表示不启用
EXPIRE=  # 账号终止日期, 不设置表示不启用
SHELL=/bin/bash  # 新用户默认使用的shell类型
SKEL=/etc/skel  # 配置用户家目录的默认文件存放路径
CREATE_MAIL_SPOOL=yes  # 创建mail文件

密码管理

创建完账户后, 默认的没有密码的, 所以该账户无法登录操作系统, 只有在passwd中设置号密码才可以登录

密码策略

  1. 长度大于10
  2. 密码中应该包含大写,小写以及特殊符号(!, @, #)等
  3. 不规则性

Be Carefu

  1. 普通用户只能更改自己的密码
  2. 管理员root可以修改任何人的密码
  3. 在使用passwd修改密码时, 不指定用户名, 则修改当前用户的密码

随机密码生成工具

  1. 系统内置
  2. mkpasswd密码生成工具
# 系统内置
echo $RANDOM | md5sum | cut -c 1-10
# mkpasswd工具
# 安装扩展包
yum install -y expect
# 生成密码
mkpasswd -l 15 -d 3 -C 5  # -l: 密码位数(默认7位), -d: 数字, -c: 小写字母, -C: 大写字母
posted @ 2021-09-12 21:48  Alice只敲代码不秃头  阅读(74)  评论(0编辑  收藏  举报