Stai solo chiedendo in che modo un programma in modalità utente può scrivere file? User-mode (ring 3) non significa non privilegiato, sebbene la modalità kernel (ring 0, l'opposto della modalità utente) implichi privilegi. Ogni volta che sudo
un comando, stai eseguendo il codice ring 3 che può modificare file arbitrari. I programmi utente "root" vengono eseguiti nell'anello 3 proprio come chiunque altro.
Un rootkit come questo ovviamente richiede privilegi (cioè root) per l'installazione. Fa cose come creare un utente, che può essere fatto con il codice userspace (ci sono alcune chiamate nel kernel, ma non è necessario installare un modulo del kernel per farlo) ma non può essere fatto da un utente non privilegiato.
Come nota a margine, i rootkit in modalità utente sono più deboli di quelli in modalità kernel. In pratica, il codice di terze parti essenzialmente non effettua mai una chiamata di sistema direttamente , perché le chiamate di sistema non sono come quelle "normali" ei dettagli sono specifici della piattaforma e dell'implementazione e potrebbero cambiare tra principali revisioni del kernel. Creare syscalls direttamente dal tuo codice lo renderà probabilmente non portatile ed è facile da rovinare. Tuttavia, è possibile e, in tal caso, ignorerai lo shim che il rootkit in modalità utente ha configurato per manomettere le tue syscalls.