συστήματα

Γνώση Υπολογιστών >> συστήματα >  >> Linux

Τι κάνει το chroot σε ένα λειτουργικό σύστημα Linux;

Η κλήση συστήματος chroot αλλάζει τον ριζικό κατάλογο για τη διαδικασία κλήσης και τα παιδιά της. Αυτό σημαίνει ότι η διεργασία και τα παιδιά της θα δουν τον καθορισμένο κατάλογο ως τη ρίζα του συστήματος αρχείων. Όλα τα ονόματα διαδρομών θα ερμηνεύονται σε σχέση με αυτήν τη νέα ρίζα, αντί για την πραγματική ρίζα του συστήματος αρχείων.

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

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

Για να χρησιμοποιήσετε το chroot, η διαδικασία πρέπει να έχει την ικανότητα CAP_SYS_CHROOT. Αυτή η δυνατότητα παρέχεται συνήθως σε διεργασίες που εκτελούνται ως root.

Η σύνταξη της κλήσης συστήματος chroot είναι:

`int chroot(const char *όνομα διαδρομής);`

Οπου:

pathname:Η διαδρομή προς τον νέο ριζικό κατάλογο.

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

```

#include

#include

#include

int main()

{

// Αλλάξτε τον ριζικό κατάλογο σε /tmp

if (chroot("/tmp") ==-1) {

perror ("chroot");

έξοδος (EXIT_FAILURE);

}

// Εκτυπώστε τον τρέχοντα κατάλογο εργασίας

char cwd[1024];

if (getcwd(cwd, sizeof(cwd)) ==NULL) {

perror("getcwd");

έξοδος (EXIT_FAILURE);

}

printf("Τρέχον κατάλογος εργασίας:%s\n", cwd);

επιστροφή EXIT_SUCCESS.

}

```

Όταν εκτελείται αυτό το πρόγραμμα, θα εκτυπώσει την ακόλουθη έξοδο:

```

Τρέχων κατάλογος εργασίας:/tmp

```

Αυτό δείχνει ότι ο τρέχων κατάλογος εργασίας έχει αλλάξει σε /tmp.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα