Ρύθμιση του Linux Core για την τοποθεσία Dump

Rythmise Tou Linux Core Gia Ten Topothesia Dump



Τι είναι το 'Core Dump' στο Linux;

Όταν μια διεργασία εξέρχεται απροσδόκητα, συχνά αφήνει πίσω της ένα 'core dump' στο σύστημά σας. Υπάρχει σχετικό μήνυμα που περιλαμβάνεται σε αυτό. Ένας πυρήνας χρησιμεύει ως εργαλείο εντοπισμού σφαλμάτων και είναι μια εικόνα της μνήμης που περιλαμβάνει επίσης τις πληροφορίες εντοπισμού σφαλμάτων. Εάν είστε χρήστης που δεν θέλει να διορθώσει ένα πρόγραμμα, μπορείτε απλώς να διαγράψετε τον πυρήνα:

$ rm πυρήνας

Μπορείτε επίσης να το αφήσετε ανέγγιχτο, καθώς ο παλιός πυρήνας αντικαθίσταται εάν απορριφθεί ποτέ ένας νέος. Μπορείτε επίσης να απενεργοποιήσετε το core dumping με την ακόλουθη εντολή:







$ μείωση -ντο 0

Μπορούμε να δημιουργήσουμε τις απορρίψεις πυρήνων κατά παραγγελία (για παράδειγμα, μέσω ενός προγράμματος εντοπισμού σφαλμάτων) ή μπορούν να παραχθούν αυτόματα κατά τον τερματισμό. Ο πυρήνας εκκινεί τα core dumps ως συνέπεια της απότομης εξόδου ενός προγράμματος. Αυτά μπορεί να σταλούν σε κάποιο άλλο πρόγραμμα (όπως το systemd-coredump) για πρόσθετες λειτουργίες.



Όπως συμβαίνει συνήθως, υπάρχει μια αντιστάθμιση μεταξύ της συλλογής των δεδομένων για καλύτερη σταθερότητα και αντιμετώπισης προβλημάτων και του κινδύνου αποκάλυψης των ευαίσθητων πληροφοριών από τα δεδομένα εντοπισμού σφαλμάτων.



Τι Θα Καλύψουμε;

Σε αυτό το άρθρο, θα δούμε πώς να ρυθμίσετε τη θέση των πυρήνων στο Ubuntu 20.04 OS. Ας ξεκινήσουμε τώρα.





Δημιουργία Core Dump

Ας δούμε πρώτα πώς μπορούμε να δημιουργήσουμε ένα core dump. Για αυτό, χρησιμοποιούμε την εντολή kill Linux. Πρώτα, βρείτε το PID μιας διεργασίας και μετά στείλτε ένα σήμα kill. Για παράδειγμα, ας ξεκινήσουμε τη διαδικασία ύπνου και στη συνέχεια ας τη σκοτώσουμε με το PID του:

$ ύπνος 500

$ σκοτώνω -μικρό SIGTRAP $ ( λαβή ύπνος )



Τώρα που μάθατε πώς να δημιουργείτε μια ένδειξη πυρήνα, μπορείτε να τη χρησιμοποιήσετε στις ακόλουθες επόμενες ενότητες.

Πού πάνε αυτοί?

Το αρχείο ένδειξης πυρήνα ονομάζεται core.pid από προεπιλογή και δημιουργείται στον κατάλογο εργασίας της εφαρμογής. Εδώ, το pid είναι το αναγνωριστικό διαδικασίας.

Με το εργαλείο ulimit, μπορείτε να λάβετε ή να αλλάξετε τα όρια πόρων συστήματος για το τρέχον κέλυφος και τυχόν κελύφη που ακολουθούν. Για να επαληθεύσετε ή να διαμορφώσετε το όριο μεγέθους του βασικού αρχείου, χρησιμοποιήστε την ακόλουθη εντολή:

$ μείωση -ντο

Για να αποφύγετε την οριοθέτηση ή την περικοπή του βασικού αρχείου, βεβαιωθείτε ότι το όριο έχει οριστεί συνολικά σε 'απεριόριστο' [1]. Αυτό μπορεί να γίνει στο /etc/security/limits.conf προσθέτοντας την ακόλουθη γραμμή:

root - core απεριόριστος

* - πυρήνας απεριόριστος

Τώρα, απλώς αποσυνδεθείτε και συνδεθείτε ξανά για να εφαρμοστούν τα όρια στη συνεδρία σας.

Προσαρμογή της θέσης του Core Dump

Η εντολή 'sysctl kernel.core_pattern' ή η '/proc/sys/kernel/core_pattern' χρησιμοποιείται συνήθως για τον ορισμό της τοποθεσίας όπου πηγαίνουν τα core dumps.

Εισαγάγετε την ακόλουθη εντολή για να δείτε τις ρυθμίσεις για το τρέχον μοτίβο πυρήνα:

$ Γάτα / proc / sys / πυρήνας / core_pattern

Συνήθως, θα βρείτε την προεπιλεγμένη τιμή που αναφέρεται ως 'πυρήνας' εδώ.

Χρησιμοποιώντας το '/proc/sys/kernel/core_pattern' για να ορίσετε τη θέση ένδειξης πυρήνα

Ας ανακατευθύνουμε προσωρινά τα core dumps σε μια νέα τοποθεσία, ας πούμε /tmp/dumps/core, χρησιμοποιώντας το αρχείο '/proc/sys/kernel/core_pattern' [2] [3]. Τώρα, ακολουθήστε τα παρακάτω βήματα:

Βήμα 1 . Πρώτα, δημιουργήστε έναν κατάλογο για να αποθηκεύσετε τις βασικές ενδείξεις:

$ mkdir / tmp / εγκαταλείπω / πυρήνες /

Βήμα 2 . Δώστε τα απαιτούμενα δικαιώματα σε αυτόν τον κατάλογο:

$ chmod α+χ / tmp / εγκαταλείπω / πυρήνες /

Βήμα 3 . Τώρα, ορίστε προσωρινά τη διαδρομή ένδειξης πυρήνα:

$ ηχώ '/tmp/dump/cores/core' | sudo στόχος / proc / sys / πυρήνας / core_pattern

Και πάλι, καθολικά ορίστε το όριο σε απεριόριστο.

Εδώ, μπορούμε να προσθέσουμε κάποιες άλλες πληροφορίες στο όνομα του αρχείου όπως φαίνεται παρακάτω:

$ ηχώ '/tmp/dump/cores/core_%e.%p_%t' | sudo στόχος / proc / sys / πυρήνας / core_pattern

Κάθε παράμετρος που χρησιμοποιείται εδώ μπορεί να οριστεί ως εξής:

% και: Για εκτελέσιμο αρχείο όνομα

% Π: Για επεξεργάζομαι, διαδικασία ταυτότητα ή pid.

% t: Για προσθέτοντας μια χρονική σήμανση

Βήμα 4 . Στη συνέχεια, πρέπει να αλλάξουμε το αρχείο “/etc/sysctl.conf” για να εφαρμόζουμε μόνιμα τις προηγούμενες ρυθμίσεις. Ανοίξτε αυτό το αρχείο:

$ sudo νανο / και τα λοιπά / sysctl.conf

Τώρα, προσθέστε την ακόλουθη γραμμή σε αυτό το αρχείο:

kernel.core_pattern = / tmp / εγκαταλείπω / πυρήνες / πυρήνας

Επίσης, αντί για αυτήν τη γραμμή, μπορείτε να προσθέσετε αυτό:

kernel.core_pattern= '/tmp/dump/cores/core_%e.%p_%t'

Αυτό είναι το μόνο που χρειάζεται να κάνουμε. Τώρα, δημιουργήστε ένα πυρήνα απόρριψης όπως αναφέρεται στην ενότητα 'Δημιουργία απορριμμάτων πυρήνων'. Μετά από αυτό, μπορούμε να ελέγξουμε αν έχει δημιουργηθεί το βασικό μας αρχείο ή όχι:

$ ls -μεγάλο / tmp / εγκαταλείπω / πυρήνες /

Χρησιμοποιώντας την εντολή 'Sysctl' για να ορίσετε τη θέση ένδειξης πυρήνα

Όπως αναφέρθηκε προηγουμένως, μπορούμε επίσης να χρησιμοποιήσουμε την εντολή sysctl για τον ίδιο σκοπό. Ας αλλάξουμε τη θέση ένδειξης πυρήνα και τη μορφή του βασικού αρχείου:

Βήμα 1 . Δημιουργήστε έναν νέο κατάλογο και δώστε τα απαιτούμενα δικαιώματα:

$ mkdir / tmp / mydumps

$ chmod a+rwx / tmp / mydumps

Βήμα 2 . Τώρα, απλώς εκτελέστε την ακόλουθη εντολή:

$ sudo sysctl -σε kernel.core_pattern= / tmp / mydumps / πυρήνας_ % και. % Π_ % t

Βήμα 3 . Τώρα, πάλι, δημιουργήστε το core dump όπως κάναμε νωρίτερα. Μετά από αυτό, ελέγξτε αν έχει δημιουργηθεί το βασικό αρχείο ή όχι:

$ ls -μεγάλο / tmp / mydumps /

Στα συστήματα Ubuntu, οι απορρίψεις πυρήνων συχνά αποστέλλονται στο Apport. Για συστήματα που βασίζονται σε Red Hat, ενδέχεται να προωθηθεί στο Εργαλείο αυτόματης αναφοράς σφαλμάτων (ABRT). Αρχικά, αντιμετώπιζα ένα πρόβλημα στη ρύθμιση παραμέτρων της τοποθεσίας ένδειξης πυρήνα, οπότε έπρεπε να απενεργοποιήσω πλήρως το Apport στο Ubuntu 20.04. Ίσως, αυτό μπορεί επίσης να συμβαίνει με την Red Hat και άλλους.

συμπέρασμα

Σε αυτό το άρθρο, είδαμε πώς μπορούμε να προσαρμόσουμε τη θέση των κεντρικών ενδείξεων στο Ubuntu 20.04 OS. Οι απορρίψεις πυρήνων μπορούν να σας βοηθήσουν να καταλάβετε τι φταίει, αλλά είναι τρομερές για τη διαρροή ευαίσθητων δεδομένων. Οι αποθήκες πυρήνα θα πρέπει να απενεργοποιούνται όποτε δεν απαιτούνται και να ενεργοποιούνται μόνο όταν είναι απολύτως απαραίτητο. Σε μια τέτοια περίπτωση, επιβεβαιώστε ότι τα αρχεία είναι αποθηκευμένα με ασφάλεια, έτσι ώστε οι απλοί χρήστες να μην έχουν πρόσβαση στα δεδομένα. Επιπλέον, ανεξάρτητα από την απόφασή σας, θα πρέπει πάντα να δοκιμάζετε τη διαμόρφωσή σας για να βεβαιωθείτε ότι λειτουργεί όπως προβλέπεται.

Τα βασικά dump και οι προεπιλεγμένες διαμορφώσεις αντιμετωπίζονται διαφορετικά από διάφορα λειτουργικά συστήματα. Τον τελευταίο καιρό, τα περισσότερα συστήματα Linux έχουν υιοθετήσει το systemd, το οποίο έχει επιφέρει κάποιες μικρές προσαρμογές κανόνων. Ανάλογα με το πώς έχει διαμορφωθεί το σύστημά σας, ίσως χρειαστεί να αναζητήσετε κεντρικές αποθήκες.