Unix 超级用户和根用户之间的区别

Unix 超级用户和根用户之间的区别,unix,ubuntu,terminal,root,sudo,Unix,Ubuntu,Terminal,Root,Sudo,我正在使用一些在线教程学习Unix系统中的终端 显然,root在任何地方都有完全权限,但是su到root,执行您需要执行的操作,然后退出并返回到您的正常用户名是不方便的 sudo显然回避了这一点,但我有一些问题 当您使用sudo时,它不会要求您输入root的密码,而是要求您输入密码 那么,是什么阻止了您使用root密码来模拟直接登录root的相同功能呢?sudo的目的是允许某些用户以某些方式运行某些程序,所有这些程序都可以由/etc/sudoers文件和/或/etc/sudoers.d中的文件控

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

显然,root在任何地方都有完全权限,但是su到root,执行您需要执行的操作,然后退出并返回到您的正常用户名是不方便的

sudo显然回避了这一点,但我有一些问题

当您使用sudo时,它不会要求您输入root的密码,而是要求您输入密码

那么,是什么阻止了您使用root密码来模拟直接登录root的相同功能呢?

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

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

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

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

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

当您使用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之间的区别就像微软记事本和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: 
那么,是什么阻止了你对所有事情的模仿呢 使用root直接登录到root的功能 密码

好问题!你显然是sudoers集团的一员。linux\unix的大多数发行版都将此组作为控制盘。请检查usermod,为用户更改此设置

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

不给用户sudo访问权限会阻止这种情况

这也是一件伟大的事情:

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

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

显然,root在任何地方都有完全权限,但它是 不方便苏去根,做你需要做的事,然后苏回来 到您的正常用户名

如果您打算以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).
像往常一样要小心,因为作为一个超级用户,你可能会把你的系统搞得一团糟

关于你的标题问题: 超级用户和根用户之间的区别

Ubuntu99在总结这方面做了大量工作:


当你说终端时,你可能指的是外壳。终端/外壳/控制台之间的区别是什么?我以为它们都是同义词哦,当你处理完su后,你就不会恢复到正常的用户名。您键入exit或按control-D退出子shell。您是对的,这也在我的教程中,我本应该知道得更清楚,修复了OPI'm voting以主题外的方式结束此问题,因为它不是编程问题。试用日志以什么方式使用?输入到控制台的每个命令都会被记录下来?不是所有命令都会被记录下来,但是sudo命令通常会被记录下来。
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).