进一步阅读

进一步阅读

在 centos(我相信还有许多其他发行版)上,默认情况下所有用户的 vi 别名为 vim。然而,无论出于何种原因,对于 root 用户来说 vi 都没有别名为 vim,当我在使用 sudo 时忘记输入 vim 而不是 vi 并且没有我认为理所当然的 vim 功能时,这总是让我烦恼,比如默认语法高亮。

我了解别名是如何完成的,以及以编程方式了解为什么当我 sudo/su 时别名不存在。我问是否有理由使这种行为成为理想的行为,即为什么 centos 开发人员不为 root 添加别名? root 用户的 vim 别名是否存在普通用户不存在的某种安全或功能问题?是否有历史原因 root 不应该有这个别名?

除此之外,我在 vim 中为我维护的服务器上的 root 用户添加默认的 vi 别名有什么坏处吗?如果我要这样做,我应该使用一种更好的方法来实现它(或者更准确地说,我应该使用任何方法)避免出于安全原因使用?)

答案1

此类决定通常取决于对以下问题的关注:易于维护安全,尽管其他答案中提到的安全性是一个因素。一些系统管理员不希望对超级用户的交互环境进行奇怪的未记录的个人定制。他们希望事情以标准的、有记录的方式运行;没有令人讨厌的意外。此外,他们还希望避免重新申请全新安装、系统升级等后的个人定制。

在 的情况下vi,将其别名为vim潜在的调出一个不同的程序在 CentOS 上,/usr/bin/vim而不是/bin/vi.前者是一个可选的“增强型 VIM”,可以存在,并编译了各种功能,而后者是“微型 VIM”,启用了很少的可选功能。 (Ubuntu 有类似的想法。)人们通常希望该vi命令表现得像标准vi命令一样,尤其当以超级用户身份做事时。他们不想要一些增强的神奇功能或插件以令人惊讶的方式改变东西;或者更糟糕的是,闯入救援或紧急模式。他们不希望vi作为超级用户进行关键工作的人查阅的所有参考 doco 因为此类事情而出现严重错误。

这意味着vi在管理员要求时调用vi,而不是vim

换句话说:鉴于人们已经认为各种 VIM 自定义和扩展是理所当然的,但其他一些人往往认为超级用户帐户确实是理所当然的不是有这样的定制和扩展。他们将这一假设融入到万维网页面、问答答案以及他们撰写的书籍中。它们形成习惯,并将知识从一个系统传送到下一个系统,当超级用户运行时,它们将得到什么vi。 (有时这个讽刺的是,它有 VIMisms。人们从 Linux 操作系统转向 FreeBSD 时必须学习的一件事是vinvi,而不是 VIM 的任何风格。)

此外:他们希望不必记住进行/root/.vimrc硬盘/root/.gvimrc更改、系统重新安装等;除了系统范围的配置文件之外。

这种想法付诸实践的另一个例子是toorFreeBSD 上的帐户。它是超级用户,但具有类似 Bourne 的 shell(实际上是 Almquist shell)。该root帐户具有 TENEX C shell,并且因为有几十年-值得 BSD doco 展示超级用户使用 C shell 驱动系统,人们给出的建议是保持原样,并用于toor类似 Bourne 的交互。当以 登录时,C shell 是预期的环境root,如果它为拥有(比如说)一本管理 FreeBSD 的 C shell 说明书的超级用户提供一个类似 Bourne 的 shell,那么欢闹甚至潜在的灾难就会随之而来。

进一步阅读

答案2

这个问题近乎征求个人意见。管理员可以以适合他们的方式设置他们的系统,如果默认设置让您烦恼,我建议您更改它。

然而...

root 用户不是普通用户,最好仔细考虑以 root 身份登录时在交互式提示符处执行的每个操作。为了提醒管理员他们是以 root 身份登录的,大多数 shell 中的 root 提示符默认情况下与特权用户的默认提示符不同,事实上,在 root 提示符下工作应该提醒您实际上不应该在那里很长(如果有的话)1 .

原因之一vi是没有别名vim 可能我认为,在共享库擅离职守的情况下(由于磁盘故障或意外删除),vi可能是一个无论如何都可以工作的静态可执行文件(或者它可能与来自其他路径的库链接),允许管理员编辑文件让系统的其余部分重新启动并运行。

同样的推理也适用于普通用户可能喜欢的其他“花里胡哨”。在管理员可能被迫启动交互式 root shell 的情况下,额外功能的依赖项可能根本不可用。


1在 root 提示符下工作,您无法对所键入的命令进行审计跟踪。因此,最好使用诸如sudo执行与 root 相关的任务之类的工具,因为sudo默认情况下会记录谁在何时执行什么操作。这对于多人拥有管理员权限的系统和公司系统尤为重要。

答案3

我问是否有理由使这种行为成为理想的行为,即为什么 centos 开发人员不为 root 添加别名? root 用户的 vim 别名是否存在普通用户不存在的某种安全或功能问题?是否有历史原因 root 不应该有这个别名?

如果你注意到 root 与用户的对比,echo $PATH你会看到一个更短的列表......默认情况下

它基本上是一种安全心理为一个默认开箱即用的 Linux 安全态势...适合那些希望安装后就可以完成所有设置的人安全

除此之外,我在 vim 中为我维护的服务器上的 root 用户添加默认的 vi 别名有什么坏处吗?如果我要这样做,我应该使用一种更好的方法来实现它(或者更准确地说,出于安全原因我应该避免使用的任何方法?)

在大多数情况下,添加可用于 root 帐户的别名并没有什么坏处。只需要注意如何以及在哪里进行即可。这安全心理假设类似这样的事情可能会发生,那将是攻击向量以及众多方法之一黑客一个系统。安全心态 = 最小化或防止任何/所有攻击方法,因此没有别名。

fwiw,我使用 SLES,也使用过 RHEL。我更喜欢编辑/etc/bash.bashrc.local/etc/csh.cshrc.local添加我的别名,这适用于非特权用户。这两个文件的所有者是root.rootwith 权限-rw-r--r--。对于 root,我只需编辑/root/.bashrc.

别名不会规避基本的安全策略,如果它们这样做,那么问题不在于别名,而在于其他东西。

相关内容