Answers:
两种主要的命令行可能性是:
su
在提示时使用并输入root密码。sudo
命令前面,并在出现提示时输入密码。这是大多数系统(包括Ubuntu,Linux Mint,(可以说)Debian等)上的首选方法。如果您不知道单独的root密码,请使用此方法。
Sudo要求您输入自己的密码。(这样做的目的是为了限制无人看管和解锁时的键盘损坏,并确保您确实希望运行该命令而不是错字。)通常将其配置为不再要求输入一些分钟,因此您可以sudo
连续运行多个命令。
例:
sudo service apache restart
如果您需要以root用户身份运行几个命令,请在每个命令前面加上sudo
。有时,以root用户身份运行交互式shell更方便。您可以使用sudo -i
:
$ sudo -i
# command 1
# command 2
...
# exit
相反sudo -i
,您可以使用sudo -s
。不同的是,-i
再我 nitializes环境,以理智的默认值,而-s
使用您的配置文件,或好或坏。
有关更多信息,请访问sudo网站,或man sudo
在系统上键入。Sudo是非常可配置的。例如,可以将其配置为允许特定用户仅以root用户身份执行特定命令。阅读sudoers
手册页以获取更多信息。用于sudo visudo
编辑sudoers文件。
该su
命令存在于大多数类Unix系统上。只要您知道该用户的密码,它就可以让另一个用户运行命令。在未指定用户的su
情况下运行时,将默认为root帐户。
例:
su -c 'service apache restart'
必须使用该-c
选项传递要运行的命令。请注意,您需要使用引号,以便命令不会被外壳解析,而是完整地传递给su
运行的根外壳。
要以root用户身份运行多个命令,启动交互式shell更方便。
$ su
# command 1
# command 2
...
# exit
在某些系统上,您必须位于组号0(称为wheel
)中才能使用su
。(关键是要限制root密码意外泄露给他人的损害。)
如果设置了root密码并且您拥有该密码,则只需root
在登录提示符下键入并输入root密码即可。请非常小心,避免以root用户身份运行复杂的应用程序,因为它们可能会执行您不希望做的事情。以root身份直接登录主要在紧急情况下非常有用,例如磁盘故障或将自己锁定在帐户之外。
单用户模式或运行级别1也为您提供root特权。这主要用于无法引导到多用户运行级别的紧急维护情况。您可以通过传递single
或emergency
在内核命令行上引导进入单用户模式。请注意,引导到单用户模式与正常引导系统并以root用户登录不同。而是,系统将仅启动为运行级别1定义的服务。通常,这是拥有可用系统所需的最少服务数量。
您还可以通过使用telinit命令到单用户模式:telinit 1
; 但是,此命令要求您已经通过其他方法获得了root特权才能运行。
在许多系统上,引导到单用户模式将使用户可以访问根shell,而无需提示输入密码。值得注意的是,systemd
当您以这种方式引导时,基于-的系统会提示您输入root密码。
Calife允许您通过输入自己的密码(如果获得授权)以其他用户身份运行命令。它类似于更普遍的sudo(请参见上文)。Calife比sudo轻巧,但可配置性较差。
Op使您可以以其他用户(包括root)的身份运行命令。这不是运行任意命令的完善工具:您键入,op
然后键入由系统管理员配置的助记符,以运行特定命令。
Super允许您以其他用户(包括root)的身份运行命令。该命令必须已被系统管理员允许。
另请参阅Wikipedia。
只需在命令中添加所需命令即可pkexec
。请注意,尽管这在大多数情况下都有效,但它并不是普遍适用的。
请参阅man pkexec
以获取更多信息。
kdesu
和kdesudo
是图形前端到su
和sudo
分别。它们使您可以轻松地以root用户身份运行X Window程序。它们是KDE的一部分。类型
kdesu -c 'command --option argument'
并输入root密码,或输入
kdesudo -c 'command --option argument'
并输入您的密码(如果有权运行sudo
)。如果您在KdeSu中选中“保留密码”选项,则每个登录会话只需键入一次根密码。
Ktsuss(“保持su简单,愚蠢”)是su的图形版本。
比寿Beesu是su命令的图形前端,它已在基于Red Hat的操作系统中替代了Gksu。它主要是为RHEL和Fedora开发的。
gksu
和 gksudo
gksu
和gksudo
是图形前端到su
和sudo
分别。它们使您可以轻松地以root用户身份运行X Window程序。它们是Gnome的一部分。类型
gksu command --option argument
并输入root密码,或输入
gksudo command --option argument
并输入您的密码(如果有权运行sudo
)。
gksu
并且gksudo
已经过时了。它们已被GNOME中的PolicyKit取代,并且许多发行版(例如Ubuntu)默认不再安装它们。您不应该依赖于它们的可用性或正常工作。
使用“以root身份运行shell命令”中的方法之一。您将需要确保在过渡到root期间,DISPLAY
环境变量和XAUTHORITY
环境都不会重置。这可能需要对这些方法进行其他配置,而这些配置不在此问题的范围内。
总体而言,这是一个坏主意,主要是因为图形应用程序将以root身份读写配置文件,并且当您尝试以普通用户身份再次使用这些应用程序时,这些应用程序将无权读取其自己的配置。
sudo
只有在(1)已安装它和(2)如果您的使用位于sudoers文件中并且允许执行该操作时,该命令才起作用。
pkexec
现在正在替换gksu
/ gksudo
在许多发行版中。
由于问题不是特定于Linux的,因此以下是在Solaris 9+(或Trusted Solaris 8)中如何实现相同的目标:
从版本9开始,Solaris包含了一套工具,亲切地称为RBAC或基于角色的访问控制。
RBAC的要旨是,通过向用户和/或角色授予授权和权利,或者向用户授予角色,您可以为谁可以使用哪些特权运行什么创建非常精细的模型。
本质上,您可以在/ etc / security / auth_attr中标识授权,然后将其授予/ etc / user_attr中的用户或角色。
您可以在/ etc / security / prof_attr中定义配置文件。然后,您将命令与/ etc / security / exec_attr中的那些概要文件相关联,然后将这些概要文件分配给/ etc / user_attr文件中的用户。
一旦这些事情都做了,你实际运行pfexec <command>
来执行与特权或授权被授予命令是用户对于该命令。
RBAC的好处是,没有授予命令本身或用户的附加特权,只有授予用户+命令的组合的特权。因此,它比制作二进制+ s或仅使用sudo来使用户能够执行几乎所有内容更安全。(我知道您可以锁定sudo,但根据我的经验,大多数人不会这样做)
RBAC的另一个优点是,您可以将root用户设置为角色帐户,并使用'su'命令和root密码将该角色分配给能够成为root用户的用户。root用户还能够以“单用户模式”登录,(我认为)比Linux模式更好,在Linux模式中,您可以禁用root密码passwd -d root
或锁定root帐户passwd -l root
,这两种方式都可以使root用户登录成为一个超级用户。当出现问题时很难。
Ben Rockwood在RBAC上有一篇很棒的博客文章,可以在(Open)Solaris上的Using RBAC中阅读。
或者,您可以赋予某些命令超能力。我说的是特殊权限,其中在拥有者权限下执行命令。
通过获取命令的路径,#which <command>
并为该路径设置SUID或SGID。
PS-SUID和SGID位应格外小心。它们会使您的系统不安全。