จำลองสถานีเริ่มต้นบน Ubuntu เป็นGNOME ร์มินัล มันตั้งอยู่ที่/usr/bin/gnome-terminal
และสามารถเรียกใช้ด้วยgnome-terminal
คำสั่ง
สิ่งที่คุณต้องการจริงๆ
สิ่งที่คุณอาจต้องการคือเชลล์ที่รันในฐานะรูทราวกับว่ามันถูกสร้างขึ้นจากการล็อกอินรูท (ตัวอย่างเช่นกับตัวแปรสภาพแวดล้อมทั้งหมดที่ตั้งค่าไว้สำหรับรูตแทนที่จะเป็นผู้ใช้ของคุณ)
สมมติว่านั่นคือสิ่งที่คุณต้องการตามที่ผู้แนะนำเหล็กได้เรียกใช้:
sudo -i
คุณจะมีรูทเชลล์ซึ่งคำสั่งที่คุณป้อนจะทำงานเหมือนรูท (โดยไม่ต้องนำหน้าด้วยsudo
)
แต่ถ้าคุณต้องการรันโปรแกรมจำลองเทอร์มินัลกราฟิกเป็นรูทให้อ่านต่อ ฉันนำเสนอสองวิธี: ด้วยgksu
/ gksdo
และด้วยsudo
คำสั่ง
เนื่องจากคุณมีแพ็คเกจgksuติดตั้งอยู่คุณสามารถเรียกใช้gnome-terminal
เป็นรูทด้วย:
gksu gnome-terminal
gksudo gnome-terminal
(เนื่องจากgksu
ตั้งค่าเป็นโหมด sudo ใน Ubuntu โดยค่าเริ่มต้นสิ่งเหล่านี้ควรเทียบเท่า)
ทำงานgnome-terminal
เป็น root โดยไม่ต้องทำการควบคุมที่ไม่ใช่ root:
แทบทุกสภาพแวดล้อมเดสก์ท็อปจัดเตรียมเครื่องมืออำนวยความสะดวกในการเรียกใช้คำสั่งโดยไม่ต้องเปิดเทอร์มินัล (ซึ่งหากปิดแล้วมักจะทำให้คำสั่งถูกยกเลิก)
นี้มักจะประสบความสำเร็จกับ+Alt F2กล่องข้อความชื่อคำสั่งเรียกใช้ (หรือคล้ายกัน) จะปรากฏขึ้นและคุณสามารถป้อนคำสั่งของคุณ
ตัวอย่างเช่นมีลักษณะเช่นนี้ใน Unity:
และเช่นนี้ใน MATE (GNOME Flashback / Fallback, Xfce, LXDE คล้ายกัน):
โปรดทราบว่าสิ่งนี้ใช้ได้กับgksu
และgksudo
เนื่องจากใช้กล่องโต้ตอบการตรวจสอบสิทธิ์แบบกราฟิก หากคุณต้องกดAlt+ F2และเรียกใช้sudo ...
คุณจะไม่สามารถโต้ตอบกับรหัสผ่านได้
กับ sudo
หากคุณไม่มีแพ็คเกจ gksu และคุณไม่ต้องการติดตั้งคุณสามารถใช้:
sudo -H gnome-terminal
การ-H
ตั้งค่าสถานะมีความสำคัญเนื่องจากจะตั้งค่าHOME
ตัวแปรสภาพแวดล้อม/root
แทนที่จะเป็นโฮมไดเรกทอรีของผู้ใช้ของคุณเอง คุณไม่ควรใช้sudo gnome-terminal
เนื่องจากสามารถแยกการกำหนดค่า gnome-terminal ที่เป็นของผู้ใช้ที่ไม่ใช่รูท สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้โปรดดู:
( sudo -i gnome-terminal
ก็ไม่เป็นไร)
การกำจัดเทอร์มินัลที่ไม่ใช่รูทควบคุม:
หากคุณ(1)เปิดเทอร์มินัลกราฟิก(2)เรียกใช้บางสิ่งบางอย่างsudo -H gnome-terminal
ในนั้นเพื่อสร้างเทอร์มินัลรูทกราฟิกใหม่และ(3)ออกจากเทอร์มินัลกราฟิกที่ไม่ใช่รูทดั้งเดิม ... .
นี่เป็นเพราะเทอร์มินัลกราฟิกรูทถูกส่งSIGHUPเมื่อเทอร์มินัลที่เป็นเจ้าของถูกออก
เพื่อป้องกันสิ่งนี้คุณอาจคิดว่าคุณสามารถเปิดเทอร์มินัลรูทแบบกราฟิกด้วย:
sudo -H gnome-terminal &
แต่วิธีนี้จะใช้ได้เฉพาะในกรณีที่sudo
ไม่ต้องขอรหัสผ่าน หากเป็นเช่นนั้นคุณจะไม่เห็นพรอมต์รหัสผ่าน
วิธีหนึ่งในการแก้ไขปัญหานี้คือการใช้:
sudo -v
sudo -H gnome-terminal
sudo -v
มีอยู่เพียงเพื่อจุดประสงค์นี้ ตามที่อธิบายไว้ในman sudo
"การปรับปรุง [s] ข้อมูลประจำตัวที่แคชของผู้ใช้รับรองความถูกต้องของผู้ใช้หากจำเป็น"
ทราบว่านี้จะยังไม่ทำงานถ้าเรียกใช้โดยตรงจากสภาพแวดล้อมเดสก์ทอปของคุณAlt+ F2"รันคำสั่ง" sudo -v
กล่องเพราะคุณยังคงต้องขั้วให้ใส่รหัสผ่านของคุณสำหรับ
หรือคุณสามารถทำได้ในสิ่งที่อาจเรียกได้ว่าเป็นวิธีดั้งเดิมโดยการหยุดงานหลังจากที่เริ่ม:
- เรียกใช้
sudo -H gnome-terminal
จากเทอร์มินัลกราฟิกที่ไม่ใช่รูทดั้งเดิม
sudo
ป้อนรหัสผ่านของคุณเป็นได้รับแจ้งจาก เทอร์มินัลกราฟิกจะเริ่มขึ้น
- ยังอยู่ในเทอร์มินัลที่ไม่ใช่รูทกดCtrl+ Zเพื่อระงับเทอร์มินัลรูท ในขณะที่รูทเทอร์มินัลถูกระงับคุณไม่สามารถใช้งานได้ ส่วนต่อประสานจะไม่ตอบสนองต่อการกระทำของคุณ
exit
ออกจากการควบคุมสถานีที่ไม่ใช่รากด้วย งานเทอร์มินัลรูทแบบกราฟิกจะถูกยกเลิกและไม่ได้รับอนุญาตโดยเทอร์มินัลที่ไม่ใช่รูทโดยอัตโนมัติ
ในระยะสั้น:
sudo -H gnome-terminal
^Z
exit
แต่สมมติว่าคุณต้องการใช้เทอร์มินัลที่ไม่ใช่รูทดั้งเดิมต่อไป จากนั้นคุณสามารถเรียกใช้โดยที่หมายเลขงานของเทอร์มินัลรูทกราฟิกจะกลับมาทำงานในพื้นหลังต่อไป คุณสามารถเรียกใช้เพื่อหาแต่คุณอาจจะไม่ต้อง - จำนวนที่แสดงให้เห็นว่าเมื่อคุณกด+ ตัวอย่างเช่น:bg N
N
jobs
N
[N]
CtrlZ
ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek:
^Z
[1]+ Stopped sudo -H gnome-terminal
ek@Ilex:~$
gnome-terminal
มันเป็น ลองดูsudo gnome-terminal
สิ