Come usare Run0 in Linux
![Come usare Run0 in Linux](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-00-featured-image-1-640x375.webp)
![Una fotografia che mostra un primo piano dello schermo di un computer portatile. Una fotografia che mostra un primo piano dello schermo di un computer portatile.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-00-featured-image.webp)
Run0 è un nuovo e innovativo programma di escalation dei privilegi per le distribuzioni Linux basate su Systemd. Fornisce un’alternativa leggera e “senza configurazione” alle tradizionali app di escalation come sudo e doas. Qui, ti mostriamo le basi dell’utilizzo di Run0 per escalare i comandi per il tuo sistema Linux.
Prima di procedere, potresti voler scoprire cos’è Run0 e in che cosa differisce da sudo.
Come eseguire programmi come un utente diverso
Uno degli utilizzi più comuni per le app di escalation dei privilegi è l’esecuzione di comandi come utente root. A questo proposito, toccare l’utente root in Run0 richiede di aggiungere run0 davanti al comando che si desidera eseguire. Ad esempio, quanto segue crea una nuova cartella in una directory accessibile solo da root:
Verrà visualizzata una richiesta di password CLI o una piccola finestra GUI che richiederà l’immissione della password dell’utente corrente.
![Uno screenshot che mostra la richiesta di password per Run0. Uno screenshot che mostra la richiesta di password per Run0.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-01-polkit-prompt-sample.webp)
Simile a sudo e doas, Run0 può anche passare a un utente non root quando esegue comandi. Per farlo, aggiungi il --user
flag seguito dal nome dell’utente con cui vuoi eseguire il comando:
Inserisci la password dell’utente a cui vuoi passare, quindi premi Enter.
Come passare alla shell di un altro utente
Un’altra parte fondamentale di un’app di escalation dei privilegi è la sua capacità di far scendere l’utente a una shell root. Questo ti dà la possibilità di interagire con il tuo sistema come utente root ed eseguire comandi più complessi dalla CLI.
In Run0 è possibile farlo eseguendo il programma senza argomenti aggiuntivi.
![Un terminale che mostra la shell root da un prompt Run0. Un terminale che mostra la shell root da un prompt Run0.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-02-drop-root-shell.webp)
Proprio come quando si eseguono programmi come root, è anche possibile utilizzare Run0 con il --user
flag per avviare una sessione shell come utente specifico:
![Un terminale che mostra il prompt Run0 per un utente non root. Un terminale che mostra il prompt Run0 per un utente non root.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-03-switch-regular-user-shell.webp)
Oltre a ciò, run0 consente di creare sessioni shell con permessi di gruppo temporanei per utenti non root. Ciò è utile se si desidera accedere a cartelle bloccate dietro un certo utente e gruppo senza passare a root.
Ad esempio, il seguente comando concede all’utente “alice” l’accesso temporaneo al gruppo “www-data”:
È anche possibile utilizzare il --chdir
flag per forzare un cambio di directory quando si passa a una nuova sessione shell:
![Un terminale che mostra il cambio automatico di directory quando si passa alla shell di un altro utente. Un terminale che mostra il cambio automatico di directory quando si passa alla shell di un altro utente.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-04-switch-regular-user-default-directory.webp)
Come personalizzare la sessione corrente di Run0
Il punto di forza di Run0 è che non usa setuid (SUID) per gestire le azioni del superutente. Invece, si affida a systemd-run che crea pseudo-TTY isolati per eseguire comandi come root.
Una conseguenza di questo approccio è che Systemd tratta ogni shell Run0 come un’unità discreta in esecuzione sotto il service manager. Ciò consente di personalizzare il processo della shell root, a differenza delle tradizionali app di escalation dei privilegi.
Per aggiungere un’etichetta per la shell root, usa il --unit
flag seguito dal nome che vuoi usare:
Puoi anche aggiungere una descrizione personalizzata alla tua shell root aggiungendo il --description
flag:
Verifica di aver applicato correttamente i tuoi dettagli elencando il nome personalizzato della tua shell root utilizzando systemctl
:
![Un terminale che mostra i dettagli dell'unità Systemd personalizzata. Un terminale che mostra i dettagli dell'unità Systemd personalizzata.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-05-list-custom-run0-service-name-description.webp)
Di default, Run0 cambia il colore dello sfondo della shell di root in rosso. Sebbene questo sia un utile indicatore visivo, può distrarre se si utilizza un tema chiaro sul sistema.
Per modificare questa impostazione, utilizzare il --background
flag seguito da un valore compreso tra 40 e 49:
![Un terminale che mostra il diverso colore di sfondo in Run0. Un terminale che mostra il diverso colore di sfondo in Run0.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-06-change-default-root-shell-background.webp)
Infine, puoi anche regolare il “livello di gentilezza” della tua shell di root. Questo è un valore tra -20 e 19 che determina se il tuo kernel darà priorità al tuo processo rispetto ad altri.
Per dare alla shell root la massima priorità, usa il --nice
flag con il valore “-20”:
![Un terminale che evidenzia la shell root con un livello nice modificato. Un terminale che evidenzia la shell root con un livello nice modificato.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-07-highlight-modified-nice-value-root-shell.webp)
Come raggruppare le sessioni Run0 insieme
Oltre a poter personalizzare ogni shell root di Linux, puoi anche usare Run0 per raggrupparle insieme in una slice di Systemd. Questa è una struttura speciale che consente alla tua macchina di adattare la richiesta di risorse per i processi senza influenzare il resto del sistema.
Per creare una shell root su una slice diversa, esegui il --slice
flag seguito dal nome della slice su cui vuoi spostarti:
Conferma che la nuova sessione è in esecuzione nella nuova slice elencando i processi al suo interno:
![Un terminale che mostra i dettagli della porzione Systemd personalizzata. Un terminale che mostra i dettagli della porzione Systemd personalizzata.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-08-show-custom-systemd-slice-details.webp)
Puoi anche usare il --slice-inherit
flag per raggruppare la tua nuova slice insieme alla slice da cui è derivato Run0. Questo è utile se hai già raggruppato le tue shell nelle rispettive slice e vuoi solo aggiungere una nuova shell:
Come eseguire comandi sui contenitori Systemd utilizzando Run0
Systemd-nspawn è un programma speciale che può creare e gestire contenitori Linux leggeri simili a Docker. Essendo parte della suite Systemd, puoi anche usare Run0 per eseguire comandi nei tuoi contenitori nspawn dalla tua macchina host.
Inizia elencando i contenitori Systemd-nspawn disponibili nel tuo sistema:
![Un terminale che mostra un elenco dei contenitori Systemd-nspawn disponibili. Un terminale che mostra un elenco dei contenitori Systemd-nspawn disponibili.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-09-list-available-systemd-container-machines.webp)
Esegui il seguente comando per creare una cartella all’interno della directory principale del tuo contenitore:
È anche possibile passare alla shell root del contenitore utilizzando Run0:
![Un terminale che mostra il comando per cambiare il prompt della shell del contenitore. Un terminale che mostra il comando per cambiare il prompt della shell del contenitore.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-10-drop-root-shell-container-system.webp)
Conferma che ora stai eseguendo all’interno del tuo contenitore stampando il nome host della sessione del tuo terminale:
![Un terminale che mostra il processo di passaggio dal sistema locale al contenitore Systemd-nspawn. Un terminale che mostra il processo di passaggio dal sistema locale al contenitore Systemd-nspawn.](https://cdn.thewindowsclub.blog/wp-content/uploads/2024/08/use-run0-linux-11-check-change-hostname-container-drop-shell.webp)
Imparare a usare Run0 per eseguire e gestire i comandi root in Linux è solo la punta dell’iceberg quando si tratta di app di escalation dei privilegi. Immergiti nel mondo complesso esaminando le differenze tra su, sudo e sudo -s.
Credito immagine: Xavier Cee tramite Unsplash . Tutte le modifiche e gli screenshot sono di Ramces Red.
Lascia un commento