Essa é a situação. Temos um Synology NAS (executando o DSM 5.0) que hospeda um compartilhamento de arquivos do Windows chamado general
. As permissões desta pasta são definidas como na captura de tela:
Essa pasta é usada como uma unidade de rede mapeada em clientes do Windows 7 (32 bits) (mapeados como Z:
). Nenhuma autenticação é necessária para este compartilhamento. Ou seja, todos podem acessá-lo.
Um programa herdado do Microsoft BASIC 7 abriga nesta unidade mapeada. Este programa em si (digamos PROGRAM.EXE
) funciona corretamente. É executado, pode criar arquivos e pastas, etc. Não há problema.
O problema surge quando o programa cria um arquivo temporário (por exemplo INVOICE.TXT
) e tenta iniciar outro processo, que está imprimindo o arquivo de texto criado de uma maneira agradável. Segundo o desenvolvedor do programa, ele usa SHELL Z:\INVOICE.EXE
para iniciar esse processo. O que o programa mostra quando este é executado, é: Access denied
.
O estranho é que, quando corro INVOICE.EXE
manualmente do Windows Explorer, tudo corre bem (ou seja, a fatura é impressa).
Eu gostaria de acrescentar que, quando os dois programas estão em um disco local ou em um disco compartilhado de outro host do Windows, tudo corre bem.
Não tenho idéia do que está errado. O que eu tentei até agora:
- UAC desativado.
- Adicionado o endereço IP do Synology nos sites confiáveis do Internet Explorer.
- Quando os dois programas estão em um disco local, tudo funciona bem.
- Quando os dois programas estão em um compartilhamento de outra máquina Windows, tudo funciona bem.
- Funcionou
PROGRAM.EXE
como administrador (isso funcionou somente após o compartilhamento de unidades mapeadas com todos os usuários ). Alteradas as permissões da pasta, conforme mostrado na captura de tela. Seu conteúdo de diretório se parece com isso agora:
synology> ls -l /volume1 ... drwxrwxrwx 33 guest users 4096 Oct 2 14:28 general ...
Todas as subpastas e arquivos têm as mesmas permissões. O acompanhamento
synoacltool
mostra isso para a pasta (e subpastas + arquivos):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)
Mas tudo sem fazê-lo funcionar ...