Μαζική αλλαγή δικαιωμάτων, και μεταφορά δικαιωμάτων στο τερματικό

Μαζική αλλαγή δικαιωμάτων στο τερματικό

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

Πρώτα διαβάστε αν δεν το κάνατε ακόμα τα παρακάτω:

Για την εντολή find

Για το τι είναι το umask

Καθώς και τους άλλους οδηγούς και σημειώματα στο tag #permissions (κάντε κλικ). Οι πληροφορίες στα παραπάνω είναι πολλές, μην επιμείνετε στις λεπτομέρειές στην πρώτη ανάγνωση, αλλά τουλάχιστον κρατήστε τις βασικές ιδέες.

Τα περισσότερα, αλλά όχι άλλα μπορούν να γίνουν και με γραφικό περιβάλλον, αλλά κάποιες φορές το τερματικό βολεύει καλύτερα. Για παράδειγμα, σε Gnome

image

Μαζική αλλαγή αρχείων και καταλόγων

Το κόλπο εδώ είναι να συνδυάσουμε τις εντολές find και chmod. Για ένα φάκελο ο αριθμός 755 που αντιστοιχεί στο umask 022 είναι ένας καλός αριθμός. Για να αλλάξουμε τα δικαιώματα ενός φακέλου <folder> αλλά και όλων των φακέλλων που περιέχει θα δώσουμε την εντολή

find <folder>  -type d -exec chmod 0755 {} \;

εναλλακτικά πάμε στον συγκεκριμένο φάκελο με την εντολή cd <folder> και δίνουμε την εντολή

find .  -type d -exec chmod 0755 {} \;

Μερικές σημειώσεις: To . είναι ο τρέχων φάκελος (ή κατάλογος ή directory δε θα τα χαλάσουμε στο όνομα). Με την παράμετρο -type d περιορίζουμε την εντολή chmod μόνο σε directory (εεε φακέλους ήθελα να πω). Με παρόμοιο τρόπο μπορούμε να χρησιμοποιήσουμε άλλα κριτήρια. Για παράδειγμα, μπορεί να θέλουμε να κλειδώσουμε για να μη σβήσουμε κατά λάθος όλους τους φακέλους των προηγούμενων μηνών (πως; μπορείτε να γράψετε την εντολή σαν σχόλιο;).

Μια καλύτερη λύση για το τελευταίο θα ήταν η εντολή chattr, δείτε το σχετικό άρθρο.

Οπότε αν θέλουμε μόνο τα αρχεία και όχι τους καταλόγους; Ευκολο -type f. Και για το ίδιο umask ο αριθμός θα είναι 0644 (γιατί;). Και η εντολή:

find . -type f -exec chmod 0644 {} \;

Μεταφορά δικαιωμάτων

Μακάρι να το γνώριζα ( chmod(1)) αυτό χρόνια πριν. Το ανακάλυψα σήμερα εδώ. Μπορείς να πάρεις τα δικαιώματα που έχει ένα αρχείο και να βάλεις τα δικαιώματα σε ένα δεύτερο! H εντολή είναι:

chmod --reference=file1 file2

And this is a good place to stop.

5 «Μου αρέσει»