6

Is there a proper way to connect to a Windows share, such as \windowspc\c$\myshare, from a Go application that is compiled and running on a Linux device?

The share will require credentials to save a file to the target UNC path.

Is there a best practices to accomplish this?

Bart Silverstrim
  • 3,445
  • 6
  • 34
  • 44

2 Answers2

7

Theoretically yes, practically no.

Windows shares use the SMB/CIFS family of protocols. Those can be implemented in Go and be used to access the shares. This is a huge task, though.

Instead of having this in your application the best way is to require the share to be mounted from your system and then access it like a local file system from the application.

If you really want to use SMB/CIFS you can check whether the Gnome VFS (virtual file system) or FUSE as C libraries from within Go, but this will be messy and ugly.

johannes
  • 15,807
  • 3
  • 44
  • 57
1

I was just looking for a impacket alike lib in GO and came out with this awesome finding https://github.com/gentlemanautomaton/smb also in the same search this question came out so I figure I should help you and post it here.

cfernandezlinux
  • 861
  • 1
  • 10
  • 23