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é?
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 .