`sudo CMD` 和 `sudo su` 后跟 `CMD` 之间有什么区别?

`sudo CMD` 和 `sudo su` 后跟 `CMD` 之间有什么区别?

我有一个仅具有密钥身份验证的 SSH 服务器,我想为新用户添加一个密钥。

我以一个用户(kidmose)的身份登录,尝试将密钥附加到新用户(远程)的authorized_keys,但失败了:

kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
-bash: /home/remote/.ssh/authorized_keys: Permission denied

sudo su首先要做的事情是:

kidmose@hech-remote-control:~$ sudo su
[sudo] password for kidmose: 
root@hech-remote-control:/home/kidmose# cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys

奖金信息:

kidmose@hech-remote-control:~$ ll /home/remote/.ssh/authorized_keys
-rw-r--r-- 1 remote remote 409 Oct 16 07:14 /home/remote/.ssh/authorized_keys
kidmose@hech-remote-control:~$ uname -a
Linux hech-remote-control.egki 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

那么这两种方法之间的(相关)区别是什么?

答案1

在第一种情况下

 kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
  • 你的 bash (尝试)打开重定向到文件 /home/remote/.ssh/authorized_keys
  • 然后执行 sudo cat .ssh/id_rsa.pub

由于您无权访问,命令失败。

答案2

在第一种情况下,唯一以超级用户权限运行的命令是cat。重定向到/home/remote/.ssh/authorized_keys以普通用户身份执行。

在第二种情况下,您切换到 root 帐户,并且所有命令都以超级用户的权限执行。

相关内容