一、 用户及用户组存在的意义
1.用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
身份 account
授权 author
认证 auth
3A机制,组成系统中最底层的安全架构
组分为两大类:初始族(主组) 附加组
2.用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
二、 用户及用户组在系统中的存在方式
电脑对数字敏感 ----- id
人类对字符串敏感 ----名称
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符
用户组存在的方式就是/etc/group 文件中的一行字符
三、 用户切换
1.用户查看
#whomai 查看当前用户
#id 查看用户id信息
#id username 查看指定用户id信息
#id -u username 查看用户的用户id
#id -g username 查看用户主组id
#id -G username 查看用户所有的组的id
#id -(ugG)n 显示名称(n不能单独使用)
用户id范围: 0-65535
0: ##Linux超级用户ID
1-999: ##Liunx系统自用ID
1000-65535 ##用户级ID
以上ID设定规则都被记录在/etc/login.defs
2.用户切换
#su - username
- 表示切换用户环境(su和su - 的区别)
环境不切换命令会被拒绝
username
root ----> commonuser 不需要后者密码
commonuser ----> root 需要密码
commonuser ----> commonuser 需要密码
注意: 在做用户切换时当使用完毕用户身份及时退出
不要在一个shell中反复执行su命令
在一个shell中反复执行su命令会导致环境错乱
#exit 退出
四、用户涉及到的系统配置文件
/etc/passwd 用户身份信息文件
用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
/etc/group 组身份信息文件
组名称:组密码:组id:组的附加成员
/etc/skel/.* 用户环境配置文件模板
/etc/shadow 用户认证信息文件
/home/username 用户家目录
/var/spool/mail/username 用户邮箱文件
五、用户和用户组建立及删除
#watch -n 1 “tail -n 3 /etc/passwd; /etc/group;ls -l /home”
监控 每一秒 行数 (;表示前后是两个不同的命令)
+c退出
/etc/login.defs 记录用户建立的默认规则
#useradd username 用户建立(新建用户)
#useradd -u id username 指定id(新建用户)
uid 2**16=0-65535
0 超级用户
1-200 系统预留id
201-999 系统用户
1000-60000 用户级用户
#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 组删除
六、用户和用户组的信息管理
#usermod(用户信息更改)
#usermod -l user2 user1 更改用户名称1为2
#usermod -u uid 更改用户id
#usermod -g gid 更改主组id(前提:组id存在)
#usermod -G yyyy 更改用户附加组身份
#usermod -aG yyyy 添加用户附加组身份
#usermod -c “说明”user 更改用户说明
#usermod -d /xx/ user 更改家目录指向
#usermod -md /xx/ user 更改家目录指向同时更改家目录名称
#usermod -s /xx/ user 更改默认shell
#usermod -L 冻结账号
#usermod -U 解锁
#groupmod -g 更改用户组id
七、用户认证信息管理
#watch -n 1 "tail -n 1 /etc/shadow;echo @@@@;passwd -S user
用户名称:用户密码的加密字符:密码使用天数:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)
1.用户名称
#ls -ld file 查看文件权限信息
passwd -S user 查看密码状态
echo———— 分隔符
2.用户加密字符
#更改密码)
#passwd user 只有root可以执行
#passwd 普通用户改密码
#Changing password for user lee.
#Current password: 输入原始密码
#New password: 输入新密码(8位以上无序数字+无序字母组合)
#Retype new password: 重复输入
#passwd: all authentication tokens updated successfully.成功
#冻结认证)
#passwd -l user 冻结账号认证
#passwd -u user 解锁账号认证
#密码删除)
#passwd -d user
3.密码使用天数
从1970-1-1算其到今天的时间
#passwd -e user 密码最后一次被更改的时间清零
#chage -d 0 user 修改默认使用时间为0
chage -d 18636 lee 修改最后一次密码被更改时间
4.密码最短有效期
#passwd -n 1 user 更改最短有效期 lee在1天内不能改密码
#chage -m 1 user 也可更改最短有效期
5.密码最长有效期
#passwd -x 40 user 40天内user用户必须更新密码否则会被冻结
#chage -M 30 user
6.密码过期前警告
#passwd -w 2 user 更改警报期,密码过期警告
#chage -W 1 user
7.认证非活跃天数
#passwd -i 2 user 更改非活跃天数,账号认证最大时间超过后还能用多久
#chage -I 1 user 也可更改非活跃天数
8.账号认证到期时间
#chage -E "2020-05-11" 到2020-5-11这天到期,账号会被冻结
9.未启用功能(用户自定义)
- 非交互式设定密码
-echo westos | passwd --stdin lee 表示设置leed的密码为westos
–echo 显示 stdin 正确输入
八、用户权力下放
ls - l /etc/sudoers 查看权限信息
实验环境:超级用户
①:新建用户lee
②:su - lee切换用户,在lee中确认基本信息:hostname主机名/which useradd文件真实路径
③:切换用户到超级系统,输入#visudo进入编辑(visudo提供检测)
④:输入:100编辑
username hostname=(newusername) [NOPASSWD:] /command, /command1
eg:lee westos_student50.westos.org=(root) [NOPASSWD:]/usr/sbin/useradd, /usr/sbin/userdel
(lee用户在westos_student50.westos.org主机下以root用户身份执行useradd,userdel命令)
⑤:按:wq退出保存
⑥:在lee中输入#sudo useradd 新用户 建立成功(没有 [NOPASSWD:]需要第一次输入密码)
在系统中普通用户时无法执行系统管理命令的
如果需要普通用户执行系统管理动作那么需要
root用户来进行授权
普通用户授权方式 “sudo”
作用:
可以使普通用户使用指定的用户身份运行命令
授权方法:
#visudo 此命令作用是编辑/etc/sudoers文件,并提供语法检测(vim不提供检测)
在文件的100行左右 代码规范性
username hostname=(newusername) [NOPASSWD:] /command, /command1
lee linux.westos.com=(root) /usr/sbin/useradd
lee用户 在linux.wesots.com主机=(用超级用户身份) 执行useradd命令
westos linux.wesots.com = (root) [NOPASSWD:] /usr/sbin/useradd, /usr/sbin/userdel
westos用户 在linux.wesots.com 使用超户 免密执行useradd 和 userdel