TL; DR:ลองติดตั้งpolicykit-1
และpolicykit-1-gnome
แพ็คเกจ
คุณอาจต้องใช้ polkit (หรือที่ชื่อว่า PolicyKit)
ยูทิลิตี้การจัดการระบบกราฟิกส่วนใหญ่ในอูบุนตูรวมถึงศูนย์ซอฟต์แวร์มักจะสามารถทำงานได้โดยไม่ต้องมีsudo
อะไรเลย คุณเรียกใช้พวกเขาในลักษณะเดียวกับที่คุณเรียกใช้โปรแกรมใด ๆ
เมื่อถึงเวลาต้องทำงานที่ต้องใช้สิทธิ์รูทพวกเขาจะใช้polkitเพื่อดำเนินการที่จำเป็น polkit เป็นกลไกที่แยกจาก sudo เพื่อให้ผู้ดูแลระบบสามารถดำเนินการตามรูทได้ มันถูกติดตั้งบนระบบ Ubuntu บนเดสก์ท็อป แต่โดยค่าเริ่มต้นไม่ได้เป็นส่วนหนึ่งของการติดตั้ง Ubuntu Server
ดังนั้นพฤติกรรมปกติของ Software Center คือคุณสามารถเรียกใช้งานได้อย่างง่ายดายเนื่องจากsoftware-center
จะไม่แจ้งให้คุณตรวจสอบสิทธิ์ในเวลานั้น แต่เมื่อคุณบอกให้ติดตั้งหรือลบซอฟต์แวร์ซอฟต์แวร์จะแจ้งให้คุณ (กราฟิก) ตรวจสอบสิทธิ์
เสียงจากคำอธิบายของคุณเช่นระบบของคุณเริ่มต้นเป็นระบบเซิร์ฟเวอร์ Ubuntu ที่ไม่มี GUI จากนั้นคุณติดตั้ง GUI อาจเป็นแพ็กเกจpolicykit-1และpolicykit-1-gnome หากคุณติดตั้ง polkit มักจะเริ่มทำงานกับ Software Center และยูทิลิตี้อื่น ๆ
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
จากนั้นคุณควรจะสามารถเรียกใช้:
software-center
(หรือเลือกศูนย์ซอฟต์แวร์แบบกราฟิกตามที่กำหนดไว้สำหรับสภาพแวดล้อมเดสก์ท็อปที่คุณติดตั้ง)
หากคุณต้องการระบบเดสก์ท็อป Ubuntu ที่ใช้งานได้ดีฉันขอแนะนำให้ติดตั้ง metapackage สำหรับ "รสชาติ" ของ Ubuntu ที่คุณต้องการเปลี่ยนระบบของคุณ โดยทั่วไปถ้าคุณต้องการปกติระบบคอมพิวเตอร์ Ubuntu ติดตั้งอูบุนตูเดสก์ทอป
sudo apt-get update
sudo apt-get install ubuntu-desktop
สิ่งนี้ควรเติมในช่องว่างต่าง ๆ เช่นไม่มี polkit ที่มาพร้อมกับการติดตั้ง GUI น้อยที่สุดบนระบบเซิร์ฟเวอร์ของคุณ ในทางกลับกันหากคุณต้องการ GUI ที่น้อยที่สุดคุณสามารถติดตั้งแพ็คเกจ polkit เหล่านั้นได้
สำหรับข้อมูลเพิ่มเติมให้ดูที่คุณใช้งานเซิร์ฟเวอร์ Ubuntu ด้วย GUI ได้อย่างไร
sudo
ด้วยการตรวจสอบกราฟิก
หากคุณต้องการคำสั่งเรียกใช้ในฐานะรูท แต่ได้รับกล่องโต้ตอบการตรวจสอบสิทธิ์แบบกราฟิกสิ่งที่คุณต้องการคือgksudo
( หรือgksu
) จัดทำโดยแพ็คเกจgksu มันเป็น frontend sudo
กราฟิกสำหรับ
โดยทั่วไปgksudo
จะใช้ในการรันแอปพลิเคชันกราฟิกในฐานะที่เป็นรูท (หรือผู้ใช้อื่นนอกเหนือจากที่ผู้ใช้เรียกใช้) แต่คุณยังสามารถใช้มันเพื่อรันคำสั่งที่ไม่ใช่กราฟิกได้ด้วย - หากคำสั่งนั้นสามารถรันsudo
ได้
คุณสามารถเรียกใช้gksudo
จากเทอร์มินัล แต่คุณไม่จำเป็นต้อง คุณสามารถเรียกใช้จากกล่องโต้ตอบAlt+ F2(เรียกใช้คำสั่ง) หรือวางไว้ในExec=
บรรทัด.desktop
ไฟล์ (หรือวิธีอื่นใดที่คุณเรียกใช้โปรแกรมกราฟิก)
โปรดทราบว่าคุณควรพิจารณาใช้gksudo
ในการเรียกใช้โปรแกรมกราฟิกเป็นรากแม้ในขณะที่คุณกำลังเรียกพวกเขาจากขั้วเพราะคำสั่งเช่นsudo ...
ที่...
เป็นโปรแกรมกราฟิกจริงสามารถทำลายการกำหนดค่าต่อการประยุกต์ใช้ของผู้ใช้ที่ไม่ใช่รากทำงานพวกเขา (โชคดีที่สิ่งนี้สามารถแก้ไขได้) sudo gedit
มีชื่อเสียงโดยเฉพาะ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาsudo
สำหรับการใช้งานกราฟิกและสิ่งที่ต้องทำแทนดู:
นอกจากนี้ยังมีวิธีกราฟิกที่ใช้ polkit ... สำหรับคำสั่งที่ไม่ใช่กราฟิก
gksudo
ทำงานได้ดีสำหรับการเรียกใช้โปรแกรมกราฟิกและไม่ใช่กราฟิก คุณน่าจะใช้มัน
แต่ทางเลือกอื่นคือการใช้ polkit แทนที่จะsudo
ทำงานเฉพาะกับโปรแกรมที่ไม่ใช่กราฟิกpkexec
เท่านั้น
ตัวอย่างเช่นหากคุณเรียกใช้pkexec touch /root/foo.txt
คุณจะได้รับแจ้งพร้อมกล่องโต้ตอบการตรวจสอบสิทธิ์แบบกราฟิกและหากการรับรองความถูกต้องสำเร็จให้touch /root/foo.txt
เรียกใช้สร้าง ( หรือทำให้ใหม่ ) foo.txt
ใน/root
โฟลเดอร์
pkexec
จะใช้กล่องโต้ตอบที่ไม่ใช่แบบกราฟิกซึ่งต้องใช้เทอร์มินัลในกรณีที่ไม่สามารถสร้างไดอะล็อกกราฟิก แต่สิ่งนี้ไม่น่าจะเกิดขึ้นหากคุณเรียกใช้ผ่านสิ่งอำนวยความสะดวกที่จัดทำโดยเชลล์กราฟิกหรือสภาพแวดล้อมเดสก์ท็อปของคุณ
- เหตุใดจึง
pkexec
ทำงานเฉพาะกับโปรแกรมที่ไม่ใช่กราฟิกเท่านั้น จริงๆแล้วมันยังรันโปรแกรมกราฟิก แต่เฉพาะเมื่อ polkit ได้รับการกำหนดค่าเป็นพิเศษเพื่อให้มัน - ซึ่งมักจะไม่ได้ทำ ดูman pkexec
(และเวอร์ชันต้นน้ำพร้อมภาพหน้าจอ ) คำตอบนี้และคำตอบนั้นสำหรับรายละเอียดบางอย่างหากคุณสนใจ
sudo
เทียบกับ polkit (รายละเอียดทางเทคนิคเฉพาะในกรณีที่คุณสนใจ)
ใหม่gksu
/ gksudo
จะใช้ polkit แทนsudo
การทำงานแม้ว่ารุ่นนี้จะไม่ได้รับการยอมรับอย่างกว้างขวาง ผมส่วนใหญ่นำมาขึ้นที่จะแนะนำแฟ้มในรหัสของแหล่งที่มา (เขียนโดย Gustavo Noronha ซิลวา) ซึ่งจะอธิบายความแตกต่างที่สำคัญระหว่างและ polkit อ้างจากมันสั้น ๆ :README
sudo
PolicyKit แก้ปัญหาของแอปพลิเคชั่นที่ต้องการสิทธิพิเศษที่สูงขึ้นโดยจัดให้มีสิ่งอำนวยความสะดวกเพื่อให้ผู้ใช้รับรองความถูกต้องของตนเองและสำหรับแอปพลิเคชันเพื่อตรวจสอบข้อมูลการรับรองความถูกต้อง แอปพลิเคชันจะต้องมีโครงสร้างในลักษณะที่การดำเนินการที่มีสิทธิพิเศษทั้งหมดจะทำโดยบริการ D-Bus ขนาดเล็ก (ควร) ซึ่งได้รับคำสั่งจากรหัส unprivileged "การกระทำ" ทั้งหมดที่ดำเนินการต้องได้รับการอนุญาตที่เหมาะสมซึ่งจัดการผ่าน Policykit
4.ทำไมต้องรักษา gksu
ดังนั้นสิ่งนี้ทำให้ gksu ไม่จำเป็นเนื่องจากแอพพลิเคชั่นไม่จำเป็นต้องเรียกใช้ในฐานะผู้ใช้ที่มีสิทธิ์อีกต่อไปและการตรวจสอบผู้ใช้จะกระทำโดย Auth Agent ของ PolicyKit แต่แอปพลิเคชันจะต้องได้รับการปรับโครงสร้างใหม่เพื่อใช้โครงสร้างใหม่นี้และมีบางกรณีที่สิ่งที่คุณต้องการคือสิ่งที่เรียกใช้โปรแกรมเป็นรูท
ปัญหาเหล่านี้รองรับสถานการณ์ที่ฉันเชื่อว่าคุณอยู่:
- Software Center ออกแบบมาเพื่อใช้ polkit สำหรับการยกระดับสิทธิ์เพื่อให้การกระทำที่เฉพาะเจาะจงเท่านั้นที่จะต้องดำเนินการในฐานะรูท สำหรับสิ่งนี้มันต้องการ polkit ซึ่งหายไป (หรือเสียหาย) ในระบบของคุณ
- เนื่องจากมันถูกออกแบบมาให้ใช้ polkit จึงไม่มีตัวเรียกใช้งานก่อนหน้าเพื่อเริ่มใช้งาน Software Center ในฐานะรูท polkit obviates จำเป็นต้องเรียกใช้เครื่องมือการจัดการแบบกราฟิกเป็น root ส่วนใหญ่เวลา
- แต่บางครั้งคุณจำเป็นต้องเรียกใช้โปรแกรมกราฟิกแบบรูท ในกรณีที่คุณสามารถใช้/
gksu
(... ซึ่งในที่สุดอาจใช้ polkit เบื้องหลัง - แต่ปัจจุบันใน Ubuntu เป็นแบบดั้งเดิมที่ใช้)gksudo
gksudo
sudo