五、组命令管理
组管理信息保存在/etc/group 和/etc/gshadow
head -2 /etc/group
root:x:0:
bin:x:1:bin,daemon
由":"分割,组成:
1.组账户名称 # 组名称
2.密码占位符 # 组的密码(/etc/gshadow)
3.组GID # 组GID信息
4.组成员 # 仅显示附加成员,基本成员不显示
head -2 /etc/gshadow
root:::
bin:::bin,daemon
由":"分割,组成:
1.组账户 # 组名称
2.密码占位符 # 组密码
3.组管理员 # 组管理员
4.组成员 # 附加成员
使用groupadd新增组
groupadd [-g GID] groupname
# 不指定GID,默认从1000开始
groupadd gtest
tail -1 /etc/group
groupadd -g 5555 gtest2
tail -1 /etc/group
"-r" 创建系统组,gid:201-999
groupadd -r test_test
tail -1 /etc/group
使用groupmod命令修改组
groupadd oldboy_test
tail -1 /etc/group
#修改组ID
groupmod -g 5555 oldboy_test
tail -1 /etc/group
# 修改组名
groupmod -n oldboy_modify oldboy_test
tail -1 /etc/group
使用groupdel删除组
没有特殊选项,若一个用户有基本组和附加组,只能删除附加组,不能删除基本组
groupdel oldboy_modify
# 删除用户附加组
tail -1 /etc/group
groupdel devops
id oldboy
# 无法删除用户基本组
tail -n 1 /etc/group
groupdel network_sa
#只有删除用户或用户变更后,方可删除该组
# gpasswd设置组密码
groupadd devops
gpasswd devops
# 使用newgrp命令切换基本组身份
id oldboy
# 切换普通用户
su - oldboy
newgrp devops
六、身份切换
shell 分类
交互式shell,等待用户输入执行提交的命令,exit退出
非交互式shell,执行shell脚本,脚本执行结束shell自动退出
登陆shell, 需要输入用户名和密码才能进入shell, su - oldboy
查看登陆shell
pstree
#临时设置
export PS1='[\h@\u \t]#'
bash配置文件
Bash配置文件保存用户的工作环境
个人配置文件:~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
profile类文件,设定环境变量,登陆前运行的脚本和命令
bashrc类文件,设定本地变量,定义命令别名
个人配置优先于全局配置
# 登陆式shell配置文件应用顺序
/etc/profile > /etc/profile.d/*.sh > ~/.bash_profile > ~/.bashrc > /etc/bashrc
# 非登陆式shell配置文件执行顺序
~/.bashrc > /etc/bashrc > /etc/profile.d/*.sh
# 验证登陆shell和非登陆shell,配置文件执行顺序,在每个配置文件中加入“echo”
# 最后通过登陆shell和非登陆shell方式登陆Linux,即可验证执行顺序
如何验证全局配置和个人配置优先级。
su - 代表进入登陆式shell,否则进入非登陆式shell
普通用户su - 不加username时,可以切换到root用户
root用户su - 切换到普通用户,无需密码
七、sudo提升权限
su切换用户身份,如果每个普通用户都能切换到root身份。
sudo,执行一个root才能执行的命令,需要输入用户自己的密码。
默认只有root用户可以使用sudo命令,普通用户需要配置/etc/sudoers
centos7提权方法:
usermod -G wheel oldboy
# 日志审计
sudo tail -f /var/log/secure
yum install sudo -y
visudo
#默认
root ALL=(ALL) ALL
# 新增
用户名 主机名 角色名 命令名
oldboy ALL=(ALL) bin/rm, bin/cp
oldboy ALL=(ALL) NOPASSWD:/bin,cp, /bin/rm # 不需要密码执行命令
# root默认就拥有sudo最高权限,新增行让oldboy用户拥有sudo权限
# 检查配置文件语法
visudo -c
su - oldboy
sudo useradd abc
sudo -u test1 touch test2.txt #管理员登陆模式下
案例:
要求oldboy用户能够添加删除更改改用户属性、密码,不包括root用户
visudo
oldboy ALL=(ALL) ALL /usr/sbin/useradd*
which useradd
which userdel
which usermod
visudo -c
sudo -l
sudo useradd abc
sudo usermode -u 4000 abc
oldboy ALL=(ALL) /usr/sbin/user*, /usr/bin/passwd, !/usr/sbin/usermode * root, !/usr/bin/passwd root
sudo usermod -L root #不能修改ROOT属性
sudo passwd -d root #可以清除密码
sudo日志审计
通过sudo 和 syslog配合实现对用户进行权限的日志审计并记录日志几种管理,实施后,让所有运维和开发执行的sudo命令都有记录可查。
sudo日志审计,真闷针对sudo明星的系统用户记录其执行的命令相关信息。
安装sudo和rsyslog
yum install -y sudo rsyslog
rpm -qa rsyslog sudo
配置/etc/sudoers记录日志路径
echo "Defaults logfile=/var/log/sudo.log" >> /etc/sudoers
查看追加的日志配置
tail -1 /etc/sudoers
/var/log/mesage #公共日志
/var/log/security #安全日志
用户邮箱
/var/spool/mail/用户名
用户模板目录
/etc/skel
用户初始化文件
/etc/defaults/useradd
/etc/login.defs
组信息文件
/etc/group
/etc/gshadow
登陆环境配置文件
/etc/profile /etc/profile.d/* ~/.bash_profile
/etc/bashrc ~/.bashrc
用户查看命令
id w who whoami finger last
用户管理命令
useradd usermod userdel passwd
组查看命令
groups
组管理命令
groupadd groupmod groupdel gpasswd