Executa ordres com a root sense autenticació
En molts sistemes operatius basats en Linux, els usuaris avançats poden utilitzar el fitxer /etc/sudoers per a permetre executar certes ordres utilitzant sudo sense que se'ls demane que s'autentiquen. La KDE Linux no té /etc/sudoers ni sudo, per tant, com es pot aconseguir el mateix?
La resposta és configurar un servei de systemd que execute l'ordre especificada, i després una regla del polkit que permeta invocar el servei del sistema sense necessitat d'autenticar-se.
Servei de systemd
Heus ací un exemple de servei de systemd que executa /usr/bin/systemd-sysext refresh --always-refresh=yes per a actualitzar les extensions de systemd:
/etc/systemd/system/sysext-refresh.service
[Unit]
Description=Refresh systemd extensions
[Service]
Type=oneshot
ExecStart=/usr/bin/systemd-sysext refresh --always-refresh=yes
Regla del polkit
I ací hi ha un exemple de regla del polkit que permet als membres actius del grup wheel connectats localment invocar este servei de systemd sense autenticar:
/etc/polkit-1/rules.d/50-sysext-refresh.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "sysext-refresh.service" &&
action.lookup("verb") == "start" &&
subject.local &&
subject.active &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
Per a reforçar encara més esta regla de manera que només vos evite l'autenticació a vós, substituïu «wheel» pel vostre nom d'usuari.
Fer-lo servir
Després de crear els dos fitxers, podeu actualitzar les extensions de systemd sense autenticar-vos invocant el servei de systemd: systemctl start sysext-refresh.
El mateix es pot fer per a qualsevol altra ordre; senzillament creeu els serveis de systemd apropiats i regles polkit per ells.
Més informació
Article escrit per Nate Graham d'acord amb la llicència CC-BY-4.0.