Run0 vs Sudo: qual è la differenza?

Run0 vs Sudo: qual è la differenza?
Una fotografia di un monitor che mostra un prompt del terminale con il comando

Run0 è un nuovo programma di escalation dei privilegi per sistemi Linux basati su Systemd. Simile a sudo, consente di eseguire comandi come utente root e di accedere alle parti interne della macchina. In questo articolo, confrontiamo Run0 e Sudo per aiutarti a determinare lo strumento di escalation dei privilegi più adatto a te.

Run0 vs Sudo: un confronto fianco a fianco

Categoria Esegui0 Sudo
Configurabilità Non è dotato di un file di configurazione. Utilizza i flag della riga di comando per modificare il suo comportamento Viene fornito con due file di configurazione e molti flag della riga di comando
Facilità d’uso Semplice e diretto da usare per la maggior parte delle attività Potrebbe richiedere una configurazione prima che possa funzionare correttamente
Sicurezza Non si basa su SUID e ha un’impronta di codice più piccola Si basa su SUID e ha una superficie di attacco più ampia a causa delle dimensioni del codice
Estensibilità Non supporta plugin di terze parti Ha un’API per lo sviluppo di plugin di terze parti
Supporto di rete Progettato per funzionare su una singola macchina Può funzionare con reti di computer utilizzando criteri di accesso centralizzati
Il migliore per Utenti occasionali che cercano un’alternativa più semplice a Sudo Utenti esperti alla ricerca di un’opzione affidabile che possano personalizzare

Che cosa è Run0 e perché usarlo

Rilasciato nella versione 256 di Systemd, Run0 è un’interpretazione unica dell’escalation dei privilegi per Linux. Utilizza Systemd-run per creare un ambiente sicuro e isolato per l’esecuzione di programmi con privilegi di root.

Il principale punto di forza di Run0 è che non si basa su setuid (SUID) per eseguire comandi root. Ciò rende il programma immune agli attacchi di escalation dei privilegi comuni ai grandi programmi SUID.

Un terminale che evidenzia le proprietà setuid del binario sudo rispetto a run0.

Un altro punto di forza di Run0 è che scarica il suo agente di autenticazione su Polkit. Questo programma gestisce le impostazioni dei criteri delle app sul tuo sistema. Non solo centralizza l’autenticazione sulla tua macchina, ma ti dà anche un controllo più preciso su come programmi e utenti ottengono l’accesso root.

Infine, Run0 crea un nuovo pseudo-TTY (PTY) ogni volta che si richiama un comando privilegiato. Ciò significa che i programmi non ereditano l’ambiente shell corrente, rendendo facile isolare un processo che si comporta male sul sistema.

Un terminale che evidenzia il processo root PTY visualizzato nel systemctl del sistema.

Che cosa è Sudo e perché usarlo

Sudo è uno dei primi programmi di escalation dei privilegi per Linux e altri sistemi operativi simili a UNIX. Sviluppato per la prima volta negli anni ’80, utilizza il sistema integrato di utenti e gruppi UNIX per gestire i privilegi di root per i comandi di sistema.

Un punto di forza di sudo è che è una soluzione all-in-one per l’escalation dei privilegi e permessi. Con esso, devi solo configurare il file sudoers per gestire chi può essere un superutente e quali programmi possono eseguire come root. Ciò lo rende attraente per gli amministratori di sistema che desiderano un modo semplificato per gestire l’accesso root.

Un terminale che mostra il contenuto del file sudoers.

Un altro motivo per usare sudo è che può monitorare e rivedere la cronologia dei comandi di sistema eseguiti sulla tua macchina attraverso diversi superutenti. Questo è utile quando si risolve un problema, perché può indicare il momento esatto in cui il sistema ha avuto il problema.

Un terminale che mostra l'output del comando sudoreplay che elenca tutti i comandi sudo eseguiti nel sistema.

Infine, sudo è facile da scalare su più host con il suo supporto LDAP e Active Directory integrato. Per questo motivo, sudo può anche essere un ottimo strumento per gli amministratori che gestiscono più macchine per team e aziende.

Run0 vs Sudo: un confronto completo

Mentre Run0 e Sudo sono strumenti brillanti per elevare i privilegi utente, entrambi i programmi hanno adottato approcci diversi per ottenerlo. Di seguito, esaminiamo alcune di queste differenze per aiutarti a determinare quale si adatta meglio a te.

Configurabilità

A differenza di altri programmi di escalation dei privilegi, Run0 non usa file di configurazione per modificare il suo comportamento predefinito. Invece, lo personalizzi usando una manciata di flag incorporati mentre lo esegui sul terminale. Questo ti consente di concentrarti sul tuo flusso di lavoro invece di impantanarti nella modifica dei file di configurazione.

Un terminale che mostra la schermata di aiuto per run0.

D’altro canto, sudo fornisce molte opzioni nei suoi due file di configurazione principali: “/etc/sudo.conf” e “/etc/sudoers”. Entrambi lavorano di pari passo per controllare il funzionamento di sudo sul tuo sistema. Ad esempio, puoi persino configurare sudo per l’esecuzione senza password. Sebbene questo possa creare confusione per un nuovo utente, questo livello di flessibilità e personalizzazione ti consente di creare il tuo flusso di lavoro sudo personalizzato.

Un terminale che mostra il contenuto del file sudo.conf.

Vincitore: Sudo

Facilità d’uso

La maggior parte delle distribuzioni Linux oggi distribuisce Run0 e Sudo con impostazioni predefinite ragionevoli, rendendoli facili da usare senza alcuna configurazione aggiuntiva. Detto questo, ci sono ancora una manciata di stranezze di usabilità tra i due programmi che possono essere un fattore decisivo per alcuni utenti.

La stranezza principale di Run0 deriva dalla sua dipendenza da Polkit per l’autenticazione. In alcuni terminali, Run0 può mostrare la sua richiesta di password su un display diverso. Questo può essere un problema se si utilizza un multiplexer di terminale, come Tmux, per gestire più sessioni shell.

Uno screenshot che mostra il prompt Polkit per una richiesta run0 su un terminale multiplexato.

Nel frattempo, la più grande stranezza di Sudo è che non ti consente di modificare il file sudoers tramite un normale editor di testo. Invece, ti chiede di usare un programma chiamato Visudo, che aggiunge controlli di integrità sul file sudoers. Sebbene ciò renda più sicura la modifica del file sudoers, può essere inutilmente complesso per un utente normale che desidera solo gestire i permessi di root.

Un terminale che mostra la schermata di aiuto per l'utilità visudo.

Vincitore: Run0

Dimensione del codice sorgente

La dimensione complessiva del codice sorgente di un programma è un buon indicatore di quanto sia complesso al momento. Questo è importante per i programmi di escalation dei privilegi, poiché la complessità del codice potrebbe portare a potenziali exploit di sicurezza.

Una differenza di Run0 rispetto ad altre app di escalation dei privilegi è che è costruito su Systemd-run. Ciò non solo consente a Run0 di sfruttare le funzionalità di Systemd-run, ma significa anche che il programma stesso non contiene molto codice. Di conseguenza, Run0 è più facile da controllare per potenziali problemi di sicurezza in futuro.

Un terminale che evidenzia la frase nella pagina man di Run0 che descrive la sua compilazione su Systemd-run.

Sudo è un enorme progetto software che si estende su più file e linguaggi di programmazione. Mentre questa complessità ha permesso a sudo di essere una potente app di escalation dei privilegi, significa anche che ha una superficie di attacco enorme per potenziali exploit.

Un terminale che mostra le linee di codice complessive del repository sudo Github.

Vincitore: Run0

Età del codice sorgente

Anche l’età di un particolare progetto software è un fattore da considerare quando si considera quanto affidabile sarà un programma di escalation dei privilegi. I progetti più recenti sono spesso pieni di bug e problemi, mentre quelli più vecchi tendono a essere più stabili.

Run0 è un programma relativamente nuovo aggiunto a Systemd nel giugno 2024. Attualmente, puoi ottenere l’app solo su distribuzioni all’avanguardia come Arch Linux e Fedora Rawhide. Per questo motivo, Run0 è più adatto per lavori occasionali e non critici per la missione.

Sudo è uno dei più vecchi progetti software ancora in fase di sviluppo oggi. Con oltre 30 anni di storia di sviluppo, sudo è un programma altamente maturo in grado di gestire diversi carichi di lavoro. Ciò lo rende altamente desiderabile per coloro che cercano un programma di escalation dei privilegi stabile su cui poter contare.

Vincitore: Sudo

Run0 vs Sudo: quale app vince?

In definitiva, la scelta del programma di escalation dei privilegi più adatto dipende da cosa si intende ottenere con il sistema:

  • Se stai cercando un’app di escalation dei privilegi semplice e facile da usare , Run0 è una buona scelta. La combinazione del suo design senza configurazione e dell’approccio all’isolamento dei processi root lo rende ottimo per gli utenti occasionali che cercano un’alternativa a Sudo senza problemi.
  • Se vuoi un’app di escalation dei privilegi personalizzabile e stabile , non puoi sbagliarti con Sudo. Con la sua storia di sviluppo decennale e la ricchezza di funzionalità, è molto facile adattare Sudo al tuo flusso di lavoro personalizzato.

Scegliere la giusta app di escalation dei privilegi per la tua macchina è solo il primo passo per capire come funziona un superutente in Linux. Fai un’immersione profonda nei meccanismi interni della tua macchina ed esplora in che modo Su differisce da Sudo.

Credito immagine: Gabriel Heinzer tramite Unsplash . Tutte le modifiche e gli screenshot sono di Ramces Red.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *