CH-J Server ManagerZarządzanie serwerem przez SSH
Menu
Wszystkie poradniki i artykuły →

Jak edytować pliki w /etc przez SFTP i sudo

Dlaczego SFTP odmawia dostępu w /etc i jak bezpiecznie zmienić plik konfiguracyjny bez otwierania dostępu do konta root.

Dlaczego SFTP zgłasza odmowę dostępu

SFTP działa z uprawnieniami konta użytego do logowania i nie ma odpowiednika sudo. Większość plików w /etc należy do root, więc zwykłe konto może odczytać niektóre z nich, ale nie może zapisywać żadnego. To prawidłowe działanie, którego nie należy „naprawiać” przez osłabianie uprawnień.

Czego nie robić

Nie uruchamiaj chmod 777 na pliku konfiguracyjnym, nie zmieniaj właściciela plików w /etc na swoje konto i nie włączaj logowania na root za pomocą hasła tylko na potrzeby jednej edycji. Niektóre usługi odrzucają pliki ze zbyt szerokimi uprawnieniami, a każda taka zmiana obniża bezpieczeństwo serwera jeszcze długo po zakończeniu edycji.

Użyj sudoedit w terminalu

sudoedit kopiuje plik do lokalizacji tymczasowej, otwiera go w edytorze z uprawnieniami twojego konta i zapisuje z powrotem dopiero po zapisaniu zmian. Sam edytor nie działa jako root.

sudoedit /etc/nginx/nginx.conf

Prześlij kopię, a następnie zainstaluj ją na miejscu

Jeśli wolisz lokalny edytor, prześlij plik do swojego katalogu domowego i zainstaluj go za pomocą sudo. Najpierw zrób kopię zapasową oryginału w miejscu, z którego żadna dyrektywa dołączania konfiguracji nie odczytuje plików. Polecenie install ustawia właściciela i uprawnienia, a w systemach z SELinux polecenie restorecon ustawia właściwy kontekst. Sprawdź właściciela i uprawnienia oryginału, zanim przejmiesz te wartości, ponieważ nie każdy plik używa 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

Sprawdź przed zastosowaniem

Plik z błędem składni może zatrzymać usługę przy następnym ponownym uruchomieniu. Przed przeładowaniem uruchom sprawdzenie właściwe dla danej usługi. Zmieniając ustawienia SSH, pozostaw bieżącą sesję otwartą i przetestuj nowe logowanie z drugiego okna.

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

Edycja z sudo w CH-J Server Manager

File Manager proponuje otwarcie pliku za pomocą sudo, gdy konto SSH nie może go odczytać, i ostrzega, że zapis będzie wymagał sudo. Podczas zapisu dane trafiają do prywatnego katalogu tymczasowego konta, a po weryfikacji sudo przenosi je na miejsce z zachowaniem właściciela, uprawnień, ACL i kontekstu SELinux. Opcjonalna kopia zapasowa zachowuje oryginał przed jego zastąpieniem. Hasło trafia wyłącznie do sudo na serwerze i nie jest zapisywane na dysku ani w logach. Jeśli polityka sudo wymaga terminala (requiretty), aplikacja nie omija tego wymogu. Aplikacja nie sprawdza zawartości pliku, więc samodzielnie uruchom sprawdzenie danej usługi.

Dokumentacja szczegółowa

man: sudo / sudoedit →

man: install →

Biometryczne odblokowanie i bezpieczeństwo →