2 votes

chmod : copie les permissions (avec les permissions étendues) d'un fichier à un autre

J'ai un système de fichiers ZFS qui est partagé via CIFS. D'une manière ou d'une autre, les autorisations se sont mélangées, à tel point que la propriété est correcte mais qu'un grand nombre de fichiers ont des autorisations 0000.

Les fichiers qui fonctionnent correctement ressemblent à ceci :

-rwx------+  1 guest other 3.8M 2011-05-10 14:58 Presentation.ppt

Comment puis-je copier ce jeu de permissions et l'appliquer au reste des fichiers du système de fichiers ?

Mise à jour

Merci pour les réponses - le problème que j'ai est qu'un fichier avec des autorisations 700, pour une raison quelconque, n'a pas l'autorisation de suppression, lorsqu'il est affiché à partir de Windows :

La définition de la permission donne le '+' sur le fichier.

3voto

Tobias Langner Points 6354

Vous pouvez visualiser les autorisations étendues avec :

$ /usr/bin/ls -V Presentation.ppt

Cela pourrait ressembler à ça :

$ /usr/bin/ls -V Presentation.ppt
   -rw-r--r--+  1 root     staff          0 Feb  3 14:13 file.1
        user:lp:rw------------:------:allow
         owner@:--x-----------:------:deny
         owner@:rw-p---A-W-Co-:------:allow
     user:marks:r-------------:------:deny
         group@:-wxp----------:------:deny
         group@:r-------------:------:allow
      everyone@:-wxp---A-W-Co-:------:deny
      everyone@:r-----a-R-c--s:------:allow

Vous pouvez ensuite appliquer cet ensemble de paramètres ACL de manière récursive à votre partage :

$ /usr/bin/chmod -R A=\
    user:lp:rw------------:------:allow, \
    owner@:--x-----------:------:deny, \
    owner@:rw-p---A-W-Co-:------:allow, \
    user:marks:r-------------:------:deny, \
    group@:-wxp----------:------:deny, \
    group@:r-------------:------:allow, \
    everyone@:-wxp---A-W-Co-:------:deny, \
    everyone@:r-----a-R-c--s:------:allow, \
    /mnt/share

0voto

Bart De Vos Points 17611

Pour trouver la représentation numérique :

-  rwx --- ---  
0  111 000 000
   --- --- ---
    7   0   0

Donc, si les propriétaires et les groupes sont corrects, vous pouvez changer toutes les permissions en 700 .

chmod -R 700 /path/to/folders

0voto

Hyppy Points 15356
chmod -R 0700 /path/to/files

Bien que le "+" soit troublant, il indique un ACL spécial sur les fichiers. vous pouvez utiliser getfacl y setfacl pour ceux-là, mais c'est beaucoup plus compliqué. Regardez cette page pour obtenir des informations sur le fonctionnement de l'appareil.

0voto

isherwood Points 107

Je ne suis pas un gourou de ZFS, mais vérifiez d'abord que les permissions étendues apparaissent avec getfacl <filename> . En supposant que ce soit le cas, vous pouvez utiliser cette sortie pour setfacl, qui définit les permissions. Pour ce faire, commencez par récupérer la liste d'accès que vous souhaitez via le fichier getfacl Presentation.ppt > correctfacl.txt puis en définissant d'autres fichiers avec setfacl -M correctfacl.txt <files_to_change> (Le -R rendra le système récursif)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X