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.confPrześ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.confSprawdź 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/exampleEdycja 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.