![使用 sudo 的远程 ssh 命令](https://linux22.com/image/1341513/%E4%BD%BF%E7%94%A8%20sudo%20%E7%9A%84%E8%BF%9C%E7%A8%8B%20ssh%20%E5%91%BD%E4%BB%A4.png)
我有这个命令:
ssh [email protected] 'sudo -u oracle fgrep ...'
有人能解释一下这个命令是如何工作的吗?我只知道有人以 user1 的身份连接到远程计算机,并想以 oracle 的身份运行一些命令。他能做到这一点吗?需要 user1 一些权限,为什么当我运行这个命令时我需要设置 user1 的密码而不是 oracle 的密码?
谢谢
答案1
使用 sudo,您可以以任何您喜欢的用户身份运行东西。
如果 user1 使用 NOPASSWD 添加到 sudoers,则此命令将起作用,这意味着 user1 可以使用 sudo 执行命令,并且执行此操作时不需要输入密码
答案2
ok这个命令分为两部分:
ssh [email protected]
连接到远程箱并以用户“user1”身份登录
第二个命令以“sudo”开头,这是一个允许用户临时行使 root 权限的实用程序。运行 sudo 的能力是授予用户的权利,因此没有 sudo 能力的用户根本无法运行 sudo。
Sudo 提示用户输入自己的密码。这确保用户确实想要以 root 身份运行该作业,并且他们是该帐户的授权用户。这样,只有具有 sudo 权限的用户才能获得 root 权限,并且他们被迫证明他们就是系统认为的那个人。
答案3
这只是一个“被束缚”命令:
- 认证针对远程系统用户1
- 在远程系统上调用以下命令有效用户 神谕
重要的是理解为什么这是用来:
- 出于安全原因,某些帐户无法通过以下方式访问远程控制。这可以通过配置来完成(见下文)。
- 远程用户帐户根本没有密码或没有可用的条目
.ssh/autorized_keys
。
注意 - 拒绝特定账户的 ssh 访问
在大多数默认配置中根帐户被冻结远程控制/etc/ssh/sshd_config
。这通常通过以下选项完成:
PermitRootLogin no
此外,您还可以在此处指定选项
DenyUsers
、、和最后。 有关详细信息,请AllowUsers
参阅。DenyGroups
AllowGroups
man sshd_config