Почему SFTP сообщает об отказе в доступе
SFTP работает от имени учётной записи, под которой вы вошли, и не имеет аналога sudo. Большинство файлов в /etc принадлежат root, поэтому обычная учётная запись может читать некоторые из них, но не может записывать ни в один. Это правильное поведение, и исправлять его ослаблением прав не следует.
Чего не следует делать
Не выполняйте chmod 777 для файла конфигурации, не назначайте свою учётную запись владельцем файлов в /etc и не включайте вход root по паролю ради одной правки. Некоторые службы отказываются использовать файлы со слишком широкими правами, а каждое такое изменение снижает безопасность сервера ещё долго после завершения редактирования.
Используйте sudoedit в терминале
sudoedit копирует файл во временное расположение, открывает его в вашем редакторе от имени вашей учётной записи и записывает обратно только после сохранения. Сам редактор не работает от имени root.
sudoedit /etc/nginx/nginx.confЗагрузите копию, затем установите её
Если вы предпочитаете локальный редактор, загрузите файл в свой домашний каталог и установите его с помощью sudo. Сначала сохраните резервную копию оригинала там, откуда её не прочитает ни одна директива включения конфигурации. Команда install задаёт владельца и режим доступа, а в системах с SELinux команда restorecon устанавливает правильный контекст. Прежде чем использовать эти значения, проверьте владельца и режим доступа оригинала: не для каждого файла нужны root и 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Проверьте перед применением
Файл с синтаксической ошибкой может привести к остановке службы при её следующем перезапуске. Перед перечитыванием конфигурации запустите проверку соответствующей службы. Меняя настройки SSH, держите текущий сеанс открытым и проверьте новый вход из второго окна.
sudo nginx -t
sudo sshd -t
sudo visudo -cf /etc/sudoers.d/exampleРедактирование с sudo в CH-J Server Manager
File Manager предлагает открыть файл с помощью sudo, если учётная запись SSH не может его прочитать, и предупреждает, что для сохранения потребуется sudo. При сохранении данные попадают в закрытый временный каталог учётной записи, а после проверки sudo перемещает их на нужное место, сохраняя владельца, права, ACL и контекст SELinux. По желанию перед заменой создаётся резервная копия оригинала. Пароль передаётся только sudo на сервере и не сохраняется ни на диске, ни в журналах. Если политика sudo требует терминал (requiretty), приложение не обходит это требование. Приложение не проверяет содержимое файла, поэтому проверку службы нужно запустить самостоятельно.