`sudo su` 和 `sudo fish` 之间的区别

`sudo su` 和 `sudo fish` 之间的区别

我在 Ubuntu 14.04 中运行 fish(友好交互式 Shell)作为我的标准 shell,而不是 bash。

我注意到了以下行为,但不知道其中是否是获取 root 访问权限的首选行为。

我可以输入命令sudo susudo fish,它们都会授予我超级用​​户权限。(提示符显示为root@ubuntu ~#
这些命令的行为有什么区别吗?

我唯一能理解的是,sudo su使用位于的鱼配置/root/.config/fish/sudo fish使用我主目录中的鱼配置/home/uloco/.config/fish

是否可以使用 加密我的系统sudo fish?如果我使用这个,我的主目录中的文件的所有者是否会发生变化?

答案1

sudo su就像您是 root 用户一样执行su。这意味着,打开的 shell 是第 6 个字段中用户条目中给出的 shell /etc/passwd。如果您的系统是 root 用户,则可能是/bin/fish。该 shell 作为登录 shell 执行,因此将执行 root 用户的 rc 脚本。

当你执行时sudo fish,应用程序fish(shell)就可以执行,就像你是 root 用户一样,在调用用户的环境中。这就是 fishs rc 脚本被执行的原因。

请参阅此答案中的完整解释:'sudo su -' 与 'sudo -i' 与 'sudo /bin/bash' - 什么时候使用哪个重要,或者根本不重要吗?

您应该使用哪一个取决于您:

  • 您是否想要像以 root 身份登录系统一样拥有 root 环境?然后调用sudo su
  • 您是否想保留您的环境、别名以及在 shell rc-scritps 中定义的内容?那么使用sudo fish

是否可以使用 sudo fish 来加密我的系统?

这只是环境,你不会加密某些东西。

如果我使用这个,我的主目录中的文件的所有者是否会发生变化?

如果您不手动进行任何更改则不会。

答案2

sudo su

su – 更改用户 ID 或成为超级用户

sudo bash

bash——GNU Bourne-Again 外壳

sudo fish

fish - 是一款适用于 OS X、Linux 和其他操作系统的智能且用户友好的命令行 shell。

在此处输入图片描述

http://en.wikipedia.org/wiki/Unix_shell#Shell_categories

Bourne-Again shell(bash)和Friendly interactive shell(fish)都是shell类型。

相关内容