Πώς να χρησιμοποιήσετε την εντολή chroot στο Linux

Μια προτροπή τερματικού σε φορητό υπολογιστή Linux

Fatmawati Achmad Zaenuri/Shutterstock.com



Το |_+_| Η εντολή μπορεί να σας στείλει στη φυλακή, να διατηρήσει τα περιβάλλοντα ανάπτυξης ή δοκιμής σας απομονωμένα ή απλώς να βελτιώσει την ασφάλεια του συστήματός σας. Σας δείχνουμε τον πιο εύκολο τρόπο να το χρησιμοποιήσετε.

Τι είναι το chroot;

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





Σε συζητήσεις με χρήστες Linux—προσωπικά και σε φόρουμ—φαίνεται ότι το |_+_| Η εντολή είναι μια εντολή που χαρακτηρίζεται ως δύσκολη στη χρήση ή πολύ κουραστική και κουραστική στη ρύθμιση. Φαίνεται ότι αυτό το καταπληκτικό βοηθητικό πρόγραμμα δεν χρησιμοποιείται όσο θα μπορούσε να χρησιμοποιηθεί.

10 Βασικές εντολές Linux για αρχάριους ΣΧΕΤΙΖΕΤΑΙ ΜΕ 10 Βασικές εντολές Linux για αρχάριους

Με |_+_| μπορείτε να ρυθμίσετε και εκτελέστε προγράμματα ή διαδραστικά κελύφη όπως το Bash σε ένα ενθυλακωμένο σύστημα αρχείων που δεν επιτρέπεται να αλληλεπιδρά με το κανονικό σας σύστημα αρχείων. Τα πάντα εντός του |_+_| περιβάλλον είναι γραμμένο και περιέχεται. Τίποτα στο |_+_| περιβάλλον μπορεί να δει έξω από τον δικό του, ειδικό, ριζικό κατάλογο χωρίς να κλιμακωθεί σε δικαιώματα root. Αυτό έχει κερδίσει αυτόν τον τύπο περιβάλλοντος το ψευδώνυμο ενός |_+_| φυλακή. Ο όρος φυλακή δεν πρέπει να συγχέεται με του FreeBSD |_+_| εντολή, η οποία δημιουργεί ένα |_+_| περιβάλλον αυτό είναι πιο ασφαλές από το συνηθισμένο |_+_| περιβάλλον.



Αλλά στην πραγματικότητα, υπάρχει ένας πολύ απλός τρόπος χρήσης |_+_|, τον οποίο θα προχωρήσουμε. Χρησιμοποιούμε κανονικές εντολές Linux που θα λειτουργούν σε όλες τις διανομές. Ορισμένες διανομές Linux διαθέτουν ειδικά εργαλεία για τη ρύθμιση |_+_| περιβάλλοντα, όπως debootstrap για το Ubuntu, αλλά είμαστε διαγνωστικοί εδώ.

Πότε πρέπει να χρησιμοποιήσετε ένα chroot;

A |_+_| περιβάλλον παρέχει λειτουργικότητα παρόμοια με αυτή μιας εικονικής μηχανής, αλλά είναι μια πιο ελαφριά λύση. Το δεσμευμένο σύστημα δεν χρειάζεται έναν hypervisor για εγκατάσταση και διαμόρφωση, όπως π.χ VirtualBox ή Διευθυντής εικονικής μηχανής . Ούτε χρειάζεται να έχει εγκατεστημένο πυρήνα στο δεσμευμένο σύστημα. Το δεσμευμένο σύστημα μοιράζεται τον υπάρχοντα πυρήνα σας.

Διαφήμιση

Κατά ορισμένες έννοιες, |_+_| περιβάλλοντα είναι πιο κοντά σε δοχεία όπως π.χ LXC παρά σε εικονικές μηχανές. Είναι ελαφριά, γρήγορα στην ανάπτυξη και η δημιουργία και η εκτόξευση ενός μπορεί να αυτοματοποιηθεί. Όπως και τα κοντέινερ, ένας βολικός τρόπος για να τα διαμορφώσετε είναι να εγκαταστήσετε αρκετή ποσότητα του λειτουργικού συστήματος για να επιτύχετε αυτό που απαιτείται. Η ερώτηση τι απαιτείται απαντάται εξετάζοντας πώς θα χρησιμοποιήσετε το |_+_| περιβάλλον.



Μερικές κοινές χρήσεις είναι:

Ανάπτυξη Λογισμικού και Επαλήθευση Προϊόντος . Οι προγραμματιστές γράφουν λογισμικό και η ομάδα επαλήθευσης προϊόντος (PV) το δοκιμάζει. Μερικές φορές εντοπίζονται προβλήματα από το PV που δεν μπορούν να αναπαραχθούν στον υπολογιστή του προγραμματιστή. Ο προγραμματιστής έχει όλα τα είδη εργαλείων και βιβλιοθηκών εγκατεστημένα στον υπολογιστή ανάπτυξης που ο μέσος χρήστης —και η φωτοβολταϊκή— δεν θα έχει. Συχνά, νέο λογισμικό που λειτουργεί για τον προγραμματιστή αλλά όχι για άλλους αποδεικνύεται ότι χρησιμοποιεί έναν πόρο στον υπολογιστή του προγραμματιστή που δεν έχει συμπεριληφθεί στη δοκιμαστική έκδοση του λογισμικού. |_+_| επιτρέπει στους προγραμματιστές να έχουν ένα απλό περιβάλλον αιχμαλωσίας βανίλιας στον υπολογιστή τους στο οποίο μπορούν να βουτήξουν το λογισμικό πριν το δώσουν στο PV. Το δεσμευμένο περιβάλλον μπορεί να διαμορφωθεί με τις ελάχιστες εξαρτήσεις που απαιτεί το λογισμικό.

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

Εκτέλεση καταργημένου λογισμικού . Μερικές φορές απλά πρέπει να έχετε μια παλιά έκδοση κάτι που τρέχει. Εάν το παλιό λογισμικό έχει απαιτήσεις που θα συγκρούονταν ή θα ήταν ασύμβατες με την έκδοση του Linux, μπορείτε να |_+_| ένα περιβάλλον για το προβληματικό λογισμικό.

Διαφήμιση

Ανάκτηση και αναβαθμίσεις συστήματος αρχείων : Εάν μια εγκατάσταση Linux καταστεί μη λειτουργική, μπορείτε να χρησιμοποιήσετε |_+_| για να προσαρτήσετε το κατεστραμμένο σύστημα αρχείων σε ένα σημείο προσάρτησης σε ένα Live CD. Αυτό σας επιτρέπει να εργαστείτε στο κατεστραμμένο σύστημα και να προσπαθήσετε να το διορθώσετε σαν να ήταν κανονικά τοποθετημένο στο root /. Αυτό σημαίνει ότι οι αναμενόμενες διαδρομές αρχείων εντός του κατεστραμμένου συστήματος θα αναφέρονται σωστά από τον ριζικό κατάλογο και όχι από το σημείο προσάρτησης του Live CD. Μια παρόμοια τεχνική χρησιμοποιήθηκε στο άρθρο που περιγράφει τον τρόπο μετεγκατάστασης του συστήματος αρχείων Linux από το ext2 ή το ext3 στο ext4.

Εφαρμογές Ringfencing . Εκτέλεση διακομιστή FTP ή άλλης συσκευής συνδεδεμένης στο Διαδίκτυο μέσα σε ένα |_+_| Το περιβάλλον περιορίζει τη ζημιά που μπορεί να κάνει ένας εξωτερικός εισβολέας. Αυτό μπορεί να είναι ένα πολύτιμο βήμα για την ενίσχυση της ασφάλειας του συστήματός σας.

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να κάνετε μετεγκατάσταση συστημάτων αρχείων Ext2 ή Ext3 σε Ext4 στο Linux

Δημιουργία Περιβάλλοντος chroot

Χρειαζόμαστε έναν κατάλογο για να λειτουργεί ως ο ριζικός κατάλογος του |_+_| περιβάλλον. Για να έχουμε έναν συνοπτικό τρόπο αναφοράς σε αυτόν τον κατάλογο, θα δημιουργήσουμε μια μεταβλητή και θα αποθηκεύσουμε το όνομα του καταλόγου σε αυτήν. Εδώ ρυθμίζουμε μια μεταβλητή για την αποθήκευση μιας διαδρομής στον κατάλογο testroot. Δεν έχει σημασία αν αυτός ο κατάλογος δεν υπάρχει ακόμα, θα τον δημιουργήσουμε σύντομα. Εάν ο κατάλογος υπάρχει, θα πρέπει να είναι κενός.

chroot

Εάν ο κατάλογος δεν υπάρχει, πρέπει να τον δημιουργήσουμε. Μπορούμε να το κάνουμε αυτό με αυτήν την εντολή. Το |_+_| Η επιλογή (γονείς) διασφαλίζει ότι τυχόν γονικοί κατάλογοι που λείπουν δημιουργούνται ταυτόχρονα:

chroot

Πρέπει να δημιουργήσουμε καταλόγους για να κρατήσουμε τα τμήματα του λειτουργικού συστήματος μας |_+_| περιβάλλον θα απαιτήσει. Θα δημιουργήσουμε ένα μινιμαλιστικό περιβάλλον Linux που χρησιμοποιεί το Bash ως διαδραστικό κέλυφος. Θα συμπεριλάβουμε επίσης τα |_+_|, |_+_| και |_+_| εντολές. Αυτό θα μας επιτρέψει να χρησιμοποιήσουμε όλες τις ενσωματωμένες εντολές του Bash και τα |_+_|, |_+_| και |_+_|. Θα μπορούμε να δημιουργήσουμε, να καταγράψουμε και να αφαιρέσουμε αρχεία και να χρησιμοποιήσουμε το Bash. Και - σε αυτό το απλό παράδειγμα - αυτό είναι όλο.

Καταχωρίστε τους καταλόγους που πρέπει να δημιουργήσετε μέσα στο |_+_| επέκταση του νάρθηκα .

chroot

Τώρα θα αλλάξουμε τον κατάλογο στον νέο μας ριζικό κατάλογο.

chroot

Ας αντιγράψουμε τα δυαδικά αρχεία που χρειαζόμαστε στο μινιμαλιστικό μας περιβάλλον Linux από τον κανονικό κατάλογο /bin στο |_+_| κατάλογος /bin. Το |_+_| (περιφραστική) η επιλογή κάνει |_+_| πείτε μας τι κάνει καθώς εκτελεί κάθε ενέργεια αντιγραφής.

chroot

Τα αρχεία αντιγράφονται για εμάς:

Διαφήμιση

Αυτά τα δυαδικά αρχεία θα έχουν εξαρτήσεις. Πρέπει να ανακαλύψουμε τι είναι και να αντιγράψουμε εκείνοι αρχεία στο περιβάλλον μας επίσης, διαφορετικά |_+_|, |_+_|, |_+_| και |_+_| δεν θα μπορέσει να λειτουργήσει. Πρέπει να το κάνουμε αυτό με τη σειρά μας για κάθε μία από τις εντολές που επιλέξαμε. Θα κάνουμε πρώτα το Bash. Το |_+_| εντολή θα απαριθμήστε τις εξαρτήσεις για εμάς.

chroot

Οι εξαρτήσεις προσδιορίζονται και παρατίθενται στο παράθυρο τερματικού:

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

Ευτυχώς, μπορούμε να το ημι-αυτοματοποιήσουμε. Θα απαριθμήσουμε ξανά τις εξαρτήσεις και αυτή τη φορά θα σχηματίσουμε μια λίστα. Στη συνέχεια, θα κάνουμε βρόχο στη λίστα αντιγράφοντας τα αρχεία.

Εδώ χρησιμοποιούμε |_+_| για να απαριθμήσετε τις εξαρτήσεις και να τροφοδοτήσετε τα αποτελέσματα μέσω ενός σωλήνα στο |_+_|. Χρησιμοποιώντας |_+_| είναι το ίδιο με τη χρήση |_+_| με το |_+_| (εκτεταμένες κανονικές εκφράσεις) επιλογή. Το |_+_| Η επιλογή (μόνο αντιστοίχιση) περιορίζει την έξοδο στα αντίστοιχα τμήματα των γραμμών. Αναζητούμε αρχεία βιβλιοθήκης που ταιριάζουν με τον αριθμό |_+_|.

jail

Μπορούμε να ελέγξουμε τα περιεχόμενα της λίστας χρησιμοποιώντας |_+_|:

chroot

Τώρα που έχουμε τη λίστα, μπορούμε να την προχωρήσουμε με τον ακόλουθο βρόχο, αντιγράφοντας τα αρχεία ένα κάθε φορά. Χρησιμοποιούμε τη μεταβλητή |_+_| για να μπείτε στη λίστα. Για κάθε μέλος της λίστας, αντιγράφουμε το αρχείο στο |_+_| μας ριζικός κατάλογος που είναι η τιμή που διατηρείται στο |_+_|.

Διαφήμιση

Το |_+_| (λεκτική) η επιλογή προκαλεί |_+_| να ανακοινώνει κάθε αντίγραφο καθώς το εκτελεί. Το |_+_| Η επιλογή διασφαλίζει ότι τυχόν γονικοί κατάλογοι που λείπουν δημιουργούνται στο |_+_| περιβάλλον.

chroot

Και αυτό είναι το αποτέλεσμα:

Θα χρησιμοποιήσουμε αυτήν την τεχνική για να καταγράψουμε τις εξαρτήσεις καθεμιάς από τις άλλες εντολές. Και θα χρησιμοποιήσουμε την τεχνική βρόχου για να εκτελέσουμε την πραγματική αντιγραφή. Τα καλά νέα είναι ότι χρειάζεται μόνο να κάνουμε μια μικρή τροποποίηση στην εντολή που συγκεντρώνει τις εξαρτήσεις.

Μπορούμε να ανακτήσουμε την εντολή από το ιστορικό εντολών μας πατώντας το |_+_| πληκτρολογήστε μερικές φορές και στη συνέχεια κάντε την επεξεργασία. Η εντολή επαναφοράς αντιγραφής δεν χρειάζεται να αλλάξει καθόλου.

Εδώ χρησιμοποιήσαμε το |_+_| κλειδί για να βρείτε την εντολή και την έχουμε επεξεργαστεί για να πούμε |_+_| αντί για |_+_|.

chroot

Μπορούμε τώρα να επαναλάβουμε την ίδια ακριβώς εντολή βρόχου όπως πριν:

chroot

Και τα αρχεία μας αντιγράφονται για εμάς:

Μπορούμε τώρα να επεξεργαστούμε το |_+_| γραμμή εντολών για |_+_|:

chroot

Διαφήμιση

Και πάλι, θα χρησιμοποιήσουμε την ίδια εντολή βρόχου. Δεν ενδιαφέρεται ποια αρχεία βρίσκονται στη λίστα. Λειτουργεί τυφλά μέσω της λίστας αντιγράφοντας τα αρχεία για εμάς.

chroot

Και οι εξαρτήσεις για |_+_| αντιγράφονται για εμάς:

Επεξεργαζόμαστε το |_+_| γραμμή εντολών για τελευταία φορά, που την κάνει να λειτουργεί για |_+_|:

chroot

Χρησιμοποιούμε την εντολή αντιγραφής βρόχου για τελευταία φορά:

chroot

Οι τελευταίες από τις εξαρτήσεις μας αντιγράφονται στο |_+_| μας περιβάλλον. Είμαστε επιτέλους έτοιμοι να χρησιμοποιήσουμε το |_+_| εντολή. Αυτή η εντολή ορίζει τη ρίζα του |_+_| περιβάλλον και καθορίζει ποια εφαρμογή θα εκτελείται ως κέλυφος.

chroot

δικός μας |_+_| το περιβάλλον είναι πλέον ενεργό. Η προτροπή του παραθύρου του τερματικού έχει αλλάξει και το διαδραστικό κέλυφος διαχειρίζεται το |_+_| κέλυφος στο περιβάλλον μας.

Μπορούμε να δοκιμάσουμε τις εντολές που έχουμε φέρει στο περιβάλλον.

chroot chroot

Διαφήμιση

Το |_+_| η εντολή λειτουργεί όπως θα περιμέναμε όταν τη χρησιμοποιούμε στο περιβάλλον. Όταν προσπαθούμε να αποκτήσουμε πρόσβαση σε έναν κατάλογο εκτός του περιβάλλοντος, η εντολή αποτυγχάνει.

Μπορούμε να χρησιμοποιήσουμε |_+_| για να δημιουργήσετε ένα αρχείο, |_+_| για να το καταχωρήσετε και |_+_| να το αφαιρέσετε.

chroot -p chroot touch

Φυσικά, μπορούμε να χρησιμοποιήσουμε και τις ενσωματωμένες εντολές που παρέχει το κέλυφος του Bash. Εάν πληκτρολογήσετε |_+_| στη γραμμή εντολών, το Bash θα τα καταχωρήσει για εσάς.

rm

Χρησιμοποιήστε την έξοδο για να αφήσετε το |_+_| περιβάλλον:

ls

Εάν θέλετε να αφαιρέσετε το |_+_| περιβάλλον, μπορείτε απλά να το διαγράψετε:

touch

Αυτό θα διαγράψει αναδρομικά τα αρχεία και τους καταλόγους στο |_+_| περιβάλλον.

Αυτοματοποίηση για ευκολία

Αν σκέφτεστε ότι |_+_| Τα περιβάλλοντα μπορεί να είναι χρήσιμα για εσάς, αλλά είναι λίγο δύσκολο να τα ρυθμίσετε, να θυμάστε ότι μπορείτε πάντα να αποβάλλετε την πίεση και τον κίνδυνο από επαναλαμβανόμενες εργασίες χρησιμοποιώντας ψευδώνυμα, συναρτήσεις και σενάρια.

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να δημιουργήσετε ψευδώνυμα και συναρτήσεις κελύφους στο Linux

Εντολές Linux
Αρχεία πίσσα · pv · Γάτα · tac · chmod · λαβή · διαφ · sed · Με · άνδρας · έσπρωξε · popd · fsck · δοκιμαστικό δίσκο · επ · fd · παντοκ · CD · $PATH · οκ · Συμμετοχή · jq · πτυχή · uniq · journalctl · ουρά · κατάσταση · ls · fstab · πέταξε έξω · πιο λιγο · chgrp · τσόουν · στροφή μηχανής · Κοίτα · χορδές · τύπος · μετονομάζω · φερμουάρ · ανοίγω φερμουάρ · βουνό · ποσό · εγκαθιστώ · fdisk · mkfs · rm · rmdir · rsync · df · gpg · εμείς · νανο · mkdir · από · ln · κηλίδα · μετατρέπω · rclone · κομματάκι · SRM
Διαδικασίες ψευδώνυμο · οθόνη · μπλουζα · όμορφη · renice · πρόοδος · στρας · Σύστημα · tmux · chsh · ιστορία · στο · σύνολο παραγωγής · Ελεύθερος · οι οποίες · dmesg · usermod · ΥΣΤΕΡΟΓΡΑΦΟ · chroot · xargs · tty · ροζ · lsof · vmstat · τέλος χρόνου · τείχος · Ναί · σκοτώνω · ύπνος · sudo · του · χρόνος · ομαδική προσθήκη · usermod · ομάδες · lshw · ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ · επανεκκίνηση · να σταματήσει · απενεργοποίηση · passwd · lscpu · crontab · ημερομηνία · bg · fg
Δικτύωση netstat · ping · traceroute · ip · σσ · ποιος είναι · fail2ban · bmon · εσύ · δάχτυλο · nmap · ftp · μπούκλα · wget · που · ποιός είμαι · Σε · iptables · ssh-keygen · ufw

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Καλύτεροι φορητοί υπολογιστές Linux για προγραμματιστές και λάτρεις

ΔΙΑΒΑΣΤΕ ΤΗ ΣΥΝΕΧΕΙΑ Φωτογραφία προφίλ για τον Dave McKay Dave McKay
Ο Dave McKay χρησιμοποίησε για πρώτη φορά υπολογιστές όταν η διάτρητη χαρτοταινία ήταν στη μόδα και από τότε ασχολείται με τον προγραμματισμό. Μετά από περισσότερα από 30 χρόνια στη βιομηχανία της πληροφορικής, είναι πλέον δημοσιογράφος τεχνολογίας πλήρους απασχόλησης. Κατά τη διάρκεια της καριέρας του, έχει εργαστεί ως ελεύθερος επαγγελματίας προγραμματιστής, διευθυντής διεθνούς ομάδας ανάπτυξης λογισμικού, διευθυντής έργου υπηρεσιών πληροφορικής και, πιο πρόσφατα, ως Υπεύθυνος Προστασίας Δεδομένων. Η γραφή του έχει δημοσιευτεί από τα howtogeek.com, cloudsavvyit.com, itenterpriser.com και opensource.com. Ο Dave είναι ευαγγελιστής Linux και υπέρμαχος ανοιχτού κώδικα.
Διαβάστε το πλήρες βιογραφικό

Ενδιαφέροντα Άρθρα