sudo提权操作
阅读原文时间:2023年10月20日阅读:33

sudo提权操作

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

  • sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协。因此sudo产生了。 我们可以把sudo理解成是系统管理员有针对性地把权限下放,也就是“放权”,因此,被“授权”的用户如果想要以root的身份执行某些命令/操作,只需要输入该用户的密码即可,无需知晓我们的root密码是多少,当执行完成后,直接退回到当前用户。这样子的约束大大地提高了系统管理的安全性。 当然,这一切的大前提就是通过sudo的配置文件/etc/sudoers来进行授权。

sudo的配置文档是/etc/sudoers ,我们能够用他的专用编辑工具visudo(visudo需要root权限)对其进行编辑 ,此工具的好处是在添加规则有误时,保存退出会提示给我们错误信息;

visudo需要root权限
[lishi@localhost ~]$ visudo
visudo:/etc/sudoers:权限不够
visudo:/etc/sudoers:权限不够
使用visudo命令打开sudo配置文件

1, 使用/etc/sudoers 不会有提示visudo有提示

1.1 使用 /etc/sudoers 编辑配置文件

输入vim /etc/sudoers 可以查看,并编辑其配置文件

删除92行root

没有提示

1.12使用visudo编辑配置文件

附注:如果没有visudo命令 需要 yum install -y sudo

配置完毕后,如果想知道哪些命令是您当前用户能够执行或禁止的,可通过切换至该用户身份,然后通过sudo -l 查看

[root@localhost ~]#visudo
#语法检查

visudo -c
#检查语法

进入配置文件中

删除92行root

出现提示

Allow root to run any commands anywhere
允许root在任何地方运行任何命令
root           ALL=(ALL)                     ALL
#用户(lishi)   ip地址或主机名(all表示所有)   可以执行什么命令(all表示所有)

普通用户没有挂载权限

在一号机子编辑

注意在使用命令的时候一定要和配置的命令一致

我们只能用设置的命令

我们来试一下解挂(要使用别的命令可以继续添加,all表示允许使用所有命令)

sudo !的用法

以感叹号后面的为准

命令后面不能跟 *

也可以对组进行操作

配置组ylc权限all=root

将用户加入wheel组中

[root@localhost ~]#gpasswd -a ylc wheel
正在将用户“ylc”加入到“wheel”组中
wheel组表示管理员组是比较特殊的一个组,在wheel组中的成员可以使用任何命令

之前是不能解挂载的,现在可以

思考这个设置有意义么?

root ALL=(ALL) ALL

这个操作比较危险这里我就不继续了

这里可以解决密码问题,在不知道root的uid不为0,不是超管的情况下可以使用root登录

[root@localhost ~]#vim /etc/passwd
#修改passwd文件中root的uid
[root@localhost ~]$sudo -ulisi cat /etc/shadow
#-u指定用户的意思
####密码问题

[root@localhost ~]#sudo -V
#可以查看相关配置信息

#67 Defaults   env_reset,timestamp_timeout=2
​修改验证密码间隔为2分钟
#启用sudo操作日志
visudo
Defaults logfile = "/var/log/sudo"
默认日志文件