Làm thế nào để chạy Terminal là root?


35

Khi chúng ta muốn chạy một chương trình như là người chủ chúng tôi sử dụng sudo, gksu, gksudovà vv Bây giờ câu hỏi của tôi là làm thế nào để chúng ta có thể chạy một Terminal người dùng root trong Terminal?

Tôi đã thử với việc sử dụng gksudo terminalgksu terminalkhông có gì xảy ra. và bằng cách chạy sudo terminaltôi gặp lỗi sudo: terminal: command not found.


4
Đó là gnome-terminal. Vì vậy, hãy thử sudo gnome-terminal.
g_p

1
Có thực sự có bất kỳ lợi thế để chạy chương trình thiết bị đầu cuối như root? Tại sao không chỉ bắt đầu một vỏ gốc tương tác bên trong thiết bị đầu cuối với sudo -i?
Steeldo

2
@Guru sudokhông nên được sử dụng để chạy các chương trình đồ họa như thế này. Nếu gksu/ gksudokhông (hoặc có thể không được cài đặt), sudo -H ...(hoặc sudo -i ...) có thể được sử dụng để chạy ứng dụng đồ họa ...dưới dạng root.
Eliah Kagan

Ừ bạn đúng rồi đó.
g_p

Câu trả lời:


53

Trình giả lập thiết bị đầu cuối mặc định trên Ubuntu là Terminal Gnome . Nó nằm ở /usr/bin/gnome-terminalvà có thể được chạy bằng gnome-terminallệnh.

Bạn thực sự muốn gì

Những gì bạn có thể muốn là một shell chạy dưới quyền root, như thể nó được tạo ra từ một đăng nhập gốc (ví dụ, với tất cả các biến môi trường được đặt cho root chứ không phải cho người dùng của bạn).

Giả sử đó là những gì bạn muốn, như Steeldo đã đề xuất , chỉ cần chạy:

sudo -i

Bạn sẽ có một vỏ gốc trong đó các lệnh bạn nhập sẽ được chạy dưới dạng root (mà không cần phải đặt trước chúng sudo).

Nhưng nếu bạn thực sự muốn chạy ứng dụng giả lập thiết bị đầu cuối đồ họa như root, hãy đọc tiếp. Tôi trình bày hai cách: với gksu/ gksdovà với sudolệnh.

Với gksu/gksudo

Vì bạn đã cài đặt gói gksuCài đặt gksu , bạn có thể chạy gnome-terminalbằng root với:

gksu gnome-terminal
gksudo gnome-terminal

(Vì gksuđược đặt thành chế độ sudo trong Ubuntu theo mặc định, các giá trị này phải tương đương.)

Chạy gnome-terminalnhư root mà không có terminal không root kiểm soát:

Hầu như mọi môi trường máy tính để bàn đều cung cấp một phương tiện để chạy lệnh mà không phải mở thiết bị đầu cuối (khi đó, nếu đóng, thường sẽ khiến lệnh bị chấm dứt).

Điều này thường đạt được với Alt+ F2. Một hộp văn bản có nhãn Run lệnh (hoặc tương tự) sẽ xuất hiện và bạn có thể nhập lệnh của mình.

Ví dụ: có vẻ như thế này trong Unity:

Chạy một hộp văn bản lệnh trong Unity

Và như thế này trong MATE (Gnome Flashback / Fallback, Xfce, LXDE tương tự nhau):

Chạy hộp thoại Command trong MATE

Lưu ý rằng điều này hoạt động với gksugksudobởi vì họ sử dụng hộp thoại xác thực đồ họa. Nếu bạn nhấn Alt+ F2và chạy sudo ..., thì bạn sẽ không thể tương tác với dấu nhắc mật khẩu.

Với sudo

Nếu bạn không có gói gksu và bạn sẽ không muốn cài đặt nó, bạn có thể sử dụng:

sudo -H gnome-terminal

Các -Hlá cờ rất quan trọng vì nó đặt HOMEbiến môi trường để /rootthay cho thư mục home của người dùng của riêng bạn. Bạn không nên sử dụng sudo gnome-terminalvì nó có thể phá vỡ cấu hình gnome-terminal thuộc về người dùng không root. Để biết thêm thông tin về điều này, xem:

( sudo -i gnome-terminalcũng ổn.)

Loại bỏ các thiết bị đầu cuối không root kiểm soát:

Nếu bạn (1) mở một thiết bị đầu cuối đồ họa, (2) chạy một cái gì đó giống như sudo -H gnome-terminaltrong nó, để tạo một thiết bị đầu cuối gốc đồ họa mới và (3) thoát khỏi thiết bị đầu cuối đồ họa không gốc ban đầu ... thì thiết bị đầu cuối đồ họa gốc cũng thoát khỏi .

Điều này là do thiết bị đầu cuối đồ họa gốc được gửi SIGHUP khi thiết bị đầu cuối sở hữu nó bị thoát.

Để ngăn chặn điều này, bạn có thể nghĩ rằng bạn có thể khởi chạy thiết bị đầu cuối gốc đồ họa với:

sudo -H gnome-terminal &

Nhưng điều này sẽ chỉ hoạt động nếu sudokhông phải nhắc nhập mật khẩu. Nếu vậy, bạn sẽ không thấy dấu nhắc mật khẩu.

Một cách để giải quyết vấn đề này là sử dụng:

sudo -v
sudo -H gnome-terminal

sudo -vtồn tại cho mục đích này. Như đã giải thích man sudo, nó "cập nhật [s] thông tin đăng nhập được lưu trong bộ nhớ cache của người dùng, xác thực người dùng nếu cần thiết."

Lưu ý rằng điều này sẽ vẫn không hoạt động nếu chạy trực tiếp từ hộp Alt+ F2"lệnh chạy" của môi trường máy tính để bàn của bạn , bởi vì bạn vẫn cần một thiết bị đầu cuối để nhập mật khẩu của mình sudo -v.

Hoặc bạn có thể làm theo cách có thể được gọi là cách truyền thống, bằng cách tạm dừng công việc sau khi nó bắt đầu:

  1. Chạy sudo -H gnome-terminaltừ thiết bị đầu cuối đồ họa không gốc.
  2. Nhập mật khẩu của bạn như được nhắc bởi sudo. Thiết bị đầu cuối đồ họa sẽ bắt đầu.
  3. Vẫn trong thiết bị đầu cuối không root , nhấn Ctrl+ Zđể tạm dừng thiết bị đầu cuối gốc. Trong khi thiết bị đầu cuối gốc bị treo, bạn không thể sử dụng nó; giao diện của nó sẽ không đáp ứng với hành động của bạn.
  4. Thoát khỏi thiết bị đầu cuối không kiểm soát với exit. Công việc thiết bị đầu cuối gốc đồ họa sẽ tự động không bị bỏ qua và bị từ chối bởi thiết bị đầu cuối không gốc.

Nói ngắn gọn:

sudo -H gnome-terminal
^Z
exit

Nhưng giả sử bạn muốn tiếp tục sử dụng thiết bị đầu cuối gốc, không root. Sau đó, bạn có thể chạy , số công việc của thiết bị đầu cuối đồ họa, để tiếp tục công việc ở chế độ nền. Bạn có thể chạy để tìm nhưng có lẽ bạn sẽ không phải - số đó được hiển thị như khi bạn nhấn + . Ví dụ:bg NNjobsN[N]CtrlZ

ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek: 
^Z
[1]+  Stopped                 sudo -H gnome-terminal
ek@Ilex:~$

Tôi cũng có thể chạy theo xterm. Có bao nhiêu thiết bị đầu cuối tồn tại trong Ubuntu?
αғsнιη

@KasiyA rất nhiều. Tôi đã từng dừng đếm ở 25. Putty, Terminator cũng được sử dụng rất nhiều.
Rinzwind

6

Câu trả lời ngắn:

gksudo gnome-terminal
(assuming gksu is installed)

mở một thiết bị đầu cuối như root:

root@jacob-Satellite-L300:~#

Không cần phải giải thích rằng bạn có thể sử dụng điều này để mở bất kỳ thiết bị đầu cuối nào như root như thế này; như Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole), v.v.


1
Còn cái này thì sudo x-terminal-emulatorsao?
αғsнιη

@KasiyA Bạn vẫn nên sử dụng gksu x-terminal-emulator, gksudo x-terminal-emulator, kdesudo x-terminal-emulator(nếu môi trường máy tính để bàn của bạn là KDE), sudo -H x-terminal-emulatorhoặc sudo -i x-terminal-emulatorthay vào đó, để tránh vấn đề đó . Tương tự, sudo geditkhông nên được sử dụng để chạy geditnhư root.
Eliah Kagan

2

Như đã nói trước đây, bạn hỏi cách chạy Terminal với quyền root, nhưng nhiều khả năng bạn thực sự muốn chạy ứng dụng Terminal đồ họa như người dùng bình thường của bạn và bắt đầu một shell root bên trong nó nơi bạn đăng nhập bằng root. Theo cách này, ứng dụng thiết bị đầu cuối đồ họa không được cấp quyền root. Các câu trả lời trước dường như không đưa ra các dòng lệnh rõ ràng để sử dụng vì vậy đây là những gì tôi sử dụng.

Với xterm

xterm -bg black -fg red -e sudo -i

'-E sudo -i' bảo xterm chuyển sang root trong phiên và màu sắc chỉ để làm cho nó rất rõ ràng rằng đó là vỏ gốc.

Với thiết bị đầu cuối Gnome

gnome-terminal -- sudo -i

Cá nhân, tôi liên kết các phím bấm Gnome để khởi chạy các thiết bị đầu cuối một cách dễ dàng

Đi tới cài đặt Bàn phím, thêm lối tắt tùy chỉnh với Shortcut Super + X và ra lệnh 'xterm -bg black -fg white -sb -sl 5000' và root xterm với Shortcut Super + Z và ra lệnh 'xterm -bg black -fg red - sb -sl 5000 -e sudo -i '.

Trước đây tôi có xu hướng thích xterm hơn Gnome Terminal vì phông chữ nhỏ và đơn giản, nhưng tôi sắp đến Terminal bây giờ tôi chạy màn hình lớn DPI cao. Mã màu cho thiết bị đầu cuối của bạn là một ý tưởng rất tốt khi bạn bắt đầu chạy các cấu hình khác nhau với các hậu quả nguy hiểm để tránh tai nạn (ví dụ: root cục bộ, máy khách từ xa, root máy khách từ xa).


0

Có một cách khác để làm điều này, đã thử nghiệm và hoạt động trên Ubuntu 16.04 LTS:

Đầu tiên cài đặt bảng điều khiển gnome:

sudo apt install gnome-panel

Sau đó cài đặt gksu:

sudo apt install gksu

Sau khi cài đặt hoàn tất, hãy chạy:

gnome-desktop-item-edit ~/Desktop/ --create-new

Điều này tạo ra một lối tắt máy tính để bàn. Bạn nên có tùy chọn để đặt tên cho nó. Tôi gọi tôi là 'X-Term' nhưng bạn có thể gọi cho bạn khá nhiều bất cứ điều gì bạn muốn. Nhập /usr/bin/gksu* cho đường dẫn 'Lệnh'.

Khi bạn khởi chạy lối tắt máy tính để bàn mới, bạn sẽ được nhắc ứng dụng chạy. Nhập vào : xterm.

Bây giờ bạn sẽ được nhắc nhập mật khẩu của bạn; một khi bạn nhập nó, bạn sẽ có quyền truy cập vào một thiết bị đầu cuối gốc hoạt động. Hãy nhớ chỉ sử dụng khi thực sự cần thiết và đóng cửa khi bạn hoàn thành nó.

* giả sử bạn đã cài đặt Ubuntu với cài đặt mặc định và không thay đổi đáng kể bất kỳ hệ thống tệp nào kể từ khi cài đặt.


0

Tôi đang sử dụng Debian 9 căng

Đi tới phím tắt, thêm một lệnh như thế này:

`gksu / usr / bin / x-terminal-giả lập '

Tôi đã đặt Super + Tlàm phím tắt.

Bây giờ, bất cứ khi nào bạn muốn mở một thiết bị đầu cuối là root, chỉ cần gõ phím tắt của bạn

Tôi hy vọng nó có thể giúp được ai đó trong tương lai


-1

Bạn có thể bắt đầu một vỏ tương tác với:

sudo -s

Để biết thêm thông tin làm:

man sudo

và đọc -s --shellphần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.