GNU/Linux >> Belajar Linux >  >> Linux

Aturan Polkit Untuk File Unit Template Systemd?

Saya mencoba mencari cara untuk menulis aturan polkit untuk file template systemd. Aturan dipicu saat saya menggunakan layanan sebenarnya yang akan dipakai ([email protected] ) tetapi tidak ketika saya meninggalkan string pengenal instance ([email protected] ).

Berikut adalah aturan kerja lengkapnya:

polkit.addRule(function(action, subject) {
  if ( action.id == "org.freedesktop.systemd1.manage-units") {
    if (action.lookup("unit") == "[email protected]" && subject.isInGroup("wheel")) {
      var verb = action.lookup("verb");
      if (verb == "start" || verb == "stop" || verb == "restart") {
        return polkit.Result.YES;
      }
    }
  }
  polkit.log("action=" + action);
  polkit.log("subject=" + subject);
});

Firasat saya adalah bahwa saya dapat menggunakan regex javascript untuk hanya memasukkan string antara “@” dan “.service” tetapi saya tidak dapat mengetahuinya.

Penyedia vpn saya memiliki banyak kemungkinan server, masing-masing dengan konfigurasinya sendiri (direferensikan oleh file unit template [dilindungi email]), jadi saya benar-benar ingin tidak perlu menulis aturan polkit untuk setiap contoh template.
Terima kasih banyak!

Pembaruan:

Saya memecahkan ini sesuai dengan firasat saya di atas, menggunakan regex untuk menguji file template. Ini mungkin tidak aman?

polkit.addRule(function(action, subject) {
  if ( action.id == "org.freedesktop.systemd1.manage-units") {
      var instance = /[email protected][a-z]+.service/.test(action.lookup("unit"));
    if ( instance === true && subject.isInGroup("wheel")) {
      var verb = action.lookup("verb");
      if (verb == "start" || verb == "stop" || verb == "restart") {
        return polkit.Result.YES;
      }
    }
  }
  polkit.log("action=" + action);
  polkit.log("subject=" + subject);
});

Jawaban yang Diterima:


Linux
  1. Bagaimana mengelola unit systemd saat start-up

  2. Script Untuk Memantau Folder Untuk File Baru?

  3. Bagaimana Cara Menulis Script Startup Untuk Systemd?

  1. Script Shell Untuk Memindahkan File Terlama?

  2. Ubuntu – Membuat File Unit Di Ubuntu 16.04?

  3. File Pseudo Untuk Data Sementara?

  1. Systemd:Tidak Dapat Menonaktifkan File Unit yang Dihasilkan?

  2. Tunggu Beberapa File Selesai Diunduh?

  3. Bagaimana Cara Mengubah Pengguna Untuk Banyak File Layanan Systemd?