CH-J Server Managerspráva serverů přes SSH
Menu
Všechny návody a články →

Jak upravovat soubory v /etc přes SFTP a sudo

Proč SFTP v /etc hlásí odepření přístupu a jak bezpečně změnit konfigurační soubor bez rozšíření přístupu k účtu root.

Proč SFTP hlásí odepření přístupu

SFTP běží pod účtem, kterým jste se přihlásili, a nemá obdobu sudo. Většina souborů v /etc patří účtu root, takže běžný účet může některé z nich číst, ale do žádného zapisovat. Je to správné chování, které se nemá napravovat oslabením oprávnění.

Čemu se vyhnout

Nespouštějte chmod 777 na konfiguračním souboru, neměňte vlastníka souborů v /etc na svůj účet a nepovolujte přihlášení účtu root heslem jen kvůli jedné úpravě. Některé služby odmítají soubory s příliš volnými oprávněními a každá taková změna snižuje bezpečnost serveru i dlouho po dokončení úpravy.

Použijte sudoedit v terminálu

sudoedit zkopíruje soubor do dočasného umístění, otevře jej v editoru pod vaším účtem a zapíše jej zpět až po uložení. Samotný editor neběží jako root.

sudoedit /etc/nginx/nginx.conf

Nahrajte kopii a poté ji nainstalujte

Pokud dáváte přednost místnímu editoru, nahrajte soubor do svého domovského adresáře a nainstalujte jej pomocí sudo. Nejprve zálohujte originál na místo, odkud jej nenačte žádná direktiva pro zahrnutí konfigurace. Příkaz install nastaví vlastníka a režim oprávnění a na systémech se SELinux nastaví restorecon správný kontext. Před převzetím těchto hodnot zkontrolujte vlastníka a režim oprávnění originálu, protože ne každý soubor používá root a 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

Před použitím změn ověřte konfiguraci

Soubor s chybnou syntaxí může při příštím restartu zastavit službu. Před opětovným načtením konfigurace spusťte kontrolu příslušné služby. Při změně nastavení SSH ponechte současnou relaci otevřenou a ve druhém okně vyzkoušejte nové přihlášení.

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

Úpravy pomocí sudo v CH-J Server Manager

File Manager nabídne otevření souboru pomocí sudo, pokud jej účet SSH nemůže přečíst, a upozorní, že uložení bude vyžadovat sudo. Při ukládání se data přenesou do soukromého dočasného adresáře účtu a po ověření je sudo přesune na místo se zachováním vlastníka, oprávnění, ACL a kontextu SELinux. Volitelná záloha uloží kopii originálu před jeho nahrazením. Heslo se předá pouze sudo na serveru a neukládá se na disk ani do logů. Pokud pravidla sudo vyžadují terminál (requiretty), aplikace tento požadavek neobchází. Aplikace neověřuje obsah souboru, proto kontrolu služby spusťte sami.

Podrobná dokumentace

man: sudo / sudoedit →

man: install →

Biometrické odemykání a zabezpečení →