的wheel在* nix计算机组通常是指基团与某种根状的访问。我听说在某些 *nix 上它是有权运行的用户组su,但在 Linux 上似乎是任何人(尽管您自然需要 root 密码)。在我使用的 Linux 发行版上,它似乎是默认情况下有权使用的组sudo;他们有一个条目sudoers:
%wheel ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
但这都是切线的。我的实际问题是:为什么叫这个组wheel?之前听过各种解释,不知道对不对。有谁知道这个词的实际历史?
我不明白为什么su -优先于su以 root 身份登录。
即使我的非特权用户受到威胁,我也希望 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 登录。但是使用上述逻辑不是最安全的做法:
我正在尝试部署 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) 为什么我们需要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 -s
sudo -i
sudo bash
Run Code Online (Sandbox Code Playgroud)
我知道su我需要知道 root 密码,而且sudo我必须在sudoers文件中,但是一旦执行有什么区别?
我知道su和之间存在差异,sudo -s因为我的主目录/root在我执行之后su,但我的主目录仍然/home/myname在sudo -s. 但我怀疑这只是我遗漏的潜在差异的症状。
我想知道如何从脚本中以另一个用户身份运行命令。
我将脚本的所有者设置为 root。我还在脚本中运行以下命令以作为 hudson 用户运行命令:
su -c command hudson
Run Code Online (Sandbox Code Playgroud)
这是正确的语法吗?
要在禁用 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 -s与sudo su.
唯一的区别似乎是(比较sudo -i左侧和sudo su -右侧):
并比较sudo -s(左)和sudo su(右):
主要区别(忽略SUDO_foo变量 和LS_COLORS)似乎是版本中的XDG_foo系统变量sudo su。
是否有任何情况下这种差异需要使用相当不雅的sudo su?我可以安全地告诉人们(就像我经常这样)跑步没有任何意义sudo su还是我错过了什么?
以root我su想要的特定普通用户身份登录时。我运行su username并立即收到提示,仍然是 root。没有给出错误。我知道旧的“您尝试 su 的用户没有您当前所在文件夹的权限”问题,但在这种情况下并非如此。此外,没有显示错误,当遇到特定的权限问题时,情况总是如此(据我所知)。
我试过su - username同样的效果。命令已处理,没有看到错误,我立即收到提示。
什么可能导致这种行为?我该如何解决这个问题?
作为 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) su ×10
sudo ×7
bash ×3
apt ×1
conventions ×1
debian ×1
gnu-screen ×1
group ×1
history ×1
linux ×1
login ×1
permissions ×1
privileges ×1
scripting ×1
security ×1
shell ×1
xauth ×1