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.confCarica 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.confVerifica 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/exampleModifica 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.