暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何验证用户的 sudo 权限 OceanBase工具学习笔记289

数据库新手 2023-06-21
258

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

背景信息

SSH方式登陆主机,有两种授权方式.

  • 用户名密码方式。用户名密码方式即 通过`ssh xxx@xx.xx.xx.xx`的方式登陆。
  • 私钥方式。私钥方式登陆主机,是指客户端使用某个私钥登陆主机,前提条件是,主机的authorized_keys文件中已经存在了和私钥配对的公钥(即免密登陆)。

用户名方式登录

使用 ssh root@password 方式登陆的用户,验证用户是否具有 sudo 权限,只需执行以下指令即可。

echo password |sudo -S ls

这里会出现三种情况。

  • 用户有sudo权限。
  • 用户无sudo权限。此时输出[sudo] password for xxx: xxx is not in the sudoers file. This incident will be reported.。

私钥方式登录

使用私钥方式登录,即免密登录,此时 Java 客户端不知道用户的密码是什么,此时要求该用户必须设置了 sudo 指令无需密码。即在/etc/sudoers文件中存在以下行:

username ALL=(ALL) NOPASSWD:ALL

以上配置指定 username 无需使用密码可以执行任何指令。

因此,在验证用户是否有 sudo 权限前,需要执行以下指令,判断用户是否可以无需输入密码执行 sudo。

sudo -n true

若该用户配置了无需使用密码使用 sudo 指令,则上述指令不输出任何结果。表示有 sudo 权限,且无需使用密码执行。

若该用户未配置,则上述指令输出 sudo: a password is required 。

验证结果

echo password |sudo -S ls >/dev/null 2>&1; echo $?

上述输出 0 表示执行成功,有 sudo 权限。输出 1 表示执行失败,没有 sudo 权限。

sudo -n true >/dev/null 2>&1; echo $?

上述指令输出 1 表示没有设置无密码使用 sudo 命令,输出 0 表示设置了。

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

最后修改时间:2023-06-21 19:20:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论