Làm cách nào để ngăn người quản lý không yêu cầu mật khẩu gốc?


18

Khi bắt đầu virt-manager, nó yêu cầu mật khẩu root.

Có vẻ như trình quản lý virt khiến trình nền libvirtd chạy pkcheck với một vài đối số, sau đó hiển thị hộp thoại xác thực này. Vì vậy, chính sách này là những người yêu cầu mật khẩu gốc.

Trang web chính thức (libvirt.org) mô tả cách xác định quy tắc Chính sách để thoát khỏi dấu nhắc mật khẩu:

$ sudo cat /etc/polkit-1/localauthority/50-local.d/50-org.example-libvirt-remote-access.pkla
[libvirt Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

Thư mục con "tác giả địa phương" không tồn tại. Tạo nó và đặt một tệp có tên và nội dung đó (libvirt -> tên nhóm của tôi) trong đó dường như không có bất kỳ ảnh hưởng nào. Ngoài ra, có một tệp mặc định, sử dụng cú pháp JavaScript:

/etc/polkit-1/rules.d/50-default.rules

Gói này được cài đặt trên hệ thống, cộng với một vài giao diện DE:

polkit-0.107-4.fc18.x86_64

Rõ ràng cấu hình ví dụ trên libvirt.org đã lỗi thời?

Cấu hình nào là cần thiết để thoát khỏi dấu nhắc mật khẩu (đối với một nhóm người dùng cụ thể)?

Câu trả lời:


16

/etc/polkit-1/rules.d/10.virt.rules:

polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("libvirt")) {
        return polkit.Result.YES;
    }
});

Bạn sẽ phải thực hiện các bước phổ biến bao gồm khởi động lại bộ chính sách và bắt đầu một phiên mới với người dùng tương ứng sau khi thêm anh ấy vào libvirtnhóm.

Có vẻ như tài nguyên nói về Fedora 18 nhưng nó đã sử dụng cú pháp javascript rồi nên có lẽ nó cũng hợp lệ với Fedora 19.

Liên kết:


1
Giải pháp này hoạt động! Cảm ơn các liên kết là tốt. Tiền thưởng được trao.
senorsmile

Xin lỗi vì định dạng sai, đã sửa.
Pavel imerda

Làm thế nào điều này so sánh với việc thêm người dùng vào nhóm libvirt? Tôi đã thử nghiệm thêm người dùng vào nhóm libvirt và sau đó không cần xác thực bổ sung.
jwbensley

1
@jwbensley Cách polkit là động và cung cấp quyền cho chủ sở hữu của phiên cục bộ đang hoạt động. Cách nhóm là tĩnh và cung cấp đặc quyền cho người dùng cụ thể đó. Chọn cách của bạn khi bạn thấy phù hợp.
Pavel imerda

1

Lời nhắc mật khẩu được thực hiện để bảo mật hệ thống, vì vậy nếu bạn làm điều này có thể khiến nó dễ bị tấn công.

  1. Tạo Groupnhóm trên máy của bạn. hoặc bạn có thể chạy "sudo groupadd -r Group" này

  2. Bạn có thể bất kỳ người dùng nào bạn muốn vào nhóm hệ thống này bằng cách chạy "sudo usermod -a -G Group User"

  3. Bây giờ bạn cần tạo chính sách Chính sách của chúng tôi để cho phép người dùng Groupchạy trình quản lý virt

bạn sẽ tạo một tệp tại đường dẫn này: "/ etc / polkit-1 / localmasterity / 50-local.d / 50-org. Group-libvirt-local-access.pkla"
và bạn sẽ đặt các dòng bên dưới vào đó

[Cho phép Groupquyền quản lý libvirt nhóm ]
Danh tính = unix-nhóm: Group
Action = org.libvirt.unix.manage
resultAny = yes
resultInactive = yes
resultActive = yes

Đó là tất cả những gì bạn cần làm bây giờ bạn có thể chạy nó. Và tôi hy vọng điều này sẽ giúp bạn.


Đây là giải pháp cũ. Giải pháp này KHÔNG hoạt động trên các hệ điều hành Linux dựa trên hệ thống mới hơn, chẳng hạn như Fedora 19 hoặc Hiện tại Arch. (Tôi vừa kiểm tra nó. Thậm chí không có thư mục localmasterity và việc tạo, thư mục con và tệp được chỉ định không làm gì cả).
senorsmile

@senorsmile Bạn đã nộp báo cáo lỗi với Fedora 19 chưa?
Pavel imerda
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.