为什么需要 sudo bash?

为什么需要 sudo bash?

我正在阅读以下代码:

$ sudo bash
# cd /home/
# ./gitpull.sh

为什么我需要第一行,它到底起什么作用?如果我直接这样做$ sudo会怎么样$ sudo bash

答案1

它以级别用户身份启动 bash shell root。您需要它,因为通常普通用户无法访问/home/

你所做的事情的危险之处在于你处于 root shell 中——你很容易就会弄乱你的机器。

答案2

你最好这样做:

$ sudo sh -c 'cd /home; ./gitpull.sh'

因为以 root 身份调用的命令将被记录。直接通过 sudo 调用 shell 会丧失 sudo 的所有安全优势,因此应避免。

答案3

sudo <shell>,如果它有效,则表明 sudo 安装不当,并存在潜在的安全漏洞。

sudo不应被配置为允许像 shell 那样的任意命令;的目的sudo是允许经过身份验证的非 root 用户以 root 身份运行某些命令,而无需知道 root 密码。

如果sudo bash允许任何用户,则该用户只要知道自己的密码即可成为 root 用户。

如果攻击者获得任何一个可以执行该操作的账户的密码sudo bash,那么攻击者就拥有了root权限。

sudo bash执行等效操作(获取 root shell)的正确方法是su,然后提供 root 密码,而不是您自己的密码。

答案4

sudo允许用户以另一个用户(通常是超级用户或 root)的安全权限运行程序。
bash启动一个新的 bash shell。
因此,sudo bash以 root 用户的安全权限启动一个新的 bash shell。

相关内容