CH-J Server Managerserverhåndtering over SSH
Menu
Alle vejledninger og artikler →

Sådan redigerer du filer i /etc via SFTP og sudo

Hvorfor SFTP nægter adgang i /etc, og hvordan du sikkert ændrer en konfigurationsfil uden at åbne for mere root-adgang.

Hvorfor SFTP nægter adgang

SFTP kører under den konto, du loggede ind med, og har ingen pendant til sudo. De fleste filer i /etc tilhører root, så en almindelig konto kan læse nogle af dem, men ikke skrive til nogen af dem. Det er korrekt adfærd og skal ikke løses ved at svække rettighederne.

Hvad du skal undgå

Kør ikke chmod 777 på en konfigurationsfil, overfør ikke ejerskabet af filer i /etc til din konto, og aktivér ikke root-login med adgangskode blot for én redigering. Nogle tjenester afviser filer med for åbne rettigheder, og enhver sådan ændring gør serveren mindre sikker længe efter, at redigeringen er afsluttet.

Brug sudoedit i en terminal

sudoedit kopierer filen til en midlertidig placering, åbner den i din editor under din egen konto og skriver den først tilbage, når du har gemt. Selve editoren kører ikke som root.

sudoedit /etc/nginx/nginx.conf

Upload en kopi, og installér den derefter

Hvis du foretrækker en lokal editor, kan du uploade filen til din hjemmemappe og installere den med sudo. Tag først en sikkerhedskopi af originalen et sted, hvor ingen konfigurationsinkludering læser den. Kommandoen install angiver ejer og rettighedstilstand, og på systemer med SELinux angiver restorecon den korrekte kontekst. Kontrollér originalens ejer og rettighedstilstand, før du overtager værdierne, da ikke alle filer bruger root og 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

Kontrollér før ændringen tages i brug

En fil med syntaksfejl kan stoppe en tjeneste ved næste genstart. Kør den pågældende tjenestes kontrol, før du genindlæser den. Når du ændrer SSH-indstillinger, skal du holde den aktuelle session åben og teste et nyt login fra et andet vindue.

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

Redigering med sudo i CH-J Server Manager

File Manager tilbyder at åbne en fil med sudo, når SSH-kontoen ikke kan læse den, og advarer om, at det kræver sudo at gemme. Ved lagring overføres dataene til kontoens private midlertidige mappe, og efter kontrol flytter sudo dem på plads, mens ejer, rettigheder, ACL og SELinux-kontekst bevares. En valgfri sikkerhedskopi gemmer en kopi af originalen, før den erstattes. Adgangskoden sendes kun til sudo på serveren og gemmes hverken på disk eller i logfiler. Hvis sudo-politikken kræver en terminal (requiretty), omgår appen ikke kravet. Appen validerer ikke filens indhold, så du skal selv køre tjenestens kontrol.

Detaljeret dokumentation

man: sudo / sudoedit →

man: install →

Biometrisk oplåsning og sikkerhed →