fbpx

Comandos Linux – Comando smbclient

Comando Linux smbclient

comando smbclient

Nos sistemas operacionais do tipo Unix, o comando smbclient inicia um cliente do tipo ftp para acessar os recursos SMB / CIFS nos servidores.

Descrição

smbclient é um cliente que faz parte do pacote de software Samba . Ele se comunica com um servidor LAN Manager , oferecendo uma interface semelhante à do programa ftp . As operações incluem coisas como obter arquivos do servidor para a máquina local, colocar arquivos da máquina local no servidor, recuperar informações de diretório do servidor e assim por diante.

Sintaxe

smbclient servicename [ senha ] [-a] [-E] [-L hospedeiro ] [-M acolhimento ]
          [-I número IP ] [-N] [-P] [-U nome de usuário ] [-d debuglevel ]
          [-l log basename ] [-n netbios name ] [-W workgroup ]
          [-O opções de soquete ] [-p port number ] [-c command string ]
          [-T tar options ] [-D diretório inicial ]

Opções

Nome do Serviçoservicename é o nome do serviço que você deseja usar no servidor. Um nome de serviço assume o formato \\ servidor \ serviço em que servidor é o nome netbios do servidor LAN Manager que oferece o serviço desejado e serviço é o nome do serviço oferecido. Portanto, para conectar-se ao serviço ” impressora ” no servidor LAN Manager ” lanman “, você usaria o nome do serviço \\ lanman \ printer .

Observe que o nome do servidor necessário não é necessariamente o nome do host do servidor. O nome necessário é um nome de servidor do LAN Manager, que pode ou não ser o mesmo que o nome do host da máquina que está executando o servidor.

senhapassword é a senha necessária para acessar o serviço especificado no servidor especificado. Se fornecida, a opção -N (prompt de suprimir senha) é assumida.

Não há senha padrão. Se nenhuma senha for fornecida na linha de comando (aqui ou usando a opção -U (veja abaixo)) e -N não for especificado, o cliente solicitará uma senha, mesmo que o serviço desejado não exija uma. (Se nenhuma senha for necessária, pressione Enter para fornecer uma senha nula .)

Nota: Alguns servidores (incluindo OS / 2 e Windows for Workgroups ) insistem em maiúsculassenha. Senhas em letras minúsculas ou mistas podem ser rejeitadas por esses servidores. Seja cauteloso ao incluir senhas em scripts .

-UMAEste parâmetro , se especificado, faz com que o nível máximo de depuração seja selecionado. Esteja avisado de que isso gera quantidades prodigiosas de dados de depuração. Há também um problema de segurança envolvido, pois no nível máximo de depuração, as senhas de texto não criptografado podem ser gravadas em alguns arquivos de log.
-EUEsta opção permite que você veja quais serviços estão disponíveis em um servidor. Você o usa como ” smbclient -L host ” e uma lista deve aparecer. A opção -I pode ser útil se seus nomes de netbios não corresponderem aos seus nomes de host tcp / ip ou se você estiver tentando acessar um host em outra rede. Por exemplo:

smbclient -L ftp -I ftp.microsoft.com

listará os compartilhamentos disponíveis no servidor público da Microsoft.

-MEsta opção permite enviar mensagens, usando o protocolo “WinPopup”, para outro computador. Depois que uma conexão é estabelecida, você digita sua mensagem, pressionando ^ D ( control-D ) para finalizar.

Se o computador receptor estiver executando o WinPopup, o usuário receberá a mensagem e provavelmente um sinal sonoro. Se eles não estiverem executando o WinPopup, a mensagem será perdida e nenhuma mensagem de erro ocorrerá.

A mensagem também é truncada automaticamente se a mensagem tiver mais de 1600 bytes, pois esse é o limite do protocolo.

Um truque útil é capturar a mensagem através do smbclient . Por exemplo:

cat mymessage.txt | smbclient -M FRED

enviará a mensagem no arquivo ” mymessage.txt“para a máquina FRED .

Você também pode achar úteis as opções -U e -I , pois elas permitem controlar as partes FROM e TO da mensagem.

Consulte a seção de comandos da mensagem smb.conf (5) para obter uma descrição de como lidar com as mensagens recebidas do WinPopup no Samba.

Copie o WinPopup no grupo de inicialização nos seus PCs WfWg, se desejar que eles sempre possam receber mensagens.

-EEste parâmetro, se especificado, faz com que o cliente grave mensagens no fluxo de erros padrão ( stderr ) em vez de no fluxo de saída padrão.

Por padrão, o cliente grava mensagens na saída padrão, geralmente o tty do usuário .

-I número IPNúmero de IP representa o número de IP do servidor ao qual se conectar. Deve ser especificado na notação ” abcd ” padrão .

Normalmente, o cliente tentará localizar o servidor LAN Manager especificado procurando-o: ou seja, transmitindo uma solicitação para o servidor especificado se identificar. O uso desse parâmetro forçará o cliente a assumir que o servidor está na máquina com o número IP especificado.

Não há padrão para este parâmetro. Se não fornecido, será determinado automaticamente pelo cliente, conforme descrito acima.

-NSe especificado, este parâmetro suprime o prompt de senha normal do cliente para o usuário. Isso é útil ao acessar um serviço que não requer uma senha.

A menos que uma senha seja especificada na linha de comando ou esse parâmetro seja especificado, o cliente solicitará uma senha.

-O soquete-opçõesVeja a seção de opções de soquete do smb.conf (5) para detalhes.
-PSe especificado, o serviço solicitado será conectado como um serviço de impressora e não como um serviço normal de espaço no arquivo. Operações como put e get não serão aplicáveis ​​a essa conexão.

Por padrão, os serviços serão conectados como serviços sem impressora.

-U nome de usuárionome de usuário é o nome de usuário que será usado pelo cliente para estabelecer uma conexão, supondo que seu servidor esteja executando um protocolo que permita nomes de usuário.

Alguns servidores são exigentes quanto ao caso desse nome e outros insistem que deve ser um nome netbios válido.

Se nenhum nome de usuário for fornecido, ele será padronizado para uma versão em maiúscula da variável de ambiente USER ou LOGNAME nessa ordem. Se nenhum nome de usuário for fornecido e nenhuma variável de ambiente existir, o nome de usuário estará vazio.

Se o serviço ao qual você está se conectando exigir uma senha, ele poderá ser fornecido usando a opção -U , acrescentando um símbolo de porcentagem (” % “) e, em seguida, a senha anome de usuário . Por exemplo, para se conectar a um serviço como usuário ” fred ” com a senha ” secret “, você especificaria -U fred% secret na linha de comandos. Observe que não há espaços ao redor do símbolo de porcentagem.

Se você especificar a senha como parte do nome de usuário , a opção -N (prompt de suprimir senha) será assumida.

Se você especificar a senha como um parâmetro E como parte do nome de usuário , a senha como parte do nome de usuário terá precedência. Colocar nada antes ou nada após o símbolo de porcentagem fará com que um nome de usuário vazio ou uma senha vazia sejam usados, respectivamente.

Nota: Alguns servidores (incluindo OS / 2Windows para Workgroups) insistem em uma senha em maiúsculas. Senhas em letras minúsculas ou mistas podem ser rejeitadas por esses servidores.

Seja cauteloso ao incluir senhas em scripts.

-d debugleveldebuglevel é um número inteiro de 0 a 5 .

O valor padrão se este parâmetro não for especificado é zero.

Quanto maior esse valor, mais detalhes serão registrados nos arquivos de log sobre as atividades do cliente. No nível 0 , apenas erros críticos e avisos sérios serão registrados. O nível 1 é um nível razoável para o dia-a-dia – gera uma pequena quantidade de informações sobre as operações realizadas.

Níveis acima de 1 geram quantidades consideráveis ​​de dados de log e devem ser usados ​​apenas na investigação de um problema. Níveis acima de 3 são projetados para uso somente por desenvolvedores e gerar enormes quantidades de dados de log, que podem ser extremamente enigmáticas.

-l log basenameSe especificado, log basename especifica um nome de arquivo base no qual os dados operacionais do cliente em execução serão registrados.

O nome base padrão é especificado em tempo de compilação .

O nome base é usado para gerar nomes reais de arquivos de log. Por exemplo, se o nome especificado fosse ” log “, os seguintes arquivos seriam usados ​​para dados de log:

log.client.debug (contendo informações de depuração)

log.client.in (contendo dados de transações de entrada)

log.client.out (contendo dados de transação de saída)

Os arquivos de log gerados nunca são removidos pelo cliente.

-n netbios-namePor padrão, o cliente usará o nome do host da máquina local (em maiúsculas) como seu nome netbios. Este parâmetro permite substituir o nome do host e usar o nome netbios desejado.
-W grupo de trabalhoSubstitua qual grupo de trabalho é usado para a conexão. Isso pode ser necessário para se conectar a alguns servidores.
-p port-numbernúmero da porta é um valor inteiro positivo .

O valor padrão se este parâmetro não for especificado é 139 .

Este número é o número da porta que será usada ao fazer conexões com o servidor. O número da porta padrão (conhecida) para o servidor é 139 , portanto, o padrão.

Este parâmetro não é normalmente especificado.

-T tar-optionsonde as opções de tar consistem em um ou mais de c , x , I , X , b , g , N ou a ; usado como:

smbclient '\\ servidor \ compartilhamento ' -TcxIXbgNa [ tamanho do bloco ] [ novo -arquivo]
           tarfile [ nomes de arquivos ....]

c : Crie um arquivo tar no UNIX. Deve ser seguido pelo nome de um arquivo tar, dispositivo de fita ou ”  ” para saída padrão. (Pode ser útil definir baixo de depuração ( -d0 )) para evitar danificar seu arquivo tar se estiver usando ”  “). Mutuamente exclusivo com a bandeira x .

x : Extrai (restaura) um arquivo tar local de volta para um compartilhamento. A menos que a opção -D seja fornecida, os arquivos tar serão restaurados a partir do nível superior do compartilhamento. Deve ser seguido pelo nome do arquivo tar, dispositivo ou ”  ” para entrada padrão. Mutuamente exclusivo com a bandeira c .

Eu: Inclua arquivos e diretórios. É o comportamento padrão quando os nomes dos arquivos são especificados acima. Faz com que os arquivos tar sejam incluídos em um “extrato” ou “criação” (e, portanto, todo o resto deve ser excluído). Veja o exemplo abaixo. O globbing do nome do arquivo não funciona para arquivos incluídos para extrações (ainda).

X : excluir arquivos e diretórios. Faz com que arquivos tar sejam excluídos de uma extração ou criação. Veja o exemplo abaixo. O globbing do nome do arquivo ainda não funciona para arquivos excluídos.

b : tamanho de bloco. Deve ser seguido por um tamanho de bloco válido (maior que zero). Faz com que o arquivo tar seja gravado em blocos de tamanho de bloco * TBLOCK (geralmente 512 bytes).

g : Incremental. Faça backup apenas de arquivos com o bit de arquivamentoconjunto. Útil apenas com a bandeira c .

N : Mais recente que. Deve ser seguido pelo nome de um arquivo cuja data é comparada com os arquivos encontrados no compartilhamento durante uma criação. Somente os arquivos mais recentes que o especificado são copiados para o arquivo tar. Útil apenas com a bandeira c .

a : Defina o bit do arquivo morto. Faz com que o bit de arquivamento seja redefinido quando o backup for feito de um arquivo. Útil com as bandeiras g ( ec ).

Exemplos:

smbclient '\\ mypc \ myshare' "" -N -Tx backup.tar

Restaure do arquivo tar backup.tar para o myshare no mypc (sem senha no compartilhamento).

smbclient '\\ mypc \ myshare' "" -N -TXx backup.tar usuários / documentos

Restaurar tudo, exceto usuários / documentos

smbclient '\\ mypc \ myshare' "" -N -Tc backup.tar usuários / documentos

Crie um arquivo tar dos arquivos abaixo de users / docs .

-D diretório inicialMude para o diretório inicial antes de iniciar. Provavelmente, apenas de qualquer uso com a opção tar ( -T ).
-c cadeia de comandocommand-string é uma lista de comandos separados por ponto e vírgula a serem executados em vez de solicitar a partir de stdin. -N é implícito por -c .

Isso é particularmente útil em scripts e para imprimir stdin no servidor, por exemplo, -c ‘print -‘ .

Operações

Após a execução do cliente, o usuário recebe um prompt ” smb: \> “. A barra invertida (” \ “) indica o diretório ativo atual no servidor e será alterada se o diretório ativo atual for alterado.

O prompt indica que o cliente está pronto e aguardando para executar um comando do usuário. Cada comando é uma única palavra, opcionalmente seguida por parâmetros específicos para esse comando. Comando e parâmetros são delimitados por espaço, a menos que essas notas indiquem especificamente o contrário. Todos os comandos não diferenciam maiúsculas de minúsculas. Os parâmetros para comandos podem ou não fazer distinção entre maiúsculas e minúsculas, dependendo do comando.

Você pode especificar nomes de arquivos com espaços, citando o nome entre aspas duplas, por exemplo “um nome de arquivo longo” .

Os parâmetros mostrados entre colchetes (por exemplo, “[ parâmetro ]”) são opcionais. Se não for fornecido, o comando usará padrões adequados. Os parâmetros mostrados entre colchetes angulares (por exemplo, “< parâmetro >”) são obrigatórios.

Observe que todos os comandos que operam no servidor são realmente executados emitindo uma solicitação para o servidor. Portanto, o comportamento pode variar de servidor para servidor, dependendo de como o servidor foi implementado.

Os comandos disponíveis são dados aqui em ordem alfabética.

comando ]Se o comando for especificado, o O comando exibe uma breve mensagem informativa sobre o comando especificado.

Se nenhum comando for especificado, uma lista de comandos disponíveis será exibida.

comando de shell ]Se o comando shell for especificado, o O comando executará um shell localmente e executará o comando shell especificado . Se nenhum comando for especificado, um shell será executado.
cd [ nome do diretório ]Se o nome do diretório for especificado, o diretório de trabalho atual no servidor será alterado para o diretório especificado. Esta operação falhará se, por qualquer motivo, o diretório especificado estiver inacessível.

Se nenhum nome de diretório for especificado, o diretório de trabalho atual no servidor será relatado.

del maskO cliente solicitará que o servidor tente excluir todos os arquivos correspondentes à máscara do diretório de trabalho atual no servidor.
máscara de dirUma lista dos arquivos correspondentes à máscara no diretório de trabalho atual no servidor será recuperada do servidor e exibida.
SaídaEncerre a conexão com o servidor e saia do programa.
obter nome do arquivo remoto [ nome do arquivo local ]Copie o arquivo chamado remote-file-name do servidor para a máquina executando o cliente. Se especificado, nomeie a cópia local local-file-name . Observe que todas as transferências no smbclient são binárias. Veja também o comando em minúsculas .
ajuda [ comando ]O mesmo que o comando.
lcd [ nome do diretório ]Se o nome do diretório for especificado, o diretório de trabalho atual na máquina local será alterado para o diretório especificado. Esta operação falhará se, por qualquer motivo, o diretório especificado estiver inacessível.

Se nenhum nome de diretório for especificado, o nome do diretório de trabalho atual na máquina local será relatado.

minúsculasAlterne minúsculas para nomes de arquivos para os comandos get e mget .

Quando lowercasing é alternado ON , nomes de arquivos locais são convertidos para minúsculas quando utilizar os encontros e mget comandos. Isso geralmente é útil ao copiar (por exemplo) arquivos MSDOS de um servidor, porque nomes de arquivos em minúsculas são a norma nos sistemas UNIX.

ls maskO mesmo que o comando dir .
máscara máscaraEste comando permite que o usuário configure uma máscara que será usada durante a operação recursiva dos comandos mget e mput .

As máscaras especificadas para os comandos mget e mput atuam como filtros para diretórios em vez de arquivos quando a recursão é ativada .

máscara especificada com o comando mask é necessária para filtrar arquivos nesses diretórios. Por exemplo, se a máscara especificada em um comando mget for ” source * ” e a máscara especificada com a máscaraO comando é ” * .c ” e a recursão é ativada , o comando mget recuperará todos os arquivos correspondentes a ” * .c ” em todos os diretórios abaixo e incluindo todos os diretórios correspondentes a ” origem * ” no diretório de trabalho atual.

Observe que o valor da máscara é padronizado em branco (equivalente a ” * “) e permanece assim até que o comando mask seja usado para alterá-lo. Ele mantém o valor especificado mais recentemente indefinidamente. Para evitar resultados inesperados, seria aconselhável alterar o valor da máscara novamente para ” * ” depois de usar os comandos mget ou mput .

md directory-nameO mesmo que o comando mkdir .
mget maskCopie todos os arquivos correspondentes à máscara do servidor para a máquina executando o cliente.

Observe que a máscara é interpretada de maneira diferente durante a operação recursiva e não recursiva; consulte os comandos recurse e mask para obter mais informações. Observe que todas as transferências no smbclient são binárias. Veja também o comando em minúsculas .

nome do diretório mkdirCrie um novo diretório no servidor ( permitindo privilégios de acesso do usuário ) com o nome especificado.
máscara de mputCopie todos os arquivos que correspondem à máscara no diretório de trabalho atual na máquina local para o diretório de trabalho atual no servidor.

Observe que a máscara é interpretada de maneira diferente durante a operação recursiva e não recursiva; consulte os comandos recurse e mask para obter mais informações. Observe que todas as transferências no smbclient são binárias .

imprimir nome do arquivoImprima o arquivo especificado da máquina local através de um serviço imprimível no servidor.

Veja também o comando printmode .

printmode [ gráficos | texto ]Defina o modo de impressão para se adequar aos dados binários (como informações gráficas) ou ao texto. Os comandos de impressão subsequentes usarão o modo de impressão definido atualmente.
prontoAlterna a solicitação de nomes de arquivos durante a operação dos comandos mget e mput .

Quando alternado ON , o usuário será solicitado a confirmar a transferência de cada arquivo durante estes comandos. Quando desativado , todos os arquivos especificados serão transferidos sem aviso prévio.

coloque o nome do arquivo local [ nome do arquivo remoto ]Copie o arquivo chamado local-file-name da máquina que está executando o cliente no servidor. Se especificado, nomeie a cópia remota remote-file-name . Observe que todas as transferências no smbclient são binárias. Veja também o comando em minúsculas .
filaExibe a fila de impressão, mostrando a identificação do trabalho, nome, tamanho e status atual.
SairO mesmo que o comando de saída .
rd nome do diretórioO mesmo que o comando rmdir .
recursoAlterne a recursão de diretório para os comandos mget e mput .

Quando alternado ON , estes comandos irá processar todos os diretórios no diretório de origem (ou seja, o diretório que está copiando) e irá recorrer em qualquer que correspondem a máscara especificada para o comando. Apenas os arquivos que correspondem à máscara especificada usando o comando mask serão recuperados. Veja também o comando mask . Quando a recursão é desativada , apenas os arquivos do diretório ativo atual na máquina de origem que correspondem à máscara especificada para os comandos mget ou mput serão copiados e qualquer máscaraespecificado usando o comando mask será ignorado.

máscara rmRemova todos os arquivos correspondentes à máscara do diretório de trabalho atual no servidor.
nome do diretório rmdirRemova o diretório especificado (privilégios de acesso do usuário permitindo) do servidor.
alcatrão c | x [ IXbgNa ]Executa uma operação de alcatrão ; consulte a opção de linha de comando -T acima. O comportamento pode ser afetado pelo comando tarmode (veja abaixo). Usar g (incremental) e N (mais recente) afetará as configurações do modo tar. Observe que o uso da opção ”  ” com tar x pode não funcionar; use a opção de linha de comando.
blocksize blocksizeTamanho do bloco. Deve ser seguido por um tamanho de bloco válido (maior que zero) . Faz com que o arquivo tar seja gravado em blocos de tamanho de bloco * TBLOCK (geralmente 512 bytes).
modo tar cheio | inc | redefinir | noresetAltera o comportamento do tar em relação aos bits do arquivo. No modo completo, o tar fará backup de tudo, independentemente da configuração do bit de arquivamento (este é o modo padrão). No modo incremental, o tar fará backup apenas dos arquivos com o bit de archive definido. No modo de redefinição, o tar redefinirá o bit de arquivamento em todos os arquivos dos quais faz backup (implica compartilhamento de leitura / gravação).
nome do arquivo setmode perm = [ + |  ] rshaUma versão do MS-DOS ” attrib comando” para definir as permissões de arquivo. Por exemplo,

setmode myfile + r

tornaria o meu arquivo somente leitura .

Notas

Alguns servidores são exigentes quanto aos nomes de usuários, senhas, nomes de compartilhamento (nomes de serviço) e nomes de máquinas fornecidos. Se você não conseguir se conectar, tente fornecer todos os parâmetros em maiúsculas.

Geralmente é necessário usar a opção -n ao conectar-se a alguns tipos de servidores. Por exemplo, o OS / 2 LANManager insiste na utilização de um nome netbios válido , portanto, é necessário fornecer um nome válido que seja conhecido pelo servidor.

O smbclient suporta nomes extensos de arquivos nos quais o servidor suporta o protocolo LANMAN2.

variáveis ​​ambientais

A variável USER pode conter o nome de usuário da pessoa que usa o cliente. Essas informações são usadas apenas se o nível do protocolo for alto o suficiente para suportar senhas no nível da sessão.

Exemplos

smbclient -L host

Lista os compartilhamentos disponíveis no host . O uso desse comando exibirá informações semelhantes à saída abaixo:

Domínio = [WORKGROUP] OS = [Windows NT 3.51] Server = [NT LAN Manager 3.51]
Servidor = [ESPERANÇA] Usuário = [] Grupo de trabalho = [GRUPO DE TRABALHO] Domínio = []
Tipo de nome de compartilhamento Comentário
--------- ---- -------
Administrador remoto ADMIN $ Disk
Compartilhamento padrão do disco C $
IPC $ IPC IPC remoto
senha do smbclient '\\ hope \ ch'

Conecta-se ao ch compartilhamento no computador em rede esperança usando a senha de login ” senha “.

findmb – Lista informações sobre máquinas conectadas em rede com o protocolo Samba.

22 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.