αғs*_*нιη 41 root gnome-terminal
当我们想以 root 身份运行程序时,我们使用sudo, gksu,gksudo等等。现在我的问题是我们如何在终端中以 root 用户身份运行终端?
我尝试使用gksudo terminal,gksu terminal但没有任何反应。通过运行sudo terminal我得到错误sudo: terminal: command not found。
Eli*_*gan 62
Ubuntu 上的默认终端模拟器是GNOME 终端。它位于/usr/bin/gnome-terminal并且可以使用gnome-terminal命令运行。
您可能想要的是一个以 root 身份运行的 shell,就好像它是从 root 登录生成的(例如,为 root 而不是为您的用户设置所有环境变量)。
假设这就是你想要的,正如steeldriver 所建议的那样,只需运行:
sudo -i
Run Code Online (Sandbox Code Playgroud)
您将拥有一个 root shell,您在其中输入的命令将以 root 身份运行(不必在它们之前加上sudo)。
但是,如果您真的想以 root 身份运行图形终端模拟器应用程序,请继续阅读。我介绍了两种方式:使用gksu/gksdo和使用sudo命令。
gksu/gksudo既然你有gksu安装包,您可以
gnome-terminal使用以下任一方式以 root 身份运行:
gksu gnome-terminal
Run Code Online (Sandbox Code Playgroud)
gksudo gnome-terminalRun Code Online (Sandbox Code Playgroud)
(由于gksu在 Ubuntu 中默认设置为 sudo-mode,这些应该是等效的。)
gnome-terminal在没有控制非 root 终端的情况下以 root 身份运行:几乎每个桌面环境都提供了一种无需打开终端即可运行命令的工具(如果关闭终端,通常会导致命令终止)。
这通常通过Alt+实现F2。将出现一个标记为运行命令(或类似)的文本框,您可以输入您的命令。
例如,它在 Unity 中是这样的:

在 MATE 中是这样的(GNOME Flashback/Fallback、Xfce、LXDE 类似):

请注意,这适用于gksu并且gksudo因为它们使用图形身份验证对话框。如果您按Alt+F2并运行sudo ...,您将无法与密码提示进行交互。
sudo如果您没有 gksu 软件包并且不想安装它,您可以使用:
sudo -H gnome-terminal
Run Code Online (Sandbox Code Playgroud)
该-H标志很重要,因为它将HOME环境变量设置为/root而不是您自己用户的主目录。你应该不使用sudo gnome-terminal,因为它可以打破属于非root用户的GNOME终端的配置。有关这方面的更多信息,请参阅:
(sudo -i gnome-terminal也可以。)
如果您(1)打开一个图形终端,(2)sudo -H gnome-terminal在其中运行类似的东西,以创建一个新的图形根终端,并且(3)退出原始的非根图形终端……那么根图形终端也会退出.
这是因为当拥有它的终端退出时,会向根图形终端发送SIGHUP。
为了防止这种情况,您可能认为您可以使用以下命令启动图形根终端:
sudo -H gnome-terminal &Run Code Online (Sandbox Code Playgroud)
但这仅在sudo不必提示输入密码时才有效。如果是这样,您将不会看到密码提示。
解决此问题的一种方法是使用:
sudo -v
sudo -H gnome-terminal
Run Code Online (Sandbox Code Playgroud)
sudo -v正是为了这个目的而存在的。如 中所述man sudo,它“更新 [s] 用户的缓存凭据,并在必要时对用户进行身份验证。”
请注意,如果直接从桌面环境的Alt+ F2“运行命令”框中运行,这仍然不起作用,因为您仍然需要一个终端来输入sudo -v.
或者,您可以通过在作业开始后暂停作业,以所谓的传统方式执行此操作:
sudo -H gnome-terminal从原始的非根图形终端。sudo。图形终端将启动。exit。图形 root 终端作业将被非 root 终端自动取消暂停和否认。简而言之:
sudo -H gnome-terminal
^Z
exit
Run Code Online (Sandbox Code Playgroud)
但是假设您也想继续使用原始的非 root 终端。然后,您可以运行,其中图形根终端的作业编号是什么,以在后台恢复作业。您可以运行查找,但您可能不必这样做——该数字显示为当您按下+ 时。例如:bg NNjobsN[N]CtrlZ
ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek:
^Z
[1]+ Stopped sudo -H gnome-terminal
ek@Ilex:~$Run Code Online (Sandbox Code Playgroud)
简短的回答:
gksudo gnome-terminal
(assuming gksu is installed)
Run Code Online (Sandbox Code Playgroud)
以 root 身份打开一个终端:
root@jacob-Satellite-L300:~#
Run Code Online (Sandbox Code Playgroud)
无需解释,您可以使用它像这样以 root身份打开任何终端;比如 Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole) 等等。
| 归档时间: |
|
| 查看次数: |
701446 次 |
| 最近记录: |