Posso acessar um compartilhamento do Windows diretamente do servidor linux e copiar arquivos

1

Eu tenho um compartilhamento do Windows criado usando o samba.

Ele está localizado no meu servidor ubunutu /mnt/user_new Eu quero copiar arquivos de /var/www/myproject/files/ para /mnt/user_new/files . Isto é para backup dos meus arquivos. e apague os arquivos originais.

Estou usando o PHP. formulário PHP eu tentei

$file = '/var/www/html/bmw/myproject/files/0000000.pdf';
$newfile = '/mnt/user_new/0000000.pdf';

if (!copy($file, $newfile)) {
        echo "failed to copy $file...\n";
} 

Mas recebo um erro de permissão negada.

Severity: Warning

Message: copy(/mnt/user_new/0000000.pdf) [function.copy]: failed to open stream: Permission denied

Existe alguma maneira de copiar arquivos do meu servidor Linux para o compartilhamento do Windows. Eu tenho um nome de usuário e senha para compartilhamento de janela de acesso, mas eu não sei como usá-lo aqui. Existe alguma maneira que eu possa passar o nome de usuário e senha.

Para ser honesto, esta é a primeira vez que trabalho com o Samba, e o compartilhamento do Windows é criado pelo administrador da rede. Eu gastei quase 8 horas para esta cópia simples. mas não conseguiu.

Por favor me ajude. desde já, obrigado .

    
por Kanishka Panamaldeniya 10.02.2015 / 11:13

1 resposta

2

Assim, o seu servidor Linux tem um compartilhamento de janelas montado em um diretório local, mas aparentemente você não pode escrever nele. Suponho que esse compartilhamento tenha sido configurado como acesso de convidado, daí o status somente leitura. Consulte a documentação do ubuntu sobre a montagem do compartilhamento de janelas como ponto de partida para corrigir esse problema de configuração.

Por enquanto, sugiro usar o smbclient da linha de comando ou um script de shell para executar seus backups. Este comando pode ajudá-lo a descobrir o caminho do compartilhamento do Windows, se necessário:

$ smbclient -L <hostname>

mas como sugeri nos comentários, pode ser mais simples procurar em um navegador do FS (Gnome, KDE ou até mesmo um shell do Windows). Este programa atua mais ou menos como um cliente FTP em cima dos protocolos SMB / CIFS, mas requer parâmetros precisos, então você terá que investigar. Por exemplo, se o seu servidor Windows pertencer a um domínio de diretório ativo, você terá que passar o parâmetro -k para smbclient para informá-lo. Você também terá que passar o nome de usuário e senha ao longo da linha de comando. Existem muitos outros parâmetros discutidos na página do manual, que podem ser importantes dependendo da sua situação (por exemplo, você precisa criptografar a conexão?).

No modo interativo, como mencionado anteriormente, este programa funciona como um cliente FTP, então se você estiver familiarizado com os comandos ftp, você deve se sentir em casa com esta ferramenta. Também é possível passar uma sequência de instruções de ftp na linha de comando, que é provavelmente o que você vai querer usar para automatizar os backups até que a montagem do compartilhamento seja corrigida.

Por fim, também mencionei a função php system que é útil quando é necessário invocar um comando shell de um script php. Novamente, tudo isso deve ser usado uma solução temporária até que o compartilhamento seja corrigido: você terá que gravar suas credenciais em algum lugar nos scripts ou em um arquivo de configuração de arquivo acessível a partir de smbclient , que é uma prática ruim . Se possível, você deve tentar fazer backups manuais, onde suas credenciais seriam fornecidas de forma interativa.

    
por didierc 11.02.2015 / 04:05