【问题标题】:Difference between superuser and root [closed]超级用户和root之间的区别[关闭]
【发布时间】:2016-06-21 10:56:18
【问题描述】:

我正在使用一些在线教程来学习Unix系统中的终端。

显然root在任何地方都有完全权限,但是不方便suroot,做你需要做的,然后exit回到你的正常用户名。

sudo 显然绕过了这一点,但我有一些问题。

当您使用sudo 时,它不会要求您提供root 的密码,而是要求您提供您的 密码。

那么,是什么阻止您只使用sudo'ing 一切并模仿使用root 密码直接登录root 的相同功能?

【问题讨论】:

  • 当你说“终端”时,你可能指的是“外壳”。
  • 终端/外壳/控制台有什么区别?我以为它们都是同义词
  • 哦,当您使用完su 后,您不会将su 恢复为您的正常用户名。您输入 exit 或按 control-D 退出子shell。
  • 你是对的(这也在我的教程中,我应该更清楚),修复了 OP
  • 我投票结束这个问题,因为它不是一个编程问题。试试unix.stackexchange.com

标签: unix ubuntu terminal root sudo


【解决方案1】:

sudo 的目的是允许某些用户以某些方式运行某些程序,所有这些都可以通过/etc/sudoers 文件和/或/etc/sudoers.d 中的文件进行控制。它记录了这些用途。因此,例如,系统操作员可以进行备份,或者更高级的管理员可以杀死失控的进程,但他们都没有获得su 提供的完整、无限制的访问权限。

【讨论】:

  • 日志以什么方式使用?输入到控制台的每个命令都会被记录?
  • 并非所有内容,但sudo 命令通常会被记录。
【解决方案2】:

root 用户是在此应用程序中具有管理权限的内置用户。 root 是系统的超级用户,这意味着它可以无限制地访问文件。

root 用户具有以下附加角色:

创建一个应用程序的多个管理员并向他们发送消息。

root 用户可以限制和管理管理员用户的访问权限及其特权。

【讨论】:

    【解决方案3】:

    当你使用sudo时,它不会询问你root的密码,它会询问 输入您的密码。

    您必须最近通过身份验证。这可以很容易地改变这一点,以便它每次都对您进行身份验证:

    sudo visudo
    # that will open /etc/sudoers in vi/vim
    
    # type the following to search the file:
    /Defaults
    # hit n to go to next result
    
    # Find line that says:
    Defaults        env_reset
    # and change it to:
    Defaults        env_reset,timestamp_timeout=0
    # 0 is time in minutes
    

    如果您对nano 更满意,您也可以使用nano /etc/sudoers,不过我建议您研究一下vim。 nano 和 vim 的区别就像 microsoft notepad 和 sublime/caret 的区别一样。

    # Vim cheat sheet for this tutorial
    i    # insert mode
    ESC  # exit insert mode (and other modes)
    :wq  # write changes (w) quit (q)
    
    # a little more advanced:
    :%s/search/replace/gc
    # replace all instances of search and ask for confirmation: 
    

    http://vim.wikia.com/wiki/Search_and_replace

    那么是什么阻止了你 sudo'ing 一切并模仿同样的东西 使用 root 直接登录到 root 的功能 密码?

    好问题!您显然是 sudoers 组的一员。大多数发行版(linux\unix 的发行版)都有这个组作为轮子。查看usermod 为用户更改此设置。

    您可以在/etc/sudoers中确认群组名称:

    ## Allows people in group wheel to run all commands
    %wheel  ALL=(ALL)       ALL
    
    ## Same thing without a password
    # %wheel        ALL=(ALL)       NOPASSWD: ALL
    # ^^^ ENSURE THAT THIS IS COMMENTED OUT (or not present) ^^^
    

    不授予用户 sudo 访问权限会阻止这种情况。

    这也是一件好事:

    每个人和他们的兄弟在他们的系统上都有一个root 帐户,许多脚本小子试图暴力破解root 帐户以及其他常见的用户名,例如postgres。锁定 root 帐户以减轻 ssh 暴力攻击符合您的最大利益。这可以通过passwd -lRAN AS ROOT)来完成。

    拥有 sudo 用户后,您仍然可以执行管理任务,例如安装软件和创建新用户。

    显然root 在任何地方都有完全权限,但它是 不方便suroot,做你需要做的,然后su返回 到您的普通用户名。

    如果您要以 root 身份执行扩展任务,我建议:

    sudo -i
    # do whatever you need to do
    ^D 
    # CTRL+D This will terminate your current shell and take you back 
    # to your previous shell whereas su root and su username will take 
    # you two shells away from your initial session.  This probably won't 
    # effect you besides MAYBE session history (I am not sure about that).
    

    一如既往地小心,因为作为超级用户,你真的会搞砸你的系统。

    关于你的标题问题:

    超级用户和root的区别

    Ubuntu99 很好地总结了这一点:

    https://askubuntu.com/a/592838/212470

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多