Diperlukan otentikasi untuk mengelola layanan atau unit sistem.

19

Saya memiliki masalah aneh setiap kali mencoba menghentikan / memulai daemon sebagai pengguna biasa, ia meminta untuk mengautentikasi kredensial pengguna biasa lainnya - misalnya:

[bob@server ~]$ systemctl stop some-daemon.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: alice
Password: 

Mengapa meminta alice untuk mengautentikasi ketika bob masuk, dan bagaimana cara memperbaikinya?

Jack O'Leary
sumber
Seperti apa tampilan file konfigurasi layanan?
Jenny D mengatakan Reinstate Monica
@ JennyD: Di mana lokasi file konfigurasi?
Jack O'Leary
Apa maumu? Anda ingin memulai layanan salin sendiri untuk setiap pengguna? Misalnya mulai sendiri VNC-daemon untuk alice dan VNC-daemon sendiri untuk bob ?
Alexander Tolkachev
@AlexanderT: Setiap pengguna perlu memiliki vncserver sendiri, begitulah ia dirancang, jadi ya - itu kurang lebih itu. Bob tidak menjalankan server vnc, dia menjalankan sesuatu yang tidak terkait, namun ketika dia mencoba untuk memulainya, systemctl meminta kata sandi alice ... (mengangkat bahu).
Jack O'Leary
@ JackO'Leary, Anda dapat mencoba menggunakan systemd --userseperti yang dijelaskan dalam artikel ini . Kalau tidak, Anda bisa memberikan sudo untuk setiap pengguna untuk layanan yang diperlukan.
Alexander Tolkachev

Jawaban:

8

Sistem Anda menggunakan polkitManajer Otorisasi dan pesannya dari file /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy. polkitdapat dikonfigurasikan dalam /etc/polkit-1dan /usr/share/polkit-1direktori, lebih khusus dalam rules.ddan actionssubdirektori. Lihat halaman manual Polkit untuk informasi lebih lanjut.

Johan Myréen
sumber
Dari dokumentasi: "polkit memungkinkan pengguna untuk mendapatkan otorisasi sementara melalui otentikasi pengguna administratif atau pemilik sesi milik klien." Mungkin ini bisa memberi petunjuk mengapa ia meminta kata sandi alice.
Johan Myréen
Saya pikir Anda ke sesuatu di sini, meskipun saya masih benar-benar bingung di mana harus menghapus aturan atau apa pun dari pengguna lain yang terus meminta untuk mengotentikasi. Saya mencari di kedua direktori itu dan bahkan melakukan "alice" dan tidak ada yang dikembalikan.
Jack O'Leary
Anda mengatakan sebelumnya bahwa Anda melakukan su - alicesebelum memulai daemon vnc. Saya kira itu membuat alice "pemilik sesi milik klien".
Johan Myréen
Yang tidak masuk akal adalah bahwa itu hanya dilakukan untuk satu layanan, yang kemudian dihentikan dan pengguna keluar. Layanan lain untuk bob seharusnya tidak ada hubungannya dengan alice karena itu adalah sesuatu yang sama sekali berbeda - Ini sangat aneh ... Saya tidak keberatan menonaktifkan polkit sama sekali jika ini seperti apa itu perilaku normal.
Jack O'Leary
Anda dapat mengetahui siapa pemilik sesi dengan loginctlperintah. Ini dapat mengkonfirmasi atau membantah teori saya bahwa polkit meminta pemilik sesi untuk mengotentikasi. Saya benar-benar tidak bisa mengatakan mengapa alice adalah pemilik dalam kasus ini.
Johan Myréen
5

Saat mengelola layanan sistem, Anda harus melakukannya sebagai root bukan sebagai pengguna biasa. Ini ditunjukkan oleh $karakter di akhir prompt shell.

Anda dapat menggunakan sudo commandatau beralih ke root (shell root biasanya ditunjukkan oleh #char).

Khaled
sumber
Bahkan jika saya melakukannya sebagai root, ia meminta otentikasi pengguna normal. Pada dasarnya yang dilakukan oleh pengguna root su - alice, kemudian systemctluntuk memulai daemon vnc mereka, tetapi sekarang ia meminta otentikasi mereka untuk setiap systemctlmasalah, apa pun itu ...
Jack O'Leary
Saya mendapat pesan kesalahan saat saya mengetik '/etc/init.d/munge start'. Menambahkan sudo memperbaikinya. Terima kasih!
fchen
0

Periksa / etc / groups dan aturan sudoers. Ini bisa terjadi jika seseorang menambahkan dirinya ke grup wheel dan menjadi root seperti itu.

Natermer
sumber