networking samba file-sharing – Access Windows Administrative Share from Linux

file-sharingnetworkingsamba

I have a Windows computer on 192.168.0.103 and I want to access the c$ administrative share from a Linux computer which has 192.168.0.110 to exchange some files. From another Windows computer on the same network, I can simply open the Run prompt and type in the UNC path \\192.168.0.103\c$ and hit Enter. It then prompts for user name and password, and if they are typed in correctly it would open the share location in Windows Explorer.

How does this work from a Linux computer? I recently asked a question about the Run prompt, and apparently there is a similar prompt in Linux, but I can't use that to access UNC paths in the same fashion. So what kind of Linux voodoo, dark magic, incarnation, ceremony… do I need to perform before it allows me to do the same?

I'm using Debian 7.1.0 Wheezy.

Best Answer

You can just use Places -> Network GUI menu in Gnome to access your share. Alternatively, you can open a terminal and use smbclient like smbclient -L //192.168.0.113 to list available shares and smbclient //192.168.0.113/C to access the C$ share, see examples: http://www.linuxnix.com/2009/09/8-ways-to-mount-smbfs-samba-file-system-in-linux.html. I'm not sure what you mean by "access by UNC", may be you'd like to mount your SAMBA share and access it as if it were local filesystem? Then use smbfs.

About the magic, Linux uses SAMBA package which is an open source partial implementation of SMB/CIFS protocol, used by Windows machines to exchange data in Windows Domains or Workgroups.

The main manuals on SAMBA in Linux are SAMBA by example and SAMBA howto, but they are really lacking explanation of how the overall protocol is supposed to work, they imply your knowledge.

SMB/CIFS is a piece of ooze kind of technology, making use of like 10 other protocols and I failed to find a good source of info on it, which would explain its functioning by example (like first this message goes from A to B, then that goes from B to A). These technologies include:

  • DNS or legacy NetBIOS (possibly over ethernet called NBF or over TCP/IP, called NBT) naming system for computers. In fact, when Windows asks you for a computer name and tells that it shouldn't be longer than 15 symbols, it implies NetBIOS name.
  • Name resolution and replication mechanism, BIND for DNS or WINS server (nmbd in SAMBA) for NetBIOS name resolution.
  • Shares browsing mechanism, including funky election of master browser among the machines, based on their uptime and causing lags; this works unless a dedicated master browser is configured, see Network browsing.
  • Authentication and authorization mechanism; includes multiple elements and options, supporting tons of legacy mechanisms, see this for Microsoft.
  • Integration with Directory Services for Roaming User Profile support. SMB is used in 2 main cases: Workgroups and Domains. When you have a home network, all the computers are equal and your user accounts are different at each machine; in that case access to shares is either in per share or per user mode of protection. Large company networks often allow users to login to any computer with his login and password and access his profile and data. This is also called a Domain. Windows stores domain data in specialized machines, called Domain Controllers, which run Microsoft implementation of Directory Services, called Active Directory system, to store the accounts info.

In principle, Active Directory is a superset of LDAP and you can learn about LDAP e.g. from IBM tutorials. Here's also a nice set of videos about functioning of Active Directory.

Related Question