Πώς να ορίσετε προεπιλεγμένα δικαιώματα αρχείων για όλους τους φακέλους/αρχεία σε έναν κατάλογο;

Θέλω να ορίσω έναν φάκελο έτσι ώστε οτιδήποτε δημιουργείται μέσα σε αυτόν (κατάλογοι, αρχεία) να κληρονομεί προεπιλεγμένα δικαιώματα και ομάδα.

Ας ονομάσουμε την ομάδα "media". Και επίσης, οι φάκελοι/αρχεία που δημιουργούνται μέσα στον κατάλογο θα πρέπει να έχουν αυτόματα g+rw.

Λύση

Το βρήκα: Εφαρμογή προεπιλεγμένων δικαιωμάτων

Από το άρθρο:

chmod g+s   //set gid 
setfacl -d -m g::rwx /  //set group to rwx default 
setfacl -d -m o::rx /   //set other

Στη συνέχεια μπορούμε να επαληθεύσουμε:

getfacl /

Έξοδος:

# file: ..//
# owner: 
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Σχόλια (14)

Αυτή είναι μια προσθήκη στην απάντηση του Chris, βασίζεται στην εμπειρία μου στην εξέδρα Arch Linux.

Η χρήση του διακόπτη default (-d) και του διακόπτη modify (-m) θα τροποποιήσει μόνο τα προεπιλεγμένα δικαιώματα, αλλά θα αφήσει τα υπάρχοντα άθικτα:

setfacl -d -m g::rwx /

Αν θέλετε να αλλάξετε ολόκληρη τη δομή των δικαιωμάτων του φακέλου'συμπεριλαμβανομένων των υπαρχόντων (θα πρέπει να κάνετε μια επιπλέον γραμμή και να την κάνετε αναδρομική -R:

setfacl -R -m g::rwx /

π.χ.

setfacl -R -m g::rwx /home/limited.users/ // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/ //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/ // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/ //revokes read, write and execute permissions for everyone else. 

(CREDIT στο markdwite στα σχόλια για τη σύνθεση της γραμμής revoke all privileges)

Σχόλια (2)

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

chacl -R filename
Σχόλια (2)