powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Настройка доступа ExternalFileAccess
34 сообщений из 34, показаны все 2 страниц
Настройка доступа ExternalFileAccess
    #38815868
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Появилась необходимость сделать одну из таблиц внешним файлом, в ExternalFileAccess сделал разрешение на определенную папку:
Код: plaintext
ExternalFileAccess = 'C:\_temp'

При создании и попытке внести данные в таблицу получаю:
Код: plaintext
Access to external file "C:\_TEMP\TABLE_1.TXT" is denied by server administrator. 
и в логе:
Код: plaintext
1.
VALCHENKO	Tue Nov 25 15:54:29 2014
	DirectoryList: unknown parameter ''C:\_temp\'', defaulting to None

В описание сказано:
Код: plaintext
To specify access to specific trees, enum all required paths (for Win32 this may be something like 'C:\ExternalTables', for unix - '/db/extern;/mnt/extern').
т.е. моей ошибки нет.

В трекер?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815887
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

кавычки убирать пробовал ?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815894
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,пробовал,такая же фигня
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815915
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

у тебя прав нет.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815926
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,Дима,а причем тут права,если в логе unknown parameter?
Права есть,специально перепроверил.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815941
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ок, тогда о какой версии Firebird идет речь?

у меня есть d:\temp. пишу в конфиге
ExternalFileAccess = Restrict d:\temp

создаю ext таблицу - работает.

Или ты про то, что "не работает" без указания Resrict ? Но ведь это формат такой.
none - запрещено вообще
restrict folderlist - разрешить в списке папок
full - разрешить везде.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815942
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слово Restrict - не для красоты, оно обязательное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815948
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

написал
ExternalFileAccess = d:\temp
сохранил, перезапустил ФБ. создаю таблицу - все ок. А вот дальше, надо данные добавить.

Access to external file "D:\TEMP\A.TMP" is denied by server administrator.

Возвращаю
ExternalFileAccess = Restrict d:\temp

работает.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38815954
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно,всем спасибо
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38816021
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RootDirectory указывает не туда (должен указывать на Root, а указывает в ...system32).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
# ==================================
# Settings for all platforms/engines
# ==================================
#
# ----------------------------
#  Specify the root directory under which Firebird is installed. 
# Can be used to override the OS-specifically determined one.
#
# Type: string
#
# RootDirectory  =

# ----------------------------
# External File Paths/Directories
#
# ExternalFileAccess may be None, Full or Restrict. If you choose
# Restrict, provide ';'-separated trees list, where external files
# are stored.  Relative paths are treated relative to RootDirectory  entry
# (see above). Default value 'None' disables any use of external files
# on your site. To specify access to specific trees, enum all required
# paths (for Win32 this may be something like 'C:\ExternalTables',
# for unix - '/db/extern;/mnt/extern').
#
# NOTE: THE EXTERNAL TABLE ENGINE FEATURE COULD BE USED TO COMPROMISE
# THE SERVER/HOST AS WELL AS DATABASE SECURITY!!
#
# IT IS STRONGLY RECOMMENDED THAT THIS SETTING BE USED TO LIMIT
# EXTERNAL TABLE LOCATIONS!
#
# Type: string (special format)
#
#ExternalFileAccess = None
И drop table не удаляет файл, что не логично. Как такую таблицу пересоздать?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38816052
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Nickdee!
You wrote on 25 ноября 2014 г. 13:35:44:

Nickdee> И drop table не удаляет файл, что не логично. пашолнахуй!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38816118
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша, нежнее, ещё нежнее. (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38816276
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

пересоздать - таблицу или файл?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38816400
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeRootDirectory указывает не туда (должен указывать на Root, а указывает в ...system32).

Сам же цитируешь - Can be used to override the OS-specifically determined one .

Ты и вправду настолько... кхм... альтернативно мыслишь, или придуриваешься, чтобы другие не комплексовали?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817006
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochNickDee,

пересоздать - таблицу или файл?
Таблица пересоздаётся. Но в ней мусор, т.к. файл не пересоздаётся.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817019
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineNickDeeRootDirectory указывает не туда (должен указывать на Root, а указывает в ...system32).

Сам же цитируешь - Can be used to override the OS-specifically determined one .

Ты и вправду настолько... кхм... альтернативно мыслишь, или придуриваешься, чтобы другие не комплексовали?
Вы почему пропустили строчку выше?
Код: plaintext
1.
# Specify the root directory under which Firebird is installed.
# Can be used to override the OS-specifically determined one.
the root directory under which Firebird is installed - это у меня "C:\Program Files (x86)\Firebird\Firebird_2_5".

И перестаньте уже фантазировать в мой адрес, даже в мыслях. Нет в том конструктива. И оффтоп к тому же.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817195
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

В ней не мусор, а содержимое файла.
Если очень надо, объявите таблицу состоящей из байтов и delete from table

внеш-таблица - это н файл, а объект для чтения/записи файла, аналогично TFileStram в Delphi или hfile в Windows / C

Вы же не хотите, чтобы при FileStream1.Free или fclose(h) файл на диске удалялся тоже?

да, в FB 2.5 не получится написать свой Нортон Коммандер без UDF, придется ждать FB3 и хранимки на плюсах и яве :-)
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817288
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ты не видишь, что он изрекает только то, что лично ему надо. Причем прикрываясь "желаниями разработчиков". В то время как на других разработчиков ему покласть. Догадаться не может, что внешний файл это внешний файл, и его нельзя удалять, или перезаписывать при create.

Впрочем, вот если бы он придумал к create table ... external file конструкцию, которая будет делать recreate внешнему файлу, тогда еще туда-сюда. Но - нет. Надо на один внешний файл насаживать таблицы разной структуры...
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817354
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Да нет, я в принципе бы не отказался от проверки наличия файла, его длины, удаления/переименования и даже списка файлов в директории
Не то, чтобы мне это было нужно до чёртиков, то просто для полноты этого "раздела" API

Но сама идея уничтожать данные при закрытии файла - это что-то с чем-то...
Это сводит внешние к чему-то межу GTT и временными файлами для сортировки.

Мне правда интересно... Надо было бы для него сделать сборку с именно запрошенным им функционалом - и что бы он с ней потом делал???
Если одноразово "всасывать" в БД данные из внешнего источника - то этот источник и озаботится удалением файла при подкладвании следующего пакета.
Если же выводить данные из БД наружу - то запрошенный функционал записали-и-сразу-удалили как-то очень похож на грабли
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817540
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochЕсли очень надо, объявите таблицу состоящей из байтов и delete from table
delete from table не работает:
Код: plaintext
1.
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
Cannot delete rows from external files.
Более того, не работает update:
Код: plaintext
1.
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
Cannot update rows in external files.
Только insert. Это описано в документации.
Таким образом можно дописывать данные к любым файлам, включая системные dll и exe:
Код: sql
1.
2.
3.
create table X EXTERNAL 'C:\Windows\System32\cmd.exe' (F varchar(20));
-- или create table X EXTERNAL 'cmd.exe' (F varchar(20));
insert into X4 (F) values ('1111111111111');


Причём это может делать любой юзер с любыми правами. Достаточно поставить ExternalFileAccess = Full.

Можно в "C:\Program Files (x86)\Firebird\Firebird_2_5\UDF\" создать dll любого содержания (это я проверил), зарегистрировать её в качетве UDF, и выполнить. И опять же это может сделать любой бесправный юзер.

Если админ укажет одинаковый каталог для UDF и внешних таблиц:
Код: plaintext
1.
ExternalFileAccess = Restrict MyDir;
UdfAccess = Restrict MyDir
, то он тоже получит эту дыру.

Ещё при "ExternalFileAccess = Restrict ..." можно создавать fbd-файлики любого содержания, и потом натравливать на них сервер. Понятно что в сервере есть баги, и рано или поздно он упадёт, или допустит выполнение произвольного кода, что ещё хуже.

Итого:
Система с ExternalFileAccess = Full ломается на раз-два (кстати бонусом открывается ещё и доступ на чтение всего и вся, даже бинарные файлы читаются).
Система с ExternalFileAccess и UdfAccess на пересекающиеся папки ломается не многим сложней.
Система с ExternalFileAccess = Restrict тоже может быть атакована.
Конечно нужно иметь рабочий логин...

Как лечить? Имхо достаточно забрать доступ к созданию таких таблиц для обычных пользователей.
В 2.5.3 вроде запретить нельзя.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817547
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeКак лечить?Перестать нести херню в ломать firebird.conf. Начать читать хотя бы комментарии к тем параметрам, которые ты ломаешь.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817575
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

контроль доступа для DDL есть только в тройке
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817576
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeТаким образом можно дописывать данные к любым файлам, включая системныедобраться файберд может только до тех файлов на которые есть доступ у юзера под которым оный запущен, в нормальной системе это по-умолчанию firebird из группы firebird у которого нет доступа на запись системных файлов.

ССЗБ запускающие прикладной сервис от рута должны страдать, тут просто без вариантов.

Опять буря в стакане?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817586
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню, что под виндой FB тривиально запускается от (встроенной) учётной записи NetworkService, которой требуется явно раздавать права на запись.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817587
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladNickDeeКак лечить?Перестать нести херню в ломать firebird.conf. Начать читать хотя бы комментарии к тем параметрам, которые ты ломаешь.

C "UdfAccess = Restrict UDF" проблем нет, а с "ExternalFileAccess = Restrict EF" проблемы в полный рост, хотя коммнеты обещают одинаковый батхерт при использовании.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
для ExternalFileAccess:
# NOTE: THE EXTERNAL TABLE ENGINE FEATURE COULD BE USED TO COMPROMISE
# THE SERVER/HOST AS WELL AS DATABASE SECURITY!!
#ExternalFileAccess = None

для UdfAccess:
# NOTE: THE EXTERNAL FUNCTION ENGINE FEATURE COULD BE USED TO COMPROMISE
# THE SERVER/HOST AS WELL AS DATABASE SECURITY!!
#UdfAccess = Restrict UDF
И я понимаю, что для тебя всё логично. Но вот тому кто в первый раз открывает конфиг, даже почитав предварительно доку, всё не так логично.

Я впервые сегодня пользовался внешними таблицами. И понял что ими пользоваться безопасно нельзя. Udf я пользуюсь давно, и не вижу проблем с безопасностью.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817592
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

А если ещё и под chroot'ом... Жаль, что штатные инсталляторы под Win32/Win64 не умеют ни того, ни другого.


NickDee,

> Достаточно поставить ExternalFileAccess = Full.

Угу, "а вы вон на шкаф залезьте и вон туда голову просуньте"

Что в замен, запретить Full? А на девелоперских машинах? а на унаследованных инсталляциях, где этого не было? Но в принципе что-то в этом есть. За одним исключением, "Full" - это как использование DCOM, это декларация, что программа работает в доверенной среде без мошенников и вирусов. И Если кто-то может это гарантировать - то почему бы и нет.

> Ещё при "ExternalFileAccess = Restrict ..." можно создавать fbd-файлики любого содержания, и потом натравливать на них сервер.

Да, интересный сценарий.

> Имхо достаточно забрать доступ к созданию таких таблиц для обычных пользователей.

Это все весьма резонно. Но не относится к недавнему желанию сделать, чтобы drop table удалял файлы на диске :-)
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817593
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подарите ему кто-нибудь бильярдный шар
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817597
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeUdf я пользуюсь давно, и не вижу проблем с безопасностью.

не понял почему.

http://www.firebirdfaq.org/faq203/
http://ibexpert.net/ibe/index.php?n=Doc.ConfiguringFirebird

Как говорится, "Достаточно поставить UdfAccess = Full."

После этого цепляемся в любым DLL операционки и начинаем создавать пользователей, открывать файлы, открпалять файлы по HTTP через WinInet и на что фантазии хватит
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817602
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чём конкретно претензии к FB ?
По-умолчанию всё закрыто.
Потенциальная небезопасность некоторых настроек документирована.
Никто, кроме sysadmin'а не может изменить настройки на небезопасные.
Чего вам ещё не хватает ?
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817606
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeПричём это может делать любой юзер с любыми правами. Достаточно поставить ExternalFileAccess = Full.
потому и ввели в 2000 году полный запрет на external table, по умолчанию.

А "если поставить Full доступ" - ну поставь права гостю на все файлы в любой ОС. Или дай юзеру права рута. то же самое ведь будет

NickDeeМожно в "C:\Program Files (x86)\Firebird\Firebird_2_5\UDF\" создать dll любого содержания (это я проверил), зарегистрировать её в качестве UDF, и выполнить. И опять же это может сделать любой бесправный юзер.
Эта фигня была известна еще в 97-98 годах, когда не было ограничения к файлам UDF. Сначала его ввели в 5.x, а потом в 6.0 и external file ограничили.
И не прошло и 14 лет, как ты вдруг УВИДЕЛ чудовищную дыру.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817638
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyССЗБ запускающие прикладной сервис от рута должны страдать, тут просто без вариантов.
У меня другая позиция. Я считаю что должны страдать все, кто пользуется кривописанным софтом :) А кто не хочет страдать, тот должен избегать пользоваться таким софтом, и лучше избегать интуитивно, как это уже делает подавляющее большинство нелюбителей страдать :)
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817658
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvИ не прошло и 14 лет, как ты вдруг УВИДЕЛ чудовищную дыру.
Ага, в первый же час использования :)
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38817691
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeЯ считаю что должны страдать все, кто пользуется кривописанным софтом :)
то есть, Firebird, и любая ОС, где явно надо давать разрешения, является кривописанным софтом?
мне кажется, у тебя уже зашкалило. Я за тебя должен додумывать, что ты предлагаешь запретить режим Full?

Про udfAccess вообще никто не вспоминает, потому что обычно не надо, хватает умолчания. А про FileAccess вспоминают, когда надо первый раз настроить, причем все делают (и тут советуют) Restrict. Если человек ставит Full, то либо он дурачок, либо ему все пофиг.
...
Рейтинг: 0 / 0
Настройка доступа ExternalFileAccess
    #38818008
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeЯ считаю что должны страдать все, кто пользуется кривописанным софтом :)Ух ты, ну надо же! У тебя есть прецедент не кривого софта? Я тебе по секрету скажу, весь софт тотально крив, даже тот, который писал лично ты (и я, все тут присутствующие).

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

Всякие ченжруты, аппарморы/селинуксы, виртуалки, файрволы, логирование, права доступа ОСи и т.п придумали трусы!
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Настройка доступа ExternalFileAccess
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]