Como montar um compartilhamento SMB na linha de comando?

78

Eu gostaria de montar um compartilhamento de rede SMB a partir da linha de comando (terminal); como eu faria isso?

Estou usando o Mac OS X 10.6.4.

Eyvind
fonte

Respostas:

71

Você pode conseguir isso facilmente usando mount_smbfs(que é, na verdade, um invólucro para mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Opcionalmente, adicione o grupo de trabalho:

mount_smbfs -W workgroup //user@SERVER/folder ./mntpoint

Você poderia, é claro, alterar o ./mntpoint(para algo como /Volumes/smb).

Depois de fazer isso, basta acessar ./mntpointseus dados.

Para desmontar, use o seguinte comando:

umount ./mntpoint
Studer
fonte
2
Eu recebo: `mount_smbfs: erro de montagem: caminho: erro de entrada / saída ', enquanto as montagens são encontradas via Finder-> Conectar ao servidor?
31512 Ian
Como faço para fazer isso se meu nome de usuário tem um @ char? Por exemplo, quando estou usando uma conta da microsoft como [email protected]? Eu tentei dar o nome de usuário em aspas simples e duplas, mas o trabalho força ..
Yashvit
2
Eu recebo este erro:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
Iulian Onofrei
11
Citação de man mountno OS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
ssc 30/06
3
@Yashvit: Altere o '@' para '% 40'
WGroleau
70

Use o open(1)comando e uma URL:

open 'smb://username:password@server/share'

Prós: cria o ponto de montagem /Volumespara você.

Contras: Requer que o Finder esteja em execução.

tlindner
fonte
4
Eu prefiro esta versão para conexões rápidas na minha rede local, todos os usuários são conhecidos; portanto, este é um comando mais simples que o mount_smbfs - onde eu realmente tive problemas com caminhos inexistentes - e, se eu precisar me conectar a algum novo servidor com sistema de arquivos especial, ou eu precisaria tentar outro usuário ou queria um ponto de montagem diferente - ok - mas com que frequência isso acontece ... então meu polegar sobe para esta solução mais simples! Bem feito! Ok, eu sou um maníaco do Terminal que ainda tem o Finder em execução, mas isso é como 90% de nós, certo?
hexerei software
Nem Findersempre é aberto, pelo menos como um processo?
Iulian Onofrei
11
@Iulian Onofrei: Não, a menos que o usuário esteja conectado interativamente. Eu precisava usar o mountcomando direto nos crontrabalhos. Usando o opencomando, eles falhariam se a sessão interativa fosse encerrada, por exemplo, após uma falha de energia.
George George
Além disso, observe que opensempre sai como se fosse bem-sucedido se passasse o comando para o Finder, mesmo se o comando falhar mais tarde na conexão à unidade de rede.
Jonathan Wren
24

Você deve dar uma olhada na ajuda do mount:

man mount

Após uma inspeção mais detalhada, você verá que o tipo de sistema de arquivos é:

mount -t smbfs //username:password@MACHINENAME/SHARENAME /SomeLocalFolderOfChoice

Senha (e teoricamente nome de usuário) são opcionais.

O resultado do comando acima não terá saída (se tudo der certo), mas a cd /SomeLocalFolderOfChoice, deve produzir os resultados remotos. Observe que SomeLocalFolderofChoice deve existir.

Você também pode usar mount_smbfs para substituir o mount -t smbfs.

Martin Marconcini
fonte
5

O que funcionou para mim para fazê-los montar durante a inicialização:

==> /etc/auto_master <==
#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_smb          # add this line <**********

==> /etc/auto_smb <==         # Create this if it doesn't exist <****
/(not Volumes)/Public   -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Public
/(not Volumes)/ WGroleau -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Students/wes_groleau

Por alguma razão, nem o nome abreviado nem o FQDN do servidor funcionaram, então usei 'ping (name) para obter o IP. Em outras palavras, o DNS resolveria o nome, mas mount_smbfs não conseguiu.

E não pude colocar o ponto de montagem em / Volumes, porque a inicialização o excluiria.

Uma peculiaridade: depois que isso funcionou bem por alguns dias, por dois ou três dias, o LibreOffice, o Adobe Reader e o Finder não conseguiram encontrar UM dos dois compartilhamentos, mas o shell e o TextEdit não tiveram problemas. Depois de dois ou três dias disso, misteriosamente começou a trabalhar novamente.

Se você fizer essas edições e não quiser reinicializá-las, poderá montá-las com 'auto mount -vc'

Atualização: Mais peculiaridades. (1) Existem dois sistemas WiFi aqui e um deles não tem acesso aos servidores Windows. Algumas vezes por semana, um ou os dois roteadores ficam inoperantes. Se o "bom" cair e o MacBook se conectar automaticamente ao outro, em vez de me dizer que a unidade está off-line, os drivers SMB dizem "Muitos usuários". (2) Algumas vezes por semana, recebo "permissão negada" quando tento acessar meus arquivos do Windows. Isso normalmente dura cerca de meia hora, durante o qual eu posso ir a uma barra do Windows, fazer login e ver arquivos com o mesmo ID e senha.

WGroleau
fonte
Como isso foi votado duas vezes nesta semana, devo salientar que foi escrito várias versões do MacOS atrás.
WGroleau 30/03
4

O uso do AppleScript é conveniente, pois armazena suas senhas no chaveiro. Função Bash:

function mymount
{
    osascript <<EOF
mount volume "smb://user@fqdn1/volume1"
mount volume "smb://user@fqdn2/volume2"
EOF
}

Invoque 'mymount' no bash, digite as senhas através do pop-up Keychain padrão e, se tudo der certo, os volumes solicitados serão montados em / Volumes.

Wytten
fonte
Essa é a abordagem perfeita também. Não gosto de resposta aprovada porque é montada como usuário root. Na minha opinião, essas /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'open /Volumes; open 'smb://username:password@server/share'
frases
3

Eu acrescentaria que, se você tiver um nome de usuário no formato "grupo de trabalho \ nome de usuário", deverá montá-lo assim:

mount -t smbfs "//WORKGROUP;username:password@MACHINENAME/SHARENAME" /SomeLocalFolderOfChoice

Fonte: adaptando um exemplo daqui

Matthieu
fonte
-1

post antigo, mas que tal montar assim:

smb://no_username:password@MACHINENAME 

como a máquina do tempo dirige?

BarclayVision
fonte
11
"a partir da linha de comando (terminal)" ... este não é um comando válido do bash. Suponho que você queira dizer com o Finder + ⌘K para se conectar ao servidor, o que não é o que o OP pediu.
mattmc3