标签: su

“车轮”组的名字从何而来?

wheel在* nix计算机组通常是指基团与某种根状的访问。我听说在某些 *nix 上它是有权运行的用户组su,但在 Linux 上似乎是任何人(尽管您自然需要 root 密码)。在我使用的 Linux 发行版上,它似乎是默认情况下有权使用的组sudo;他们有一个条目sudoers

%wheel ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

但这都是切线的。我的实际问题是:为什么叫这个组wheel?之前听过各种解释,不知道对不对。有谁知道这个词的实际历史?

su sudo history group

249
推荐指数
4
解决办法
12万
查看次数

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

获得 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万
查看次数

-bash: sudo: 命令未找到

我正在尝试部署 django 应用程序。当我打印时, apt-get update 我看到

W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list - RealFileExists (13: Permission denied)
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: …
Run Code Online (Sandbox Code Playgroud)

debian su sudo apt

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

linux中`fakeroot`命令有什么需要

为什么我们需要fakeroot命令?我们不能简单地使用sudoorsu命令吗?

手册页说:

fakeroot - 在伪造 root 权限的环境中运行命令以进行文件操作

About.com 说:

提供一个假的根环境。该软件包旨在启用以下功能:dpkg-buildpackage -rfakeroot即消除成为软件包构建的 root 用户的需要。这是通过设置LD_PRELOAD为 来完成的libfakeroot.so,它提供了getuid, chown, chmod, mknod, stat, ... 的包装器,从而创建了一个假的根环境。如果你不明白这些,你不需要fakeroot

我的问题是,它解决简单su或不简单的特殊目的是什么sudo?例如,要重新打包 ubuntu 中所有已安装的包,我们给出以下命令:

$ fakeroot -u dpkg-repack `dpkg --get-selections | grep install | cut -f1`
Run Code Online (Sandbox Code Playgroud)

我们可以使用 sudo 或 su 而不是 fakeroot 来执行上述命令,如下所示:

$ sudo dpkg-repack `dpkg --get-selections | grep install | cut -f1`
Run Code Online (Sandbox Code Playgroud)

编辑:

跑步: …

su sudo

123
推荐指数
5
解决办法
11万
查看次数

su vs sudo -s vs sudo -i vs sudo bash

以下命令有什么区别:

su
sudo -s
sudo -i
sudo bash
Run Code Online (Sandbox Code Playgroud)

我知道su我需要知道 root 密码,而且sudo我必须在sudoers文件中,但是一旦执行有什么区别?

我知道su和之间存在差异,sudo -s因为我的主目录/root在我执行之后su,但我的主目录仍然/home/mynamesudo -s. 但我怀疑这只是我遗漏的潜在差异的症状。

su sudo

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

su 选项 - 以另一个用户身份运行命令

我想知道如何从脚本中以另一个用户身份运行命令。

我将脚本的所有者设置为 root。我还在脚本中运行以下命令以作为 hudson 用户运行命令:

su -c command hudson
Run Code Online (Sandbox Code Playgroud)

这是正确的语法吗?

scripting bash su sudo

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

是否有充分的理由运行 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万
查看次数

su 不会更改用户,但也不会响应错误

rootsu想要的特定普通用户身份登录时。我运行su username并立即收到提示,仍然是 root。没有给出错误。我知道旧的“您尝试 su 的用户没有您当前所在文件夹的权限”问题,但在这种情况下并非如此。此外,没有显示错误,当遇到特定的权限问题时,情况总是如此(据我所知)。

我试过su - username同样的效果。命令已处理,没有看到错误,我立即收到提示。

什么可能导致这种行为?我该如何解决这个问题?

bash su

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

“su” 错误“X11 连接因身份验证错误而被拒绝”

作为 root,我连接到远程主机以执行命令。只有“standarduser”具有适当的 id 文件和正确的 .ssh/config,所以我首先切换用户:

su standarduser -c 'ssh -x remotehost ./remotecommand'
Run Code Online (Sandbox Code Playgroud)

该命令工作正常,但尽管我使用了“-x”(禁用 X11-Forwarding)并在 中禁用了 X11Forwards /etc/ssh/ssh_config,但我仍然收到错误消息:

X11 connection rejected because of wrong authentication.
Run Code Online (Sandbox Code Playgroud)

当我以“standarduser”身份登录时,我没有收到错误消息。

这很烦人,因为我想将该命令集成到 cron 作业文件中。我知道错误消息指的是 root 的 .XAuth 文件的错误身份验证,但我什至没有尝试通过 X11 进行连接。

为什么“ssh -x”没有禁用 X11 连接并抛出错误消息?

更新:该消息仅在我在屏幕内登录时显示,当在本地机器本身(无屏幕)上使用上述命令时,我没有收到错误消息,所以这对 cron 也应该没问题.

我也启动了相同的命令,-v并且意外地得到了错误消息 FIRST,甚至在来自 SSH 的状态信息之前:

root@localhost:~# su standarduser -c 'ssh -x remotehost ./remotecommand'
X11 connection rejected because of wrong authentication.
OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013
Run Code Online (Sandbox Code Playgroud)

这让我想到了问题本身,不是ssh抛出错误消息的原因,而是su

root@localhost:~# su standarduser -c …
Run Code Online (Sandbox Code Playgroud)

bash gnu-screen su xauth

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