问题描述
sudo
,su
,visudo
,chroot
和gksu
之间有什么区别?
最佳解决思路
-
chroot
是一种输入文件夹和’faking’的方式,该文件夹是/
到内部执行的任何内容。这使您可以在non-booting Ubuntu安装上运行可执行文件,方法是将其安装在/
以外的某个位置,并使用/bin/bash
(安装中的一个)来获取终端提示。 -
sudo – 允许某些帐户进行身份验证,以root或其他用户身份运行程序。某些程序可能不需要sudoers文件中定义的密码。是否允许请求取决于运行sudo的用户(和组)以及要运行的命令(如sudoers中所定义)。
-
su
– 也是一种提升方式,但由于它以root(或其他用户)执行完整的交互式登录,因此存在差异,并提供bash提示符,除非使用参数另行指定。它使用目标用户的凭据作为身份验证。 -
visudo
– 编辑sudoers
文件。这使用一个特殊的可执行文件来检查文件的语法,以确保您不会因sudoers
文件损坏而被锁定在sudo
之外。如果您尝试保存无效配置,它将阻止您,并返回编辑器进行修复。 -
gksudo
或gksu
与sudo相同,除了它是图形并重写某些路径,以便图形程序不会导致用户配置文件的权限问题,尤其是~/.Xauthority
。
次佳解决思路
须藤:
Sudo(超级用户do)允许系统管理员为某些用户(或用户组)提供以root身份运行某些(或所有)命令的能力,同时记录所有命令和参数。 Sudo以per-command为基础运行。
它不是shell的替代品。
功能包括:限制用户可以在每个主机上运行的命令,每个命令的大量日志记录(提供谁做了什么的清晰审计跟踪),sudo命令的可配置超时以及使用能力许多不同机器上的相同配置文件(sudoers)。
visudo命令
visudo是一个命令行实用程序,允许以安全的方式编辑/etc/sudoers
文件。它默认使用vi编辑器的界面打开/etc/sudoers
(尽管可以通过将shell的EDITOR环境变量设置为不同的文本编辑器来更改),防止多个同时使用锁编辑,执行完整性检查并检查解析错误。
SU
su命令(也称为替代用户,超级用户或交换机用户)允许计算机操作员更改与正在运行的虚拟控制台关联的当前用户帐户。
默认情况下,没有任何其他命令行参数,这会将当前用户提升为本地系统的超级用户。
从命令行运行时,su要求输入目标用户的密码,如果经过身份验证,则授予操作员对该帐户的访问权限以及允许帐户访问的文件和目录。
另外,可以切换到不是超级用户的另一个用户
根
root是默认情况下可以访问Linux或其他Unix-like操作系统上所有命令和文件的用户名或帐户。它也称为root帐户,root用户和超级用户。
当用作其他术语的一部分时,单词root也有几个额外的相关含义。
其中一个是根目录,它是系统上的顶级目录。也就是说,它是所有其他目录(包括其子目录和文件)所在的目录。根目录由正斜杠(/
)指定。
另一个是/root
(发音为slash root),它是root用户的主目录。
它也可以指用户root,它是具有完全权限的系统的管理员。
chroot环境
chroot是一种操作,它更改当前正在运行的进程及其子进程的明显根目录。例如,如果您chroot /mnt/chroot-test
,那么目录/mnt/chroot-test
将是您可以通过/
引用的虚拟根目录。
使用chroots
以下是chroots的一些可能用途:
-
隔离不安全和不稳定的应用程序
-
在64位系统上运行32位应用程序
-
在生产系统上安装新包之前测试它们
-
在更现代的Ubuntu版本上运行旧版本的应用程序
-
构建新的包,允许仔细控制已安装的依赖包
source and more information about chroot
第三种解决思路
SU以root身份连接你。
终端将保留为会话的root用户。
使用sudo(超级用户),您可以作为普通用户连接时以root用户身份执行操作。