CH-J Server Managergestione server su SSH
Menu
Tutte le guide e gli articoli →

Come modificare i file in /etc tramite SFTP e sudo

Perché SFTP nega l’accesso in /etc e come modificare un file di configurazione in sicurezza senza aprire l’accesso root.

Perché SFTP segnala un accesso negato

SFTP viene eseguito con l’account usato per accedere e non dispone di un equivalente di sudo. La maggior parte dei file in /etc appartiene a root, quindi un account normale può leggerne alcuni ma non può scrivere in nessuno. È il comportamento corretto e non va corretto allentando i permessi.

Cosa evitare

Non eseguire chmod 777 su un file di configurazione, non assegnare al tuo account la proprietà dei file in /etc e non abilitare l’accesso root con password solo per una modifica. Alcuni servizi rifiutano file con permessi troppo permissivi e ogni cambiamento di questo tipo riduce la sicurezza del server anche molto tempo dopo la modifica.

Usa sudoedit in un terminale

sudoedit copia il file in una posizione temporanea, lo apre nel tuo editor con il tuo account e lo riscrive nella posizione originale solo dopo il salvataggio. L’editor stesso non viene eseguito come root.

sudoedit /etc/nginx/nginx.conf

Carica una copia, poi installala

Se preferisci un editor locale, carica il file nella tua directory home e installalo con sudo. Prima crea una copia di backup dell’originale in una posizione che non venga letta da alcuna direttiva di inclusione della configurazione. Il comando install imposta proprietario e permessi, mentre sui sistemi con SELinux restorecon imposta il contesto corretto. Controlla proprietario e permessi dell’originale prima di riportare questi valori, perché non tutti i file usano root e 644.

stat -c '%U %G %a' /etc/nginx/nginx.conf
sudo cp -a /etc/nginx/nginx.conf /root/nginx.conf.bak
sudo install -o root -g root -m 644 ~/nginx.conf.new /etc/nginx/nginx.conf
sudo restorecon -v /etc/nginx/nginx.conf

Verifica prima di applicare

Un file con errori di sintassi può bloccare un servizio al riavvio successivo. Esegui il controllo previsto dal servizio prima di ricaricarlo. Quando modifichi le impostazioni SSH, mantieni aperta la sessione attuale e prova un nuovo accesso da una seconda finestra.

sudo nginx -t
sudo sshd -t
sudo visudo -cf /etc/sudoers.d/example

Modifica con sudo in CH-J Server Manager

File Manager propone di aprire un file con sudo quando l’account SSH non può leggerlo e avverte che il salvataggio richiederà sudo. Al salvataggio, i dati vengono inviati nella directory temporanea privata dell’account e, dopo la verifica, sudo li sposta nella posizione finale mantenendo proprietario, permessi, ACL e contesto SELinux. Un backup facoltativo conserva una copia dell’originale prima della sostituzione. La password viene inviata soltanto a sudo sul server e non viene memorizzata su disco né nei registri. Se le regole di sudo richiedono un terminale (requiretty), l’applicazione non aggira il requisito. L’applicazione non verifica il contenuto del file, quindi esegui tu il controllo del servizio.

Documentazione dettagliata

man: sudo / sudoedit →

man: install →

Sblocco biometrico e sicurezza →