Το 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.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα