启动其他进程时,Samba 共享上的 BASIC 程序显示“访问被拒绝”

启动其他进程时,Samba 共享上的 BASIC 程序显示“访问被拒绝”

情况是这样的。我们有一台 Synology NAS(运行 DSM 5.0),托管一个名为 的 Windows 文件共享general。此文件夹的权限设置如下图所示:

‘常规’文件夹 Synology 权限

此文件夹在 Windows 7(32 位)客户端上用作映射网络驱动器(映射为Z:)。此共享无需身份验证。即每个人都可以访问它。

旧版 Microsoft BASIC 7 程序位于此映射驱动器上。此程序本身(例如PROGRAM.EXE)可正常运行。它可以运行,可以创建文件和文件夹等。这里没有问题。

当程序创建一个临时文件(例如INVOICE.TXT)然后尝试启动另一个进程(即以良好的方式打印创建的文本文件)时,就会出现问题。根据程序开发人员的说法,它用于SHELL Z:\INVOICE.EXE启动此进程。执行此操作时,程序显示的内容是:Access denied

奇怪的是,当我INVOICE.EXE从 Windows 资源管理器手动运行时,一切顺利(即打印了发票)。

我想补充一点,当两个程序都在本地磁盘上,或者在另一个 Windows 主机的共享磁盘上时,一切顺利。

我不知道出了什么问题。到目前为止我尝试过的方法是:

  • 已禁用 UAC。
  • 将 Synology 的 IP 地址添加到 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)
    

但一切都没有发挥作用……

答案1

尝试禁用 SMBv2在 Windows 7 客户端上。许多用户报告在旧版应用程序或非 Windows 系统上使用较新版本的 SMB 时出现问题。

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

必须以管理员身份运行并且必须重新启动才能使命令生效。

相关内容