Ну, у меня есть следующий сценарий:

  • В моей компании есть общая папка Samba \\10.0.0.1\pdfsonly ;
  • Эта папка доступна всем сотрудникам компании, и ее целью является хранение отсканированных документов в формате PDF;
  • (По крайней мере) небезопасно разрешать людям добавлять туда любые файлы, поэтому мы решили запретить добавление файлов, отличных от *.PDF там;
  • В Samba вы можете настроить параметры veto files только для подстановочных знаков, которые будут запрещены.

Итак, наши усилия позволили нам настроить следующие veto files (для удобства чтения включены некоторые разрывы строк):

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*/*.?/*.??

Подводя итог, он запрещает серверу получать:

  • Файлы с 1 или 2 символами на расширение файла;
  • Файлы с расширением, начинающимся с [az] или [0-9], за исключением p;
  • Файлы с расширением, начинающиеся с p, за которыми следуют [az] или [0-9], за исключением d;
  • Файлы с расширением, начинающиеся с p, за которыми следует d, затем [az] или [0-9], за исключением f;
  • Файлы с расширением, начинающимся с p, сопровождаемым d, сопровождаемым f, сопровождаемым ([az] или [0-9]) и больше символов.

Но у нас есть следующие типы файлов, которые мы не можем заблокировать:

  • Файлы без расширения;
  • Расширение файлов начинается со "специальных символов" или с них, следующих за p или pd или pdf (не [az] и [0-9]).

Следующие проблемы могут возникнуть, если мы используем как есть:

  • Пользователи без прав суперпользователя могут добавлять файлы PDF без расширения или с неправильным расширением, поэтому другие пользователи без прав суперпользователя не смогут найти или открыть файл;
  • Вредоносные программы / сценарии / люди могут хранить файлы без расширения или с неправильным расширением как часть какой-либо атаки.

Так что помогите, пожалуйста!

  • Оптимизировать текущую конфигурацию veto files ;
  • Чтобы добавить конфигурацию, чтобы запретить файлы без расширения или с расширениями, отличными от * .pdf

1 ответ1

4

Во-первых, вы говорите, что это для хранения сканов - можете ли вы не просто сделать это только для чтения, дать сканеру пользователя с правами на чтение / запись, и все будут рады?

Файлы без расширения;

Похоже, в настоящее время нет документированного способа сделать это с помощью опций вето файла samba. Забавно, что функция "обратное вето" была запрошена и в списке "дел"… 11 лет назад!

Расширение файлов начинается со "специальных символов" или с них, следующих за p или pd или pdf (не [az] и [0-9]).

Вы, вероятно, должны были бы избежать их, используя \ перед специальным символом. Тем не менее, вы должны вместо этого взглянуть на то, чтобы сказать пользователям не делать такого рода вещи.

Совершенно отдельное решение может быть создано с использованием cron и оператора find, что-то вроде

find -not -name "*.pdf" /directory -delete который удалит все файлы, которые не заканчиваются на .pdf .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .