Mengapa SFTP menampilkan permission denied
SFTP berjalan dengan akun yang Anda gunakan untuk login dan tidak memiliki fungsi yang setara dengan sudo. Sebagian besar berkas di /etc dimiliki oleh root, sehingga akun biasa dapat membaca sebagian berkas tersebut, tetapi tidak dapat menulis satu pun. Perilaku ini sudah benar dan bukan sesuatu yang perlu diperbaiki dengan melonggarkan izin.
Hal yang harus dihindari
Jangan jalankan chmod 777 pada berkas konfigurasi, jangan ubah pemilik berkas di /etc menjadi akun Anda, dan jangan aktifkan login root dengan kata sandi hanya untuk satu kali penyuntingan. Beberapa layanan menolak berkas dengan izin yang terlalu longgar, dan setiap perubahan seperti ini mengurangi keamanan server jauh setelah penyuntingan selesai.
Gunakan sudoedit di terminal
sudoedit menyalin berkas ke lokasi sementara, membukanya dalam penyunting dengan akun Anda sendiri, lalu menuliskannya kembali hanya setelah Anda menyimpan. Penyunting itu sendiri tidak berjalan sebagai root.
sudoedit /etc/nginx/nginx.confUnggah salinan, lalu pasang
Jika Anda lebih suka penyunting lokal, unggah berkas ke direktori home Anda dan pasang dengan sudo. Cadangkan berkas asli terlebih dahulu di lokasi yang tidak dibaca oleh mekanisme penyertaan konfigurasi mana pun. Perintah install menetapkan pemilik dan mode, dan pada sistem dengan SELinux, restorecon menetapkan konteks yang benar. Periksa pemilik dan mode berkas asli sebelum menyalin nilai tersebut, karena tidak semua berkas menggunakan root dan 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.confValidasi sebelum menerapkan
Berkas dengan sintaks yang salah dapat membuat layanan berhenti saat dimulai ulang berikutnya. Jalankan pemeriksaan untuk layanan terkait sebelum memuat ulang konfigurasinya. Saat mengubah pengaturan SSH, biarkan sesi saat ini terbuka dan uji login baru dari jendela kedua.
sudo nginx -t
sudo sshd -t
sudo visudo -cf /etc/sudoers.d/examplePenyuntingan dengan sudo di CH-J Server Manager
File Manager menawarkan untuk membuka berkas dengan sudo saat akun SSH tidak dapat membacanya, dan memperingatkan bahwa penyimpanan akan memerlukan sudo. Saat disimpan, data dikirim ke direktori sementara privat milik akun tersebut dan, setelah diverifikasi, sudo memindahkannya ke lokasi tujuan sambil mempertahankan pemilik, izin, ACL, dan konteks SELinux. Cadangan opsional menyimpan salinan berkas asli sebelum menggantinya. Kata sandi hanya dikirim ke sudo di server dan tidak disimpan di disk atau log. Jika kebijakan sudo mewajibkan terminal (requiretty), aplikasi tidak melewatinya. Aplikasi tidak memvalidasi isi berkas, jadi jalankan sendiri pemeriksaan layanan.