欢迎访问 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




