Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - nonamex

Stran: [1]
1
Server / Re:Polkit: pravidlo pro systemd template službu
« kdy: 29. 06. 2020, 17:25:13 »
Díky, to byla správná stopa. Ještě mi to nějaké hodiny trvalo pročíst příslušné manuály a otestovat, ale upravené pravidlo funguje přesně jak má:

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.systemd1.manage-units" &&
        RegExp('my-daemon@[A-Za-z0-9_-]+.service').test(action.lookup("unit")) === true &&
        subject.user == "foo1") {
        return polkit.Result.YES;
    }
});

Podle manuálu by místo výpisu alfanumerických znaků mělo jít jen \w, ale to mi nefungovalo. Plus jsem to rozšířil o pomlčku. Je důležité si uvědomit, že RegExp je funkce sama o sobě a .test uprostřed řádku říká, aby porovnal vzor (v jednoduchých úvozovkách) s řetězcem, který dostane z výstupu následující funkce - v tomto případě se ptám na jméno služby. Zkoušel jsem všemožné varianty, většina nefungovala, asi se to dá udělat ještě jinak, přehledněji, ale tohle povolí přesně co chci a zatím se mi to nepovedlo oblbnout.

2
Server / Polkit: pravidlo pro systemd template službu
« kdy: 27. 06. 2020, 11:50:17 »
Mám systémovou službu a potřebuju, aby byla obsluhovaná konkrétním uživatelem. Bohužel služba je jen template, a její celé jméno dopředu nevím: my-daemon@<serie alfanumerickych znaku>.service .
Zápis pravidla tímto způsobem funguje perfektně:
Kód: [Vybrat]
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
    action.lookup("unit") == "my-daemon@foo1.service" &&
    subject.user == "user1") {
    return polkit.Result.YES;
}

Jen to nefunguje obecně pro template služby, ale pro jedno konkrétní jméno. Zkoušel jsem například tyto zápisy, ale nezdá se, že by polkit dovolil nasadit regexp.
Kód: [Vybrat]
action.lookup("unit") == "my-daemon@*" &&
action.lookup("unit") == "my-daemon@[:alnum:]+" &&
action.lookup("unit") == "my-daemon@foo[0-9]" &&

Našel jsem podobný problém, bohužel řešení v mém případě nefunguje, autor testuje jména configů a v mém případě nejsou. https://unix.stackexchange.com/questions/351052/polkit-rule-for-systemd-template-unit-files .

Napadá vás, jak problém vyřešit?

OS Suse 12.5
Polkit version 0.113
Systemd version 228

Stran: [1]