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

Τα αρχεία και οι κατάλογοι σε συστήματα Linux ανήκουν όλα σε κάποιον. Μπορείτε να αλλάξετε την ιδιοκτησία τους με την εντολή chown. Σας δείχνουμε πώς.

Κάθε αρχείο ανήκει σε έναν χρήστη και μια ομάδα

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

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

Όταν δημιουργείται ένα αρχείο, ο κάτοχός του είναι ο χρήστης που το δημιούργησε. Η ομάδα στην οποία ανήκει το αρχείο—η «κατέχουσα» ομάδα—είναι η τρέχουσα ομάδα του χρήστη. Οι χρήστες και οι ομάδες έχουν ονόματα και έχουν επίσης αριθμητικές ταυτότητες, που ονομάζονται αναγνωριστικό χρήστη (ή μοναδικό) και αναγνωριστικό ομάδας (GID).

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

Μπορείτε να χρησιμοποιήσετε την εντολή chown για να αλλάξετε τις τιμές ιδιοκτησίας σε κάτι άλλο. Μπορείτε να ορίσετε έναν νέο κάτοχο, μια νέα ομάδα ή έναν νέο κάτοχο και μια νέα ομάδα ταυτόχρονα. Ο κάτοχος ενός αρχείου μπορεί να αλλάξει την ιδιοκτησία της ομάδας, αλλά μόνο το root μπορεί να αλλάξει την ιδιοκτησία χρήστη, επειδή αυτό αφορά άλλον χρήστη. Χωρίς δικαιώματα root, δεν μπορείτε να κάνετε έναν άλλο χρήστη στο σύστημα να «υιοθετήσει» ένα αρχείο άθελά του.

  Πώς να εγγράψετε Screencast GIF σε Linux

Γιατί θα θέλατε να αλλάξετε ιδιοκτησία;

Ακολουθούν μερικά παραδείγματα καταστάσεων όπου μπορεί να θέλετε να το κάνετε αυτό:

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

Προβολή των Ομάδων, του UID και του GID σας

Προς το απαριθμήστε τις ομάδες βρίσκεστε μέσα, μπορείτε να χρησιμοποιήσετε την εντολή ομάδες.

groups

Για να λάβετε μια λίστα με τις ομάδες, τα αριθμητικά τους αναγνωριστικά, και το UID και το GID σας, χρησιμοποιήστε την εντολή id:

id

Μπορείτε να χρησιμοποιήσετε ορισμένες επιλογές με ID για να βελτιώσετε την έξοδο.

-u: Καταχωρίστε το UID σας.
-ζ: Καταχωρίστε το ενεργό (τρέχον) GID σας.
-nu: Καταχωρίστε το όνομα χρήστη σας.
-ng: Καταχωρίστε το όνομα της τρέχουσας ομάδας σας.

id -u
id -g
id -nu
id -ng

Προβολή της ιδιοκτησίας χρήστη και ομάδας ενός αρχείου

Για να δείτε τους κατόχους ενός αρχείου ή καταλόγου, χρησιμοποιήστε την επιλογή -l (μεγάλη λίστα) με ls.

ls -l

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

  Πώς να εγκαταστήσετε το Oracle VirtualBox σε Linux

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

Αυτό το εκτελέσιμο αρχείο ανήκει στον χρήστη mary και η ομάδα στην οποία ανήκει το αρχείο είναι η ιδιωτική ομάδα της mary.

ls -l

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

Αλλαγή ιδιοκτησίας χρήστη

Ας δουλέψουμε μέσα από μερικά παραδείγματα. Αυτή η εντολή θα αλλάξει την ιδιοκτησία χρήστη του αρχείου while.c σε mary χρήστη.

sudo chown mary while.c

Μπορούμε να χρησιμοποιήσουμε το ls για να δούμε τις αλλαγές στις ιδιότητες του αρχείου.

ls -l while.c

Μπορείτε να χρησιμοποιήσετε το chown για να αλλάξετε την ιδιοκτησία πολλών αρχείων ταυτόχρονα.

sudo chown mary getval.c global.c goto.c

Αυτό αλλάζει την ιδιοκτησία χρήστη και των τριών αρχείων.

ls -l getval.c global.c goto.c

Μπορείτε να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ για να επιλέξετε ομάδες αρχείων. Αυτή η εντολή θα αλλάξει την ιδιοκτησία χρήστη όλων των αρχείων που ξεκινούν με το γράμμα “c”.

sudo chown mary c*.*

Όλα τα αρχεία θα έχουν πλέον ως κάτοχο τη Mary. Σημειώστε ότι καμία από τις ιδιοκτησίες του ομίλου δεν έχει αλλάξει.

ls -l mary c*.*

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

sudo chown mary ./archive/

Για να ελέγξουμε τις ιδιότητες ιδιοκτησίας του καταλόγου χρησιμοποιούμε το ls, αλλά και την επιλογή -d (κατάλογος) σε αυτόν. Αυτό παραθέτει τις ιδιότητες του καταλόγου, όχι τα αρχεία μέσα σε αυτόν.

ls -l -d ./archive/

Για να αλλάξετε την ιδιοκτησία όλων των αρχείων σε έναν κατάλογο, μπορείτε να χρησιμοποιήσετε την επιλογή -R (αναδρομική). Αυτή η επιλογή θα αλλάξει την ιδιοκτησία χρήστη όλων των αρχείων εντός του φακέλου αρχειοθέτησης.

sudo chown -R mary ./archive/

Τώρα ας δούμε τα αρχεία στον κατάλογο αρχειοθέτησης.

ls -l ./archive/

Όπως αναμενόταν, όλα τα αρχεία ανήκουν πλέον στη Mary.

  Πώς να εγκαταστήσετε το θέμα Arc για Thunderbird σε Linux

Αλλαγή ιδιοκτησίας ομάδας

Υπάρχουν διάφοροι τρόποι για να αλλάξετε την ιδιοκτησία της ομάδας.

Για να αλλάξετε την ιδιοκτησία της ομάδας ταυτόχρονα με την αλλαγή της ιδιοκτησίας χρήστη, περάστε το όνομα του νέου κατόχου και το νέο όνομα της ομάδας με άνω και κάτω τελεία «:» που τα χωρίζει. Η ομάδα πρέπει να υπάρχει ήδη.

sudo chown mary:researchlab charm.c

Ο κάτοχος χρήστη και η ομάδα στην οποία ανήκει το αρχείο έχουν αλλάξει και οι δύο.

ls -l charm.c

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

sudo chown mary: caps.c

ls -l caps.c

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

Για να αλλάξετε μόνο την ιδιοκτησία της ομάδας, τοποθετήστε πριν από αυτήν μια άνω και κάτω τελεία και παραλείψτε το όνομα χρήστη. Ο ιδιοκτήτης χρήστη δεν θα αλλάξει.

sudo chown :researchlab at.c

ls -l at.c

Η ιδιοκτησία της ομάδας έχει αλλάξει, αλλά η ιδιοκτησία χρήστη παραμένει η ίδια.

Χρήση Chown με τιμές UID και GID

Μπορείτε να χρησιμοποιήσετε τις αριθμητικές τιμές UID και GID με την εντολή chown. Αυτή η εντολή θα ορίσει τον χρήστη και την ιδιοκτησία της ομάδας σε mary.

sudo chown 1001:1001 at.c

ls -l at.c

Η κατοχή είναι τα εννέα δέκατα του νόμου

Ή έτσι λένε. Αλλά στο Linux, η ιδιοκτησία είναι ένα τεράστιο μέρος της ασφάλειας αρχείων, με τα δικαιώματα αρχείων να παρέχουν το υπόλοιπο. Χρησιμοποιήστε τις εντολές chown και chmod για να εξασφαλίσετε την πρόσβαση στα αρχεία στο σύστημά σας.