CH-J Server Managermanagementul serverului peste SSH
Meniu
Toate ghidurile și articolele →

Cum editezi fișiere din /etc prin SFTP și sudo

De ce SFTP refuză accesul în /etc și cum poți modifica în siguranță un fișier de configurare fără să deschizi accesul root.

De ce SFTP raportează acces refuzat

SFTP rulează cu contul cu care te-ai autentificat și nu are un echivalent pentru sudo. Majoritatea fișierelor din /etc aparțin lui root, așa că un cont obișnuit poate citi unele dintre ele, dar nu poate scrie în niciunul. Acesta este comportamentul corect și nu trebuie „reparat” prin relaxarea permisiunilor.

Ce să nu faci

Nu rula chmod 777 pe un fișier de configurare, nu schimba proprietarul fișierelor din /etc cu propriul cont și nu activa autentificarea root cu parolă doar pentru o singură editare. Unele servicii refuză fișierele cu permisiuni prea largi, iar fiecare astfel de modificare reduce siguranța serverului mult timp după terminarea editării.

Folosește sudoedit într-un terminal

sudoedit copiază fișierul într-o locație temporară, îl deschide în editor cu propriul tău cont și îl scrie înapoi doar după salvare. Editorul în sine nu rulează ca root.

sudoedit /etc/nginx/nginx.conf

Încarcă o copie, apoi instaleaz-o la destinație

Dacă preferi un editor local, încarcă fișierul în directorul tău personal și instalează-l cu sudo. Mai întâi fă o copie de siguranță a originalului într-un loc din care nicio directivă de includere a configurației nu citește fișiere. Comanda install setează proprietarul și permisiunile, iar pe sistemele cu SELinux, restorecon setează contextul corect. Verifică proprietarul și permisiunile originalului înainte să preiei aceste valori, deoarece nu toate fișierele folosesc root și 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

Validează înainte de aplicare

Un fișier cu erori de sintaxă poate opri un serviciu la următoarea repornire. Rulează verificarea serviciului în cauză înainte de reîncărcare. Când modifici setările SSH, păstrează sesiunea curentă deschisă și testează o nouă autentificare dintr-o a doua fereastră.

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

Editarea cu sudo în CH-J Server Manager

File Manager oferă deschiderea unui fișier cu sudo atunci când contul SSH nu îl poate citi și avertizează că salvarea va necesita sudo. La salvare, datele ajung în directorul temporar privat al contului și, după verificare, sudo le mută la destinație, păstrând proprietarul, permisiunile, ACL și contextul SELinux. O copie de siguranță opțională păstrează originalul înainte de înlocuire. Parola este trimisă doar către sudo pe server și nu este stocată pe disc sau în jurnale. Dacă politica sudo impune un terminal (requiretty), aplicația nu ocolește această cerință. Aplicația nu validează conținutul fișierului, așa că rulează tu verificarea serviciului.

Documentație detaliată

man: sudo / sudoedit →

man: install →

Deblocare biometrică și securitate →