CH-J Server Managerδιαχείριση διακομιστή πάνω από SSH
Μενού
Όλοι οι οδηγοί και τα άρθρα →

Πώς να επεξεργαστείτε αρχεία στο /etc μέσω SFTP και sudo

Γιατί το SFTP αρνείται την πρόσβαση στο /etc και πώς να αλλάξετε με ασφάλεια ένα αρχείο ρυθμίσεων χωρίς να διευρύνετε την πρόσβαση στον root.

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

Λεπτομερής τεκμηρίωση

man: sudo / sudoedit →

man: install →

Βιομετρική ξεκλείδωμα και ασφάλεια →