TL; DR: Hãy thử cài đặt policykit-1
và policykit-1-gnome
các gói.
Bạn có thể cần polkit (còn gọi là PolicyKit).
Hầu hết các tiện ích quản trị hệ thống đồ họa trong Ubuntu, bao gồm Trung tâm phần mềm, thường có thể được chạy mà không có sudo
hoặc bất cứ thứ gì khá giống như nó. Bạn chỉ cần chạy chúng giống như cách bạn chạy bất kỳ chương trình nào.
Khi đến lúc thực hiện một tác vụ yêu cầu quyền root, họ sử dụng polkit để thực hiện các hành động cần thiết. polkit là một cơ chế riêng biệt từ sudo, cho phép quản trị viên thực hiện các hành động với quyền root. Nó được cài đặt trên các hệ thống Ubuntu trên máy tính để bàn nhưng theo mặc định không phải là một phần của cài đặt Ubuntu Server.
Do đó, hành vi bình thường của Trung tâm phần mềm là bạn có thể gọi nó một cách đơn giản vì software-center
nó sẽ không nhắc bạn xác thực vào thời điểm đó, nhưng sau đó khi bạn bảo nó cài đặt hoặc gỡ bỏ phần mềm, nó sẽ nhắc bạn (bằng đồ họa) để xác thực.
Âm thanh từ mô tả của bạn giống như hệ thống của bạn bắt đầu như một hệ thống Máy chủ Ubuntu không có GUI và sau đó bạn đã cài đặt GUI. Có lẽ các gói chính sách-1 và chính sách-1-gnome chưa được cài đặt. Nếu bạn cài đặt, polkit rất có thể sẽ bắt đầu hoạt động cho Trung tâm phần mềm và các tiện ích khác như vậy.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Sau đó, bạn sẽ có thể chạy:
software-center
(Hoặc chọn Trung tâm phần mềm theo đồ họa như được cung cấp cho bất kỳ môi trường máy tính để bàn nào bạn đã cài đặt.)
Nếu bạn muốn có một hệ thống máy tính để bàn Ubuntu đầy đủ chức năng, tôi khuyên bạn nên cài đặt siêu dữ liệu cho bất kỳ "hương vị" nào của Ubuntu mà bạn muốn biến hệ thống của mình thành. Về cơ bản, nếu bạn muốn có một hệ thống máy tính để bàn Ubuntu thông thường, hãy cài đặt máy tính để bàn Ubuntu .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Điều này sẽ điền vào các khoảng trống khác nhau, như không có polkit, đi kèm với việc cài đặt GUI tối thiểu hơn trên hệ thống máy chủ của bạn. Mặt khác, nếu bạn thích GUI tối thiểu hơn, bạn có thể chỉ cần cài đặt các gói polkit đó.
Để biết thêm thông tin, hãy xem Làm thế nào để bạn chạy Ubuntu Server với GUI?
sudo
với xác thực đồ họa.
Nếu bạn thực sự cần chạy các lệnh với quyền root nhưng nhận được hộp thoại xác thực đồ họa, thứ bạn đang tìm kiếm là gksudo
( hoặcgksu
). Điều này được cung cấp bởi gói gksu . Nó là một lối vào đồ họa cho sudo
.
Thông thường gksudo
được sử dụng để chạy các ứng dụng đồ họa dưới dạng root (hoặc một số người dùng khác ngoài người dùng khởi chạy chúng). Nhưng bạn cũng có thể sử dụng nó để chạy các lệnh phi đồ họa - miễn là các lệnh có thể được chạy với sudo
.
Bạn có thể chạy gksudo
từ một thiết bị đầu cuối nhưng bạn không phải. Bạn có thể chạy nó từ hộp thoại Alt+ F2(lệnh chạy) hoặc đặt nó vào Exec=
dòng của một .desktop
tệp (hoặc bất kỳ cách nào khác bạn chạy các chương trình đồ họa).
Lưu ý rằng bạn nên xem xét sử dụng gksudo
để chạy các ứng dụng đồ họa như là người chủ ngay cả khi bạn đang chạy chúng từ một thiết bị đầu cuối, bởi vì lệnh như sudo ...
nơi ...
là một ứng dụng đồ họa thực sự có thể phá vỡ các cấu hình cho mỗi ứng dụng của người sử dụng không phải root chạy chúng. (May mắn là điều này có thể sửa được.) sudo gedit
Đặc biệt nổi tiếng.
Để biết thêm thông tin về sự cố với sudo
các ứng dụng đồ họa và phải làm gì thay vào đó, hãy xem:
Ngoài ra còn có cách đồ họa dựa trên polkit ... cho các lệnh phi đồ họa.
gksudo
hoạt động tốt để chạy cả chương trình đồ họa và phi đồ họa. Bạn có lẽ nên sử dụng nó.
Nhưng một sự thay thế, sử dụng polkit thay vì sudo
và chỉ hoạt động cho các chương trình phi đồ họa , là pkexec
.
Ví dụ: nếu bạn chạy pkexec touch /root/foo.txt
, bạn sẽ được nhắc với hộp thoại xác thực đồ họa và nếu xác thực thành công, touch /root/foo.txt
sẽ được chạy, tạo ( hoặc làm mới ) foo.txt
trong /root
thư mục.
pkexec
sẽ sử dụng hộp thoại phi đồ họa, yêu cầu thiết bị đầu cuối, trong trường hợp không thể tạo hộp thoại đồ họa. Nhưng điều này khó có thể xảy ra nếu bạn đang chạy nó thông qua một cơ sở được cung cấp bởi vỏ đồ họa hoặc môi trường máy tính để bàn của bạn.
- Tại sao
pkexec
chỉ làm việc cho các chương trình phi kỹ thuật ? Trên thực tế, nó cũng chạy các chương trình đồ họa, nhưng chỉ khi polkit được cấu hình đặc biệt để cho phép nó - điều thường không được thực hiện. Xem man pkexec
(và phiên bản ngược dòng, có ảnh chụp màn hình ), câu trả lời này và câu trả lời đó để biết một số chi tiết, nếu bạn quan tâm.
sudo
so với polkit (một số chi tiết kỹ thuật, chỉ khi bạn quan tâm)
Một cái mới gksu
/ gksudo
sẽ sử dụng polkit thay vì sudo
để thực hiện công việc của nó , mặc dù phiên bản này chưa được áp dụng rộng rãi. Tôi chủ yếu là đưa nó lên để giới thiệu các README
tập tin trong mã của nó nguồn (được viết bởi Gustavo Noronha Silva), điều này giải thích sự khác biệt quan trọng giữa sudo
và polkit. Để trích dẫn từ nó một cách ngắn gọn:
PolicyKit giải quyết vấn đề của một ứng dụng cần các đặc quyền cao hơn bằng cách cung cấp các phương tiện để cho phép người dùng tự xác thực và cho các ứng dụng để xác minh thông tin xác thực và ủy quyền. Ứng dụng phải được cấu trúc theo cách mà tất cả các hoạt động đặc quyền được thực hiện bởi một dịch vụ D-Bus nhỏ (tốt nhất là), được chỉ huy bởi mã không có đặc quyền. Tất cả "hành động" được thực hiện cần có sự cho phép thích hợp, được xử lý thông qua Bộ chính sách.
4. Tại sao phải duy trì gksu?
Vì vậy, điều này về cơ bản làm cho gksu không cần thiết, vì các ứng dụng không còn cần phải chạy như một người dùng đặc quyền và xác thực người dùng được thực hiện bởi Auth Agent của PolicyKit. Nhưng các ứng dụng cần được cấu trúc lại để áp dụng cấu trúc mới này, và có một số trường hợp trong đó những gì bạn muốn thực sự là thứ chạy chương trình với quyền root.
Những vấn đề này thể hiện tình huống mà tôi tin rằng bạn đang gặp phải:
- Trung tâm phần mềm được thiết kế để sử dụng polkit cho độ cao đặc quyền, do đó chỉ những hành động cụ thể cần được thực hiện dưới quyền root. Đối với điều này, nó cần polkit, bị thiếu (hoặc bị hỏng) trên hệ thống của bạn.
- Vì được thiết kế để sử dụng polkit, nên không có trình khởi chạy được tạo sẵn để khởi động Trung tâm phần mềm với quyền root. Polkit không cần phải chạy các công cụ quản trị đồ họa như root, hầu hết thời gian.
- Nhưng đôi khi bạn thực sự cần phải chạy một chương trình đồ họa như root. Trong trường hợp đó, bạn có thể sử dụng
gksu
/ gksudo
.
(... Cuối cùng có thể sử dụng polkit đằng sau hậu trường - nhưng gksudo
hiện tại trong Ubuntu là loại truyền thống sử dụng sudo
).