Γιατί το 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), η εφαρμογή δεν παρακάμπτει αυτή την απαίτηση. Η εφαρμογή δεν ελέγχει το περιεχόμενο του αρχείου, επομένως εκτελέστε εσείς τον έλεγχο της υπηρεσίας.