前言
本章的学习目标为
- Linux系统中的用户基础讲解
- Linux系统中的用户的切换
- Linux系统中的用户和组的管理和创建
- Linux系统中用户认证管理
- Linux系统中的权力下放
一、用户基础讲解
- 用户存在的意义
为了解决系统资源有限的问题,所以出现了用户
account 用户
author 认证
auth 授权
用户的存在在于系统中的底层安全机制的存在意义,被称之为aaa机制 - 用户和组的存在意义
组是一个逻辑容器,用于对于用户进行同意授权。同时进行对统一的用户进行管理。 - 用户和组的存在方式
用户:用户使用id的方式进行存在在系统之中,每个id有且只有一个在一个系统之中,且每个用户的id就是/etc/passwd文件中的一行文件
组:组存在的方式是以/etc/group文件下的一行文字进行排序的
二、用户的切换
- 命令演示
表示仅仅其切换用户身份,但是不进行用户资源的切换。
su westos
表示切换到westos用户同时切换到其默认的家目录下,可以调用他的资源
su - westos
表示查看当前用户
whomai
2.用户id讲解
表示查看当前用户的id
id ####表示显示当前用户的id信息
id -u ####表示查看当前用户的id
id -g ####表示查看当前用户的组id
id -G ####表示查看当前用户的私有组的id
id -n ####表示显示名称
系统中的id
超级用户id####0
系统自用用户id#####1-999
用户级id#####10000-65535
3.用户的配置文件讲解
/etc/passwd ###为用户的信息配置文件
/etc/group ###为系统组的配置文件
/etc/shadow ###为系统的密码配置文件
/etc/skel/* ###均为用户配置环境模板
/home/username ###均为用户的家目录
/var/spool/mail/username ###用户的家目录邮箱
三、用户和组的建立和管理
- 用户的建立和组的建立
用户的建立和删除
useradd westos ####表示建立用户westos
useradd -u 8888 westos ####表示建立用户westos同时指定用户的id为8888
useradd -g 8888 westos ####表示建立用户westos同时指定用户gid为8888
useradd -M westos ####表示建立用户westos不建立家目录(一般系统账号不进行家目录的建立)
useradd -S /bin/bash westos ####表示将建立westos账号同时将指定shell为/bin/bash
useradd -G 72 westos ####表示将建立westos这个用户的同时指定72这个组为附属组
useradd -d /home/Linux westos ####表示建立westos这个账号同时将家目录的指向为/home/Linux
useradd -c "zhegeshi shuoming wenzi de quyu " westos ####表示新建westos时指定说明文字
userdel westos ####表示删除westos这个账号,但是不会删除配置文件。
userdel -r westos ####表示删除westos这个账号,同时删除这个配置文件。
组的建立和删除
groupadd linux ####建立主组Linux
groupadd -g 8888 Linux ####建立主组Linux并且指定id为8888
groupdel Linux ####表示删除Linux这个组并且
2.用户组的信息管理
watch -n 1 "tail -n 3 /etc/shadow /etc/passwd" ####表示每一秒执行一次冒号中的命令
watch -n 1 "tail -n 3 /etc/shadow ; echo ======= ; tail -n 3 /etc/passwd" ####如果命令是多条的话可以使用;隔开在执行
usermod -u 8888 westos ####表示将用户westos的uid改为8888
usermod -g 8888 westos ####表示将用户westos的初始组改为8888(前提是已经有8888这个组)
usermod -G 72 westos ####表示将用户westos的私有组改为72这个前提是这个组已经建立了
usermod -aG 72,36 westos ####表示将72和36两个组添加到westos这个用户上去
usermod -l westos Linux ####表示将westos用户的名字改为Linux
usermod -d /home/linus westos ####表示将westos用户的家目录更改为/home/linux
usermod -md /home/linux westos ####表示将westos用户的家目录指向更改到/home/linux 同时将修改家目录名称
usermod -L westos ####表示westos这个用户的账号冻结
usermod -U westos ####表示将westos这个用户的账号解冻
groupmod -g 8888 westos ####表示把westos这个组的gid改为8888
四、用户认证的管理
3.用户认证信息管理
####/etc/shadow
用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:
账号非活跃期:账号到期时间:用户自定义(这一位一般不使用改位置)
名词解释
密码最长有效期:密码可以使用的最长期限
密码最短有效期:密码使用的最短的期限(即限定了多久可以进行修改一次密码)
密码过期前警告天数:密码过期前几天登录时会首先提示需要更改密码
非活跃天数:即密码已经过期但是用户依旧存在使用前需要修改密码才可登录
用户的加密字符:即用户的密码进行了加密,加密方式为sha512对称加密方式。
密码最后一次被修改的时间:即修改密码的时间,从1970年1月1号开始计算以天为单位。
用户到期时间:即用户到这一个指定时间后,用户自动冻结。
passwd westos ###超级用户可以执行该命令表示更爱westos用户的密码
passwd -n 1 westos ####表示更改密码最短有效期为1天(这一位如果为0的话表示用户上线就需要更改密码才能上线)
passwd -m 8888 westis ####表示更改密码的最长有效期为8888
passwd -S westos ####表示查看当前用户的密码状态
passwd -e 1 westos ####表示将密码的最后一次修改时间更改为1(从1970年1月1号开始计算时间)
passwd -i 7 westos ####表示将密码的非活跃天数更改为7天
passwd -w 5 westos ####表示将密码的过期前警告天数改为5天
passwd -u westos ####表示解冻westos用户的密码
passwd -l westos ####表示冻结westos用户的密码(冻结强度较低,两个解锁方式通用)
chage -I 7 westos ####表示用户westos修改非活跃天数为7天
chage -W 7 westos ####表示修改用户westos密码过期前警告天数为7天
chage -m 1 westos ####表示修改用户的密码最短有效期为1天(即一天内无法更改密码)
chage -M 8888 westos ####表示修改用户密码的最长有效期为8888
chage -E "2027-12-12" westos ####表示修改用户认证的冻结时间(用户的认证信息到这一天会自动冻结)
chage -U westos ####表示将westos账户的认证进行解锁
chage -L westos ####表示将westos账户的认证信息进行冻结(这个冻结强度更高,但是解冻命令均可解冻)
chage -d westos ####表示将westos账户的认证信息删除(即账号没有密码也可以直接登录)
五、用户的权力下放
visudo ####直接打开文件后进行文件的编辑以及权力的下放
权力下方中代码书写的规范性
username hostname=(newusername) NOPASSWD: /command, /command1
用户名 主机位置 使用那种身份 免密执行 那些命令
lee linux.westos.com=(root) /usr/sbin/useradd
westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
####命令如有多条必须使用", "间隔开。
####nopasswd必须为大写使用": "隔开