Spegnere senza password su Void Linux

23/11/23 | ~ 5 minuti

Questione di sicurezza

Void Linux applica di default un comportamento quanto atipico tanto sicuro: protegge con password i comandi per spegnere, riavviare, sospendere ed ibernare il sistema. Solo l'utente root è libero di compiere queste operazioni, gli altri, se autorizzati, dovranno passare per strumenti come Sudo e digitare una password.

Configurazione di Sudo

Uno dei metodi più consigliati per aggirare questo tipo di restrizione consta nella modifica della configurazione di Sudo, agendo sul file /etc/sudoers (preferibilmente attraverso visudo) per abilitare specifici utenti all'esecuzione di comandi selezionati senza password (è richiesto comunque precedere il comando scelto dal prefisso sudo).
Durante le mie ricerche, tuttavia, ho elaborato una procedura più semplice e sicura basata su Elogind ed alcuni alias.

Elogind e D-Bus

Su Void base (senza usare la iso con XFCE), è consigliabilr installare ed abilitare il servizio di Elogind, coadiuvato da D-Bus.
Entrambi sono utilizzati per una migliore e più facile gestione delle sessioni utente; in particolare Elogind si occupa della creazione di un ambiente adatto all'esecuzione della componente grafica del sistema operativo, oltre a gestire anche alcuni aspetti delll'alimentazione e del risparmio energetico.

Comandi

Per consuetudine la rappresentazione dei comandi avviene con il prefisso "$ ", che non va digitato nella shell.

Prima di tutto installiamo i pacchetti di Elogind e D-Bus con: $ sudo xbps-install -S elogind dbus il parametro "-S" attiverà anche la sincronizzazione e l'aggiornamento dei repository.

Ora passiamo all'abilitazione dei servizi corrispondenti. $ sudo ln -s /etc/sv/elogind /var/service/ $ sudo ln -s /etc/sv/dbus /var/service/ Su Void i servizi abilitati sono quelli che hanno un collegamento simbolico nella cartella /var/service/ .

Infine procediamo alla creazione degli alias: $ echo -e "## Custom aliases\n\talias poweroff='loginctl poweroff'\n\talias reboot='loginctl reboot'\n\talias suspend='loginctl suspend'\n\talias hibernate='loginctl hibernate'\n##" >> ~/.bashrc

Spiegazione

Dopo l'installazione dei pacchetti e l'abilitazione dei loro servizi, abbiamo modificato il file nascosto .bashrc all'interno della cartella home ("~") dell'utente.
Il comando echo stampa il testo specificato tra i doppi apici appendendolo (cioè senza cancellare il contenuto originale, ma aggiungendo delle righe alla fine) nel file ~/.bashrc.
Il parametro -e impone ad echo di interpretare le cosiddette sequenze di escape, ossia dei particolari codici composti da backslash ("\") seguito da una lettera.
Quelle che infatti minano la leggibilità del codice soprastante sono le sequenze \n per andare a capo e \t per aggiungere una tabulazione all'inizio della riga.
Ho aggiunto anche delle righe facoltative di commenti all'inizio e alla fine del codice personalizzato (sono quelle precedute da "#").

Il risultato finale è riassumibile così: ... Contenuto originale di ~/.bashrc ...

## Custom aliases
 alias poweroff='loginctl poweroff'
 alias reboot='loginctl reboot'
 alias suspend='loginctl suspend'
 alias hibernate='loginctl hibernate'
##

Se avete già precedentemente personalizzato il file .bashrc, è sufficiente inserire le righe degli alias nella posizione desiderata.

Dopo un riavvio, a questo punto, potrete utilizzare i comandi poweroff, reboot, suspend ed hibernate senza la necessità di passare per sudo e/o digitare una password. La modifica si intende solo per l'utente di cui andrete ad editare il file ~/.bashrc .

Sembra un po': "Come uscire da Vim". No?

[user@dajelinux ~]$ dajelinux --per-approfondire