相关疑难解决方法(0)

获得 root 权限的最安全方法是:sudo、su 还是 login?

即使我的非特权用户受到威胁,我也希望 root 帐户安全。

在 Ubuntu 上,默认情况下您只能出于“安全原因”使用 sudo。但是,我不确定它是否比仅在文本模式控制台上使用登录更安全。如果攻击者可以以我的普通用户身份运行代码,那么可能会出错的事情太多了。例如添加别名、向我的 PATH 添加东西、设置 LD_PRELOAD 和 X11 键盘记录器等等。我能看到的唯一优势是超时,所以我永远不会忘记注销。

我对 su 也有同样的疑问,但它甚至没有时间限制。某些操作(尤其是 IO 重定向)对 su 更方便,但在安全方面这似乎更糟。

在文本模式控制台上登录似乎是最安全的。由于它是由 init 启动的,如果攻击者可以控制 PATH 或 LD_PRELOAD,那么他已经是 root。按键事件无法被 X 上运行的程序拦截。我不知道 X 上运行的程序是否可以拦截 [ctrl]+[alt]+[f1](并打开一个看起来像控制台的全屏窗口)或它就像 Windows 上的 [ctrl]+[alt]+[del] 一样安全。除此之外,我看到的唯一问题是没有超时。

所以我错过了什么吗?为什么 Ubuntu 的人决定只允许 sudo?我可以做些什么来提高任何方法的安全性?

SSH呢?传统上 root 不能通过 SSH 登录。但是使用上述逻辑不是最安全的做法:

  • 允许 root 通过 SSH
  • 切换到文本模式
  • 以 root 身份登录
  • ssh 到另一台机器
  • 以 root 身份登录?

security login su sudo privileges

129
推荐指数
3
解决办法
3万
查看次数

是否有充分的理由运行 sudo su?

要在禁用 root 帐户的计算机上启动 root shell,您可以运行以下命令之一:

  • sudo -i: 运行交互式登录 shell(读取/root/.bashrc/root/.profile
  • sudo -s: 运行一个非登录的交互式 shell(读取/root/.bashrc

在 Ubuntu 世界中,我经常看到sudo su建议是获取 root shell 的一种方式。为什么要运行两个单独的命令呢?据我所知,sudo -i等效于sudo su -并且sudo -ssudo su.

唯一的区别似乎是(比较sudo -i左侧和sudo su -右侧):

meld 比较“sudo -i”和“sudo su -”的屏幕截图

并比较sudo -s(左)和sudo su(右):

meld 比较“sudo -s”和“sudo su”的屏幕截图

主要区别(忽略SUDO_foo变量 和LS_COLORS)似乎是版本中的XDG_foo系统变量sudo su

是否有任何情况下这种差异需要使用相当不雅的sudo su?我可以安全地告诉人们(就像我经常这样)跑步没有任何意义sudo su还是我错过了什么?

shell su sudo environment-variables

86
推荐指数
2
解决办法
2万
查看次数

为什么 sudo 命令不需要 root 密码?

我已经使用 Linux 一段时间了,每当我输入时,sudo我都以为我正在切换到 root 用户来执行命令。

显然这不是真的,因为我需要的只是我的用户帐户的密码。我猜因为我没有与多个用户一起工作过,所以我在现实世界中并没有真正注意到这一点。

我不确定 Ubuntu 如何设置我的第一个帐户。有root用户吗?我是根吗?我猜我刚刚在安装时创建了一个新用户,但它给了我 root 权限?只是在这里有点困惑......

那么为什么我可以使用我的用户密码运行 root 命令呢?

sudo

52
推荐指数
3
解决办法
2万
查看次数

su 用户名和 sudo su - 用户名有什么区别?

我看到两者都做同样的事情并且最终我都在同一个目录中。所以它真的一样还是有区别?

也做 su 和 su - 在这两种情况下都让我成为 root 用户。那么它是如何有益的?

su sudo

3
推荐指数
1
解决办法
4万
查看次数

标签 统计

sudo ×4

su ×3

environment-variables ×1

login ×1

privileges ×1

security ×1

shell ×1