Dificuldade para executar arquivo pelo samba

Iniciado por Morpheus260, 16 de Maio de 2014, 15:59

tópico anterior - próximo tópico

Morpheus260

Bem esse é o meu primeiro tópico, então me desculpem se for um erro bobo heheh

Acontece o seguinte após a atualização do meu Ubutnu para 14.04 comecei a ter alguns problemas com o samba, como não encontrar mais os arquivos compartilhados, ou não conseguir acessar mais o linux pelo nome...mas isso esta solucionado agora.

Pois bem, o problema agora é que ao executar algum arquivo direto do windows, essa porcaria me diz que não tenho acesso e ja fiz tudo que sabia (não que seja muito) mas não vai. Resumindo através do windows consigo visualisar tudo que esta no linux, mas não consigo acessar nenhum executavel diretamente, só copiando ele para o windows.

Peço a ajuda dos amigos para achar o que estou fazendo errado,.
Desde ja meu obrigado.

zekkerj

Ative o log do Samba (diretriz "log level = 3"), depois tente novamente o acesso. Os logs ficam em "/var/log/samba/". Veja se algum log dá uma pista do que possa estar acontecendo.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

luizsouza99

acredito que vc já tentou, mas é o unico caminho que eu vejo

vc já deu um chmod recursivo no diretorio compartilhado adicionando a permissão de execução para os arquivos ?
chmod -R +x diretorio

provavelmente o usuario que acessa o executavel se enquadra no grupo "outros" e que pode estar sem permissão para execução

zekkerj

Pelo que eu entendi, o problema é no Windows, não no Linux...
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

MWAdriano

Também estou tendo os mesmos problemas com o samba no Ubuntu 14.04LTS.. Usei o samba no 12.04LTS sem problemas (com o mesmo smb.conf), mas agora não consigo executar programas dentro do Windows quando acesso arquivo .EXE dentro da pasta compartilhada pelo samba. Posso ler e escrever arquivos, mas não executar... coisa de louco.

zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

MWAdriano

#6
Ativei o LOG...

Mas, de fato, não entendi muito bem.

A impressão que tenho é a de que não há direito de executar o aplicativo no Linux e que estaria sendo 'repassado' essa situação para o Windows por via SAMBA...

Vejamos o conteúdo extraído do arquivo log.smbd :

[2014/06/03 18:21:42.264724,  3] ../source3/smbd/process.c:1795(process_smb)
 Transaction 15 of length 148 (0 toread)
[2014/06/03 18:21:42.264848,  3] ../source3/smbd/process.c:1398(switch_message)
 switch message SMBntcreateX (pid 13514) conn 0x7f757fe3c3f0
[2014/06/03 18:21:42.264995,  3] ../source3/smbd/vfs.c:1137(check_reduced_name)
 check_reduced_name [SISTEMAS/AUTOMA2/FIX2010.EXE] [/AmbClip]
[2014/06/03 18:21:42.265062,  3] ../source3/smbd/vfs.c:1267(check_reduced_name)
 check_reduced_name: SISTEMAS/AUTOMA2/FIX2010.EXE reduced to /AmbClip/SISTEMAS/AUTOMA2/FIX2010.EXE
[2014/06/03 18:21:42.265150,  3] ../source3/smbd/dosmode.c:158(unix_mode)
 unix_mode(SISTEMAS/AUTOMA2/FIX2010.EXE) returning 0766
[2014/06/03 18:21:42.265543,  2] ../source3/smbd/open.c:972(open_file)
 adriano opened file SISTEMAS/AUTOMA2/FIX2010.EXE read=Yes write=No (numopen=1)
[2014/06/03 18:21:42.266915,  3] ../source3/smbd/process.c:1795(process_smb)
 Transaction 16 of length 63 (0 toread)
[2014/06/03 18:21:42.267062,  3] ../source3/smbd/process.c:1398(switch_message)
 switch message SMBreadX (pid 13514) conn 0x7f757fe3c3f0
[2014/06/03 18:21:42.267175,  3] ../source3/smbd/reply.c:3877(send_file_readX)
 send_file_readX fnum 15858 max=32768 nread=32768
[2014/06/03 18:21:42.268974,  3] ../source3/smbd/process.c:1795(process_smb)
 Transaction 17 of length 45 (0 toread)
[2014/06/03 18:21:42.269106,  3] ../source3/smbd/process.c:1398(switch_message)
 switch message SMBclose (pid 13514) conn 0x7f757fe3c3f0
[2014/06/03 18:21:42.269186,  3] ../source3/smbd/reply.c:5048(reply_close)
 Close file fd=12 fnum 15858 (numopen=1)
[2014/06/03 18:21:42.269351,  2] ../source3/smbd/close.c:780(close_normal_file)
 adriano closed file SISTEMAS/AUTOMA2/FIX2010.EXE (numopen=0) NT_STATUS_OK
[2014/06/03 18:21:42.270234,  3] ../source3/smbd/process.c:1795(process_smb)
 Transaction 18 of length 148 (0 toread)
[2014/06/03 18:21:42.270368,  3] ../source3/smbd/process.c:1398(switch_message)
 switch message SMBntcreateX (pid 13514) conn 0x7f757fe3c3f0
[2014/06/03 18:21:42.270480,  3] ../source3/smbd/vfs.c:1137(check_reduced_name)
 check_reduced_name [SISTEMAS/AUTOMA2/FIX2010.EXE] [/AmbClip]
[2014/06/03 18:21:42.270572,  3] ../source3/smbd/vfs.c:1267(check_reduced_name)
 check_reduced_name: SISTEMAS/AUTOMA2/FIX2010.EXE reduced to /AmbClip/SISTEMAS/AUTOMA2/FIX2010.EXE
[2014/06/03 18:21:42.270711,  3] ../source3/smbd/dosmode.c:158(unix_mode)
 unix_mode(SISTEMAS/AUTOMA2/FIX2010.EXE) returning 0766
[2014/06/03 18:21:42.271251,  3] ../source3/smbd/error.c:82(error_packet_set)
 NT error packet at ../source3/smbd/error.c(165) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED


Ocorre que o arquivo FIX2010.EXE, no linux, pertence ao grupo e ao usuário 'adriano' (usuário unix). E ele tem atributo 0777.

Portanto, não entendo o que seria o problema.

Grato,

P.S.

Percebi uma coisa MUITO estranha... Mesmo após atribuir o 'executable bit' em arquivos com extensão '.EXE', com o chmod no linux, após um tempo, este bit desapareceu automaticamente... EM TODOS os arquivos '.EXE'. Eu seto o bit com 'chmod +x arquivo.EXE', ele fica assim por um tempo, depois o bit desaparece sozinho... Pode ser esse o problema, pois depois que o bit desaparece começa dar problema no Windows!

O problema parece só ocorrer em arquivos que terminam na extensão '.EXE'.

Alguém sabe algo sobre isso?

zekkerj

Os atributos de execução do arquivo no Linux não têm absolutamente nada a ver com a permissão de execução no Windows. Aliás, o Windows não tem uma permissão de execução em seus atributos; ele controla se o arquivo é executável ou não a partir da sua extensão. Assim, se você renomear um arquivo de texto como ".exe" e mandar executá-lo, o windows realmente vai tentar fazê-lo.

Por outro lado, o windows tem 3 atributos que não existem no Linux: Hidden, System e Archive. Quando você oferece um compartilhamento Samba, o windows pode ativar ou desativar esses atributos, e o Linux precisa de uma forma pra codificá-los. Adivinhou onde eles vão parar? Sim, nos atributos de execução do Linux. Por isso não adianta absolutamente nada jogar um atributo 0777 em um arquivo no Linux achando que vai resolver isso... aliás, atributo 0777 normalmente cria problema, não resolve. Não sei pq as pessoas ainda tentam essa bobagem.

Você tem uma boa dica de solução do problema na última linha do log que vc postou ("NT error packet at... (SMBntcreateX) NT_STATUS_ACCESS_DENIED). Investigue em que situações esse erro é gerado, e como ele é resolvido. [Investigue == jogue no google e analise os resultados].
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

MWAdriano

Ótima dica sobre o funcionamento dos atributos do Windows serem encaixados nos atributos de execução do Linux.

Assim, descobri agora que TODOS os arquivos com extensão ".EXE" disponibilizados pelo SAMBA, aparecem SEM o atributo "A" (Archive).

Ocorre que no Windows esse atributo (Archive) é OBRIGATÓRIO para a execução de aplicativos. A ausência deste atributo acarreta mensagem de erro no Windows ao tentar executar aplicação: "ACESSO NEGADO".

Só que quando aplicado esse atributo pelo Windows com o comando "ATTRIB *.EXE +A" nos arquivos fornecidos pelo SAMBA, todos estes arquivos passam a demonstrar o atributo "ARCHIVE", bem como o Windows passa a executar os respectivos aplicativos normalmente, e também o Linux passa a apresentar o atributo de execução quando listados os respectivos arquivos.

Fazer o caminho inverso, ou seja, aplicar no Linux o atributo de execução com "chmod +x *.EXE" também funciona, pois os arquivos passam a apresentar no Windows o atributo "Archive".

Só que esta situação é temporária, pois depois de um tempo (alguns segundos), os mesmos arquivos estão "perdendo" os atributos de execução no Linux, e por consequência, não exibem mais os atributos "Archive" pelo samba, e também por consequência o Windows não os executa mais..

O mais estranho é que apenas nos arquivos terminados em ".EXE" que está desaparecendo o atributo de execução (outros arquivos permanecem normalmente com essa permissão).

Fiz um teste agora, e parece ter corrigido o problema. Uma coisa relativamente simples, reinicializei o samba, o Windows e as conexões entre o samba e o Windows. Aparentemente resolveu o problema. Muito estranho. Parece que de tanto eu mudar 'regras' no smb.conf fazendo testes, ficou algum 'bug' na conexão entre o Windows e o Samba que sumiu quando eu reinicializei tudo.

Veremos.