Программа BASIC на общем ресурсе Samba получает «Доступ запрещен» при запуске другого процесса

972
hvtilborg

Это ситуация. У нас есть NAS-устройство Synology (под управлением DSM 5.0), на котором размещен общий файловый ресурс Windows general. Права доступа к этой папке установлены как на скриншоте:

'general' folder Synology permissions

Эта папка используется в качестве подключенного сетевого диска на клиентах Windows 7 (32-разрядных) (отображается как Z:). Для этого ресурса аутентификация не требуется. Т.е. каждый может получить к нему доступ.

Устаревшая программа Microsoft BASIC 7 находится на этом подключенном диске. Сама эта программа, скажем, PROGRAM.EXEработает правильно. Он работает, может создавать файлы и папки и т. Д. Никаких проблем там нет.

Проблема возникает, когда программа создает временный файл (скажем INVOICE.TXT), а затем пытается запустить другой процесс, который хорошо печатает созданный текстовый файл. По словам разработчика программы, он SHELL Z:\INVOICE.EXEзапускает этот процесс. Что программа показывает, когда это выполняется, является: Access denied.

Странно то, что когда я запускаю INVOICE.EXEвручную из Windows Explorer, все идет хорошо (то есть счет распечатывается).

Я хотел бы добавить, что когда обе программы находятся на локальном диске или на общем диске другого хоста Windows, все идет хорошо.

Я понятия не имею, что происходит не так. Что я пробовал до сих пор:

  • Отключенный UAC.
  • Добавлен IP-адрес Synology на доверенные веб-сайты Internet Explorer.
  • Когда обе программы находятся на локальном диске, все работает хорошо.
  • Когда обе программы находятся на общем компьютере с Windows, все работает хорошо.
  • PROGRAM.EXEРаботал с правами администратора (это работало только после совместного использования подключенных дисков со всеми пользователями ).
  • Изменены права доступа к папке, как показано на скриншоте. Содержимое каталога теперь выглядит так:

    synology> ls -l /volume1 ... drwxrwxrwx 33 guest users 4096 Oct 2 14:28 general ... 

    Все подпапки и файлы имеют одинаковые разрешения. Прилагаемое synoacltoolпоказывает это для папки (и подпапок + файлов):

    synology> synoacltool -get /volume1/general ACL version: 1  Archive: has_ACL,is_support_ACL  Owner: [guest(user)]  ---------------------  [0] group:users:allow:r-x---a-R-c--:---n (level:0) [1] everyone::allow:rwxpdDaARWcCo:fd-- (level:0) 

Но все без того, чтобы заставить его работать ...

2
Может ли PROGRAM.EXE успешно запускать INVOICE.EXE, когда NAS не задействован? Например, скопируйте программы и все необходимые файлы данных на рабочий стол, удалите карту Z: и вместо этого сопоставьте Z: с локальным разделом (поэтому не нужно изменять программу BASIC для вызова INVOICE.EXE из местоположения, отличного от Z :). Это может помочь определить, вносит ли NAS вклад в проблему или нет. Nick Russo 9 лет назад 0

1 ответ на вопрос

1
Jason

Try disabling SMBv2 on your Windows 7 client. Many users report problems using newer versions of SMB with legacy applications or non-Windows systems.

sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi sc.exe config mrxsmb20 start= disabled 

Must be run as an administrator and must restart for the commands to take effect.

Я хотел бы добавить, что у меня была включена опция Synology «Включить SMB2 и Large MTU» (на вкладке файловых служб панели управления). Отключение этой опции также решает проблему без участия всех клиентов. hvtilborg 9 лет назад 0