Veto sur les fichiers sous Unix pour autoriser uniquement le format * .PDF

0

Eh bien, j'ai le scénario suivant:

  • Dans ma société, il existe un dossier partagé Samba \\10.0.0.1\pdfsonly.
  • Ce dossier est partagé par tous les membres de l'entreprise et sert à stocker des documents numérisés au format PDF.
  • Il est (au moins) peu sûr de permettre aux gens d’ajouter des fichiers là-bas. Nous avons donc décidé d’interdire l’ajout de fichiers autres que * .PDF;
  • Sur Samba, vous pouvez configurer les veto filesparamètres uniquement pour les caractères génériques qui seront interdits.

Nos efforts nous ont donc permis de réaliser la veto filesconfiguration suivante (quelques sauts de ligne sont inclus pour une meilleure lecture):

veto files = /*.a*/*.b*/*.c*/*.d*/*.e*/*.f*/*.g*/*.h*/*.i*/*.j*/*.k*
             /*.l*/*.m*/*.n*/*.o*/*.q*/*.r/*.s*/*.t*/*.u*/*.v*/*.w*
             /*.x*/*.y*/*.z*/*.0*/*.1*/*.2*/*.3*/*.4*/*.5*/*.6*/*.7*
             /*.8*/*.9*/*.pa*/*.pb*/*.pc*/*.pe*/*.pf*/*.pg*/*.ph*
             /*.pi*/*.pj*/*.pk*/*.pl*/*.pm*/*.pn*/*.po*/*.pp*/*.pq*
             /*.pr/*.ps*/*.pt*/*.pu*/*.pv*/*.pw*/*.px*/*.py*/*.pz*
             /*.p0*/*.p1*/*.p2*/*.p3*/*.p4*/*.p5*/*.p6*/*.p7*/*.p8*
             /*.p9*/*.pda*/*.pdb*/*.pdc*/*.pdd*/*.pde*/*.pdg*/*.pdh*
             /*.pdi*/*.pdj*/*.pdk*/*.pdl*/*.pdm*/*.pdn*/*.pdo*/*.pdp*
             /*.pdq*/*.pdr/*.pds*/*.pdt*/*.pdu*/*.pdv*/*.pdw*/*.pdx*
             /*.pdy*/*.pdz*/*.pd0*/*.pd1*/*.pd2*/*.pd3*/*.pd4*/*.pd5*
             /*.pd6*/*.pd7*/*.pd8*/*.pd9*/*.pdfa*/*.pdfb*/*.pdfc*/*.pdfd*
             /*.pdfe*/*.pdff/*.pdfg*/*.pdfh*/*.pdfi*/*.pdfj*/*.pdfk*
             /*.pdfl*/*.pdfm*/*.pdfn*/*.pdfo*/*.pdfp*/*.pdfq*/*.pdfr
             /*.pdfs*/*.pdft*/*.pdfu*/*.pdfv*/*.pdfw*/*.pdfx*/*.pdfy*
             /*.pdfz*/*.pdf0*/*.pdf1*/*.pdf2*/*.pdf3*/*.pdf4*/*.pdf5*
             /*.pdf6*/*.pdf7*/*.pdf8*/*.pdf9*/*.?/*.??

En résumé, le serveur n’est pas autorisé à recevoir:

  • Fichiers avec 1 ou 2 caractères sur l'extension de fichier;
  • Fichiers dont l'extension commence par [az] ou [0-9], sauf par p;
  • Fichiers avec l'extension commençant par p, suivis de [az] ou [0-9], sauf par d;
  • Fichiers avec l'extension commençant par p, suivis de d, suivis de [az] ou [0-9], sauf de f;
  • Fichiers avec l'extension commençant par p, suivis de d, suivis de f, suivis de ([az] ou [0-9]) et davantage de caractères.

Mais nous avons les types de fichiers suivants que nous ne pouvons pas bloquer:

  • Fichiers sans extension;
  • Extension de fichiers commençant par "caractères spéciaux" ou par ceux-ci après p ou pd ou pdf (pas [az] ni [0-9]).

Les problèmes suivants peuvent survenir si nous utilisons tel quel:

  • Les personnes sans superutilisateur peuvent ajouter des fichiers PDF sans extension ou avec une extension incorrecte, de sorte que les autres personnes sans superutilisateur ne trouveront ni n'ouvriront le fichier;
  • Les logiciels / scripts / utilisateurs malveillants peuvent stocker des fichiers sans extension ou avec une extension incorrecte dans le cadre d'une attaque.

Alors, aidez-moi s'il vous plaît!

  • Optimiser la veto filesconfiguration actuelle ;
  • Pour ajouter une configuration pour interdire les fichiers sans extension ou avec des extensions différentes de * .pdf
Kokbira
la source

Réponses:

4

Tout d’abord, vous dites que c’est pour stocker les analyses - ne pouvez-vous pas simplement la rendre en lecture seule, donnez au scanner un utilisateur disposant d’autorisations de lecture / écriture et tout le monde serait content?

Fichiers sans extension;

Il semble n'y avoir aucun moyen documenté d'accomplir cela actuellement en utilisant les options de veto sur les fichiers de samba. Curieusement, une fonctionnalité de «fichiers de veto inverse» a été demandée et inscrite sur une liste de choses à faire… il y a 11 ans!

Extension de fichiers commençant par "caractères spéciaux" ou par ceux-ci après p ou pd ou pdf (pas [az] ni [0-9]).

Vous devrez probablement y échapper en utilisant un caractère \avant le caractère spécial. Cependant, vous devriez plutôt chercher à dire aux utilisateurs de ne pas faire ce genre de chose.

Une solution totalement distincte pourrait être créée à l’aide de cron et d’une déclaration find, à l’instar de

find -not -name "*.pdf" /directory -deletequi supprimerait tous les fichiers qui ne finissent pas par .pdf.

djsmiley2k
la source
A propos de « peut vous non seulement faire en lecture seule, donner le scanner un utilisateur avec des autorisations de lecture / écriture et tout le monde serait heureux? », Eh bien, je ne l' ai pas raconter toute l' histoire :) Nous avons deux dossiers partagés qui utiliseront cette \\10.0.0.1\pdfsonlyconfiguration : \\10.0.0.1\scanneddocset \\10.0.0.1\docsforasystem. scanneddocsutilise cette configuration que vous avez dite, mais il s’agit de fichiers PDF à usage général. Sur docsforasystem, les utilisateurs stockent dans des dossiers séparés par sujet des fichiers importants scanneddocs, renommés et modifiés (rotation, OCR, suppression de pages, fusion, etc.).
kokbira
1
Je pense que votre problème est clairement les utilisateurs, et non le système, vous allez les combattre pendant longtemps :(
djsmiley2k
1
Je ne peux pas être sûr que ce soit impossible, mais je supprimerai le *. bit.
djsmiley2k
1
Curieusement, cela a été demandé et sur une liste de choses à faire ... il y a 11 ans! - linux.samba.narkive.com/hELaUSfS/samba-reverse-veto-files#post3
djsmiley2k
1
J'ai modifié votre réponse en ajoutant votre dernier commentaire :) Sur les futurs extraterrestres découvriront un ordinateur gelé et résoudront ce problème.
Kokbira