Golang: Access a Windows share (from Linux application)

6.8k Views Asked by At

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?

2

There are 2 best solutions below

0
On BEST ANSWER

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.

0
On

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.