青春须早为,岂能长少年。这篇文章主要讲述用户组管理及提权相关的知识,希望能为你提供帮助。
[TOC]
用户组管理
# 相关文件
/etc/group
[root@zxw < sub> ]# cat /etc/group
root:x:0:
# 1:组的名字
# 2:组密码占位符
# 3:GID
# 4:显示该组的附加成员
/etc/gshadow
[root@zxw < /sub> ]# cat /etc/gshadow
root:::
# 1:组名字
# 2:组密码(空和!表示没有密码)
# 3:组管理员
# 4:显示该组的附加成员
# 相关命令
# 增
group [选项] 组名字
# 注意:创建组的时候不会创建同名用户
# 选项
-g:指定组的GID
-r:指定gid范围201-999之间的系统组
# 注意:创建组的时候不会创建同名用户
举例
[root@zxw < sub> ]# groupadd diyizu
[root@zxw < /sub> ]# tail -1 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@zxw < sub> ]# tail -1 /etc/group
diyizu:x:1005:
# -g
[root@zxw < /sub> ]# groupadd dierzu -g 10010
[root@zxw < sub> ]# tail -1 /etc/group
dierzu:x:10010:
# -r
[root@zxw < /sub> ]# groupadd disanzu -r
[root@zxw < sub> ]# tail -1 /etc/group
disanzu:x:996:
# 删
groupdel
举例
[root@zxw < /sub> ]# groupdel disanzu
# 改
groupmod
# 选项
-g:修改组的gid
-n:修改组的名字
举例
[root@zxw < sub> ]# cat /etc/group
diyizu:x:1005:
dierzu:x:10010:
[root@zxw < /sub> ]# groupmod diyizu -g 1006
[root@zxw < sub> ]# cat /etc/group
diyizu:x:1006:
dierzu:x:10010:
[root@zxw < /sub> ]# groupmod diyizu -n hhh
[root@zxw < sub> ]# cat /etc/group
dierzu:x:10010:
hhh:x:1006:
# 查
[root@zxw < /sub> ]# cat /etc/group
用户身份切换
linux系统中,有时候普通用户有些事情是没办法操作,除非是root管理员用户才能做到。这时候就需要临时切换到
root管理员身份来做事了。那么在学习如何切换用户之前,我们先来了解下用户工作环境。
如何在普通用户的情况下,完成日常工作
1)su切换用户,使用普通用户登陆,然后使用su命令切换到root。
优点:简单,方便
缺点:需要知道root密码,不安全,切换到root没有日志审计功能
2)sudo提权,当需要使用root权限时,进行提权,而无需切换至root用户
优点:安全,方便
缺点:复杂
su命令前戏
shell的种类
- 交互式shell
- 非交互式shell
- 登陆式shell
- 需要输入用户名和密码,才可以登陆
- 非登陆式shell
- 不需要输入用户名和密码,就可以登陆
系统的环境变量文件
# 局部环境变量
< sub> /.bashrc
< /sub> /bash_profile
# 全局环境变量
/etc/porfile
/etc/porfile.d/*.sh
/etc/bashrc
# 加载顺序
/etc/profile
/etc/profile.d/*.sh
< sub> /.bash_profile
< /sub> /.bashrc
/etc/bashrc
# 切换用户,使用命令su [-] username
su命令后面跟-代表进入登陆式shell 如果su命令后不加-代表进入非登陆式shell,他们之间的区别在于加载的环境变量不一样。
# 普通用户su -代表直接切换至root用户身份, 但需要输入root用户密码。
# 超级管理员root用户使用su - username切换普通用户不需要输入任何密码。
# su -
# 默认切换回root用户
# 选项
# -c
su - root -c "命令"
(# 意思是当前的用户以root身份执行这个命令,但是不会把用户切换过去-c 不会识别系统别名)
用户身份提权
suod命令提权
什么是suod
suod就是普通用户可以提权,执行root用户可执行的命令
为什么要用到suod
如果在公司中入职后,领导给运维的用户是普通用户,但是有些命令只能root执行
如何使用suod
# 1,系统的超级管理员(root)需要做suod的配置(发一个兵符给普通用户)
# 2,普通用户只需要,在要执行的命令前,加上suod即可
sudo的配置(root发兵符的过程)
# 没有sudo则需要安装
yum install -y sudo
# sudo的配置文件
[root@zxw < sub> ]# vim /etc/sudoers
# 用户名所有主机=(所有角色)所有命令的执行权限
rootALL=(ALL)ALL
zxwALL=(ALL)/bin/cp
#普通用户也不需要输入密码了
zxwALL=(ALL)NOPASSWD:ALL
# 推荐修改sudo的方式
[root@zxw < /sub> ]# visudo
# 选项
-c:检查sudoers文件的语法
# 免密切换到root用户,就算不免密,也是输入
sudo su -
# 报错
sudo: ll: command not found
(# 原因:ll是别名,sudo不走别名,只认识系统命令)
# 普通用户以root身份执行命令
举例
[zxw@zxw < sub> ]$ mkdir /root/1.txt
mkdir: cannot create directory ‘/root/1.txt’: Permission denied
[zxw@zxw < /sub> ]$ ls -l /root/
ls: cannot open directory /root/: Permission denied
[zxw@zxw < sub> ]$ sudo ls -l /root/
total 0
[zxw@zxw < /sub> ]$ sudo mkdir /root/1.txt
[zxw@zxw < sub> ]$ sudo ls -l
total 0
-rw-rw-r--. 1 zxw zxw 0 Apr9 20:25 1.txt
# sudoers配置其他别名
Cmnd_Alias:命令别名
Host_Alias:主机别名
User_Alias:角色别名
# 主机的别名主机名字主机名
Host_Alias FILESERVERS = localhost, web01
(# 相当于把他们拉到这个组里,只有这个组里的成员才拥有它的权限)
Cmnd_Alias ZXWCMD = /bin/cp,/bin/mv(# 给命令设置别名)
Cmnd_Alias ZXWUNCMD =!/bin/rm,!/bin/su(# 加 !号就是不可以执行这个命令)
# 给组发兵符
# %wheelALL=(ALL)NOPASSWD: ALL
usermod 用户名 -G 提权组
举例
[root@zxw < /sub> ]# usermod zxw2 -G whell
# 重点
# 1.会修改visudo,添加用户提权
# 2.给用户免密执行sudo的权限
# 3.自定义用户的可执行命令,和不可执行命令
# 4.给组分配提权的权限
# 5.提权不用修改visudo,只需要加入wheel组,即可
注意:除非企业中有要求,哪些命令需要用,哪些不能使用
?sudo执行流程
【用户组管理及提权】
推荐阅读
- Palo Alto Global Protect 使用Cisco VPN Client
- 4.8练习题
- Redis(开发与运维):13---哈希/散列对象
- JNA实现远程线程注入
- Kubernetes——对外服务之Ingress
- Linux 内核 内存管理Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )
- 我的Linux,我做主!IT技术专家带你飞--银河麒麟 kylin server v10上创建虚拟机-戴尔R720
- python3调用cmd执行命令报乱码问题
- Redis(开发与运维):01---Redis简介特性使用场景使用建议历史版本