我在虚拟机内运行本地测试服务器。我经常需要在其中打开多个窗口,并且所有窗口都必须以 root 身份登录。通常这是通过su
在每个标签上书写总共 7-8 次来完成的。
有没有一种方法,我只需输入 root 密码一次,并且我打开的下一个终端选项卡/窗口已以 root 身份登录?有点像它维护当前的工作目录?
答案1
您只需以 root 身份打开终端模拟器即可。
su -l -c gnome-terminal
这将以 root 身份启动“gnome-terminal”。这样,该终端模拟器中的任何选项卡都将成为根选项卡。
sudo -b gnome-terminal
可以工作得更好,但我没有 ubuntu 来检查它是否开箱即用。
答案2
在图形会话中
当您以图形方式登录时,您可以root
像其他人所说的那样运行图形终端模拟器应用程序。执行此操作的最佳方法通常是gksu
或者gksudo
,因为这会自动处理更改HOME
并/root
(不太重要)使用临时.Xauthority
文件(来源)。gksu
是 和 的前端su
,并且sudo
在大多数操作系统上将被配置为使用管理员以root
. (或者您可以使用gksu --su-mode
和指定哪个gksu --sudo-mode
,后者始终等同于在gksudo
没有任一标志的情况下运行。)
侏儒
gksu gnome-terminal
或者gksudo gnome-terminal
KDE(使用kdesu
或者kdesudo
反而)
kdesu gnome-terminal
或者kdesudo gnome-terminal
- 请注意,
kdesu
通常仅存在于PATH
支持su
将程序运行为root
.在某些 GNU/Linux 操作系统(例如 Ubuntu)上情况并非如此。
Xfce
gksu xfce4-terminal
或者gksudo xfce4-terminal
LXDE
gksu lxterminal
或者gksudo lxterminal
作为安德科兹和奥雷利安·兰布罗斯已经说过,运行图形终端模拟器 asroot
会使其选项卡中出现的所有 shell(以及新窗口,如果从root
终端菜单创建的话)都以root
.
在基于文本的会话中
如果您没有能力运行 GUI 程序(虚拟控制台登录,ssh
不登录-X
,或者您只是不想登录),上述解决方案将不适合您。在这种情况下,您可能会考虑使用屏幕管理器,它可以让您在一个终端上控制多个终端。这有效地实现了与具有多个选项卡的 GUI 终端相同的目标root
......只是没有 GUI。
screen
是最常见的屏幕管理器。你可以使用这些命令一旦它运行就可以控制它。
或者使用byobu
,一个方便的屏幕包装。byobu
非 Ubuntu 系统上通常不提供(尽管可以安装)。但你表示你正在跑步乌班图,所以你应该能够使用它。
byobu
运行在 Ubuntu 11.10 上。有关当前“窗口”和系统的信息显示在底部。
byobu
创建新的“窗口”并在它们之间切换非常容易。F2制作一个,F3向后切换,F4向前切换,然后F9调出交互式主菜单。
还有更多默认byobu
键绑定。他们来了:
F2 Create a new window | F7 Scrollback and search F3 Go to the prev window | F8 Rename a window F4 Go to the next window | F9 Configuration F5 Reload profile | F12 Screen escape sequence F6 Detach from session | 'man byobu' - byobu's help 'byobu' - reattach session | 'man screen' - screen's help
来源:byobu
内置帮助,可在F9配置菜单中访问
另请参阅 Ubuntu 网站上的文档屏幕(在社区 wiki 中)和Byobu(在服务器指南中)。
答案3
例如,您可以以 root 身份启动 gnome-terminal 实例:
$ sudo gnome-terminal
然后这个 gnome-terminal 实例中的所有选项卡都将以 root 身份打开