1 用户及用户组存在的意义
1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
3A机制,3A机制组成系统中最底层的安全架构
2)用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
- 电脑对数字敏感 id
- 人类对字符串敏感 名称
- id <-------> 名称 必须要记录到文件当中用户才能存在
- 用户就是/etc/passwd文件中的一行字符
- 用户组存在的方式就是/etc/group 文件中的一行字符
3.用户切换
1)用户查看
- whoami #显示正在用的用户
- id ##查看用户id信息
id westos #显示用户所有id
id -u westos #用户的uid
id -g #用户初始(主)组id
id -G #用户所有的组id
id -n #显示名称
id -Gn #显示用户所有组的名称
id -gn #用户主组名称
id -un #用户的用户名称 - “uid #范围2**16=0-65535
0 #表示超级用户
1-200 #系统预留id
201-999 #系统用户
1000-60000 #用户级用户
##/etc/login.defs 记录用户建立的默认规则”
2)用户切换
su - username #切换用户环境
su - westos #切换到普通用户,普通到普通需密码,超级到普通则不需密码
su - root #切换到超级用户,由普通到超级需密码
exit #退出切换,不要太过频繁切换,会系统环境错乱
4.用户涉及到的系统配置文件###
- /etc/passwd ##用户身份信息文件
#用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell - /etc/group ##组身份信息文件
#组名称:组密码:组id:组的附加成员 - /etc/skel/.* ##用户环境配置文件模板
- /etc/shadow ##用户认证信息文件
- /home/username ##用户家目录
- /var/spool/mail/username ##用户邮箱文件
5.用户和用户组建立及删除###
-
监控用户建立的命令
watch -n 1 “tail -n 3 /etc/passwd /etc/group ; ls -l /home/” #监控 -n 1 表示每一秒监控一次;监控时想退出,按ctrl +c退出
-
useradd 用户名称 #建立用户
useradd -u id 用户名称 #建立指定id用户
useradd -g id username ##主组id
useradd -G id username ##附加组id
useradd -d dir username ##指定用户家目录
useradd -M username ##建立用户时不建立家目录
useradd -c word username ##指定用户说明
useradd -s shell username ##指定用shell -
userdel -r username #删除用户,因为还要删除家目录,属于附带,所以用-r
- groupadd groupname #建立用户组
groupadd -g id groupname #指定组名称 - groupdel groupname #删除用户组
6.用户和用户组的信息管理###
- usermod -l #更改用户名称
usermod -u #更改用户id
usermod -g #更改主组id
usermod -G #更改用户附加组身份
usermod -aG #添加用户附加组身份
usermod -c #更改用户说明
usermod -d #更改家目录指向
usermod -md #更改家目录指向同时更改家目录名称
usermod -s #更改默认shell
usermod -L #冻结账号
usermod -U #解锁
- groupmod -g ##更改用户组id
7.用户认证信息管理
#/etc/shadow 文件内容说明
#用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:
账号非活跃期:账号到期时间:用户自定义(为使用)
- watch -n 1 “tail /etc/shadow ; passwd -S lee” #可用来监控密码信息
1.用户名称
passwd -S lee ##查看密码状态
2.用户加密字符
#更改密码 - passwd lee ##只有root可以执行 “echo 123 | passwd --stdin lee”
- passwd ##普通用户改密码
Changing password for user lee.
Current password: #输入原始密码
New password: ##输入新密码(8位以上无序数字+无序字母组合)
Retype new password: ##重复输入
passwd: all authentication tokens updated successfully.
#冻结认证
- passwd -l lee ##冻结账号认证
- passwd -u lee ##解锁账号认证
#密码删除
- passwd -d lee
#密码使用天数
这里从1970-1-1算其到今天的时间
- passwd -e lee ##修改默认使用时间为0
chage -d 0 lee ##账号必须改密码才能登陆系统
#密码最短有效期
- passwd -n 1 lee ##lee在1天内不能改密码
chage -m 1 lee
#密码最长有效期
- passwd -x 40 lee
chage -M 30 lee ##40天内lee用户必须更新密码否则会被冻结
#密码过期警告
- passwd -w 2 lee
chage -W 1 lee ##账号过期前警告时间
#认证非活跃天数
- passwd -i 2 lee
chage -I 1 lee ##账号认证最大时间超过后还能用多久
#账号认证到期时间
- chage -E “2020-05-11” ##到2020-5-11这天账号会被冻结
8.用户权力下放
#在系统中普通用户时无法执行系统管理命令的
#如果需要普通用户执行系统管理动作那么需要
#root用户来进行授权
-
普通用户授权方式 “sudo”
作用:可以使普通用户使用指定的用户身份呢运行命令
授权方法: -
visudo #此命令作用是编辑/etc/sudoers并提供语法检测
#下调命令,在第100行输入
普通用户名称 westoslinux.westos.org=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel #赋予普通用户(用超级用户身份)创建用户,删除用户的权力,免密 -
hostname #得到westoslinux.westos.org,是指超级用户主机名称
-
which useradd #查看命令绝对路径,得到/usr/sbin/useradd
-
sudo useradd test #利用赋予普通用户的权力,在普通用户下建立子用户test
-
测试:可以转换到另一个用户进行测试,发现不可以创建/删除用户,但转换到所指定的用户,可进行此操作
补充
1、visudo
#输入按enter健后在第100行输入
lee westoslinux.westos.org=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd, /usr/sbin/usermod 就建立了在系统中自由的管理用户
2、
useradd -s /sbin/nologin -M linux #建立系统账号linux,不能被操作者使用