使用 sudo 的远程 ssh 命令

使用 sudo 的远程 ssh 命令

我有这个命令:

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. 认证针对远程系统用户1
  2. 在远程系统上调用以下命令有效用户 神谕

重要的是理解为什么这是用来:

  1. 出于安全原因,某些帐户无法通过以下方式访问远程控制。这可以通过配置来完成(见下文)。
  2. 远程用户帐户根本没有密码或没有可用的条目.ssh/autorized_keys

注意 - 拒绝特定账户的 ssh 访问

在大多数默认配置中帐户被冻结远程控制/etc/ssh/sshd_config。这通常通过以下选项完成:

PermitRootLogin no

此外,您还可以在此处指定选项 DenyUsers、、和最后。 有关详细信息,请AllowUsers参阅。DenyGroupsAllowGroups
man sshd_config

相关内容