web-dev-qa-db-fra.com

Pas assez de caractères en service

Glaning à partir de la Arch Linux Wiki Entrée , j'ai ce que je pense que c'est la configuration minimale d'accéder à un lecteur partagé Windows via SMB de mon archinuge 4.20.6:

  • Sudo pacman -Sy samba
  • Sudo echo "logging = systemd" >> /etc/samba/smb.conf Depuis le service smb nécessite ce fichier de configuration, sinon il s'agit d'une erreur avec l'erreur:

    Job for smb.service failed because the control process exited with error code.
    See "systemctl status smb.service" and "journalctl -xe" for details.
    
  • Sudo systemctl start smb

En supposant que la machine Windows distante est à 172.16.17.52, Je suis capable d'énumérer les noms d'actions avec

smbclient -L 172.16.17.52 -U MyUserName%MyPassword -W OurWindowsDomain

Parmi ceux-ci est un service de type "disque" avec nom de partage OurRemoteDirectory que j'aimerais accéder, c'est-à-dire transférer des fichiers de et vers elle.

Dans l'espoir de pouvoir accéder à OurRemoteDirectory sur le lecteur partagé, j'ai émis

smbclient 172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain

Mais cela a produit ce message d'erreur:

Unable to initialize messaging context

172.16.17.52: Not enough '\' characters in service

Comment puis-je corriger cette erreur et accès OurRemoteDirectory sur le lecteur partagé?

4
Matthias Braun

Pour résoudre ce problème, ajoutez simplement deux vers l'avant Slashes avant l'adresse IP:

smbclient //172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain

Ce qui m'a jeté était le message d'erreur suggérant que je devrais ajouter en arrière slashes et le fait que la liste des noms de partage avec smbclient -L ne nécessite aucune barre oblique face devant l'adresse IP.

Maintenant, j'ai une interface de ligne de commande pour accéder au système de fichiers distant:

sMB:>

Ayant établi la connexion, man smbclient décrit les commandes de transfert de fichiers, tels que put et get.


En tant que PostScript, depuis V7.40 curl Supporte également le protocole SMB également, ce qui rend le package samba, y compris smbclient superflu dans les cas où vous ne voulez que transférer des fichiers de et vers le lecteur partagé:

# Upload local file to shared drive
curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/
# Download file from shared drive
curl -o file_from_server.txt --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/remote_file.txt

Actuellement, curl ne prend pas en charge la création de répertoires distants, ce qui signifie Path/To/Dir/ doit exister déjà. La fonctionnalité est brièvement discutée ici .

1
Matthias Braun