Accessing Windows Shares
By Brian Leonard on Aug 15, 2008
In this entry I'll show you how to access Microsoft Windows shares that may be running alongside OpenSolaris on your network.
Step 1: Share The Windows Folder
The first step is to make sure the folder you want to access is shared by Windows. On Windows XP you can access this by viewing the properties for the folder and selecting the Sharing tab:
For this example, I'm going to share my entire My Documents directory. The share name will be easiest to work with from OpenSolaris if it doesn't contain any spaces, hence I'm using 'MyDocuments'.
Also make a note of the hostname or IP address of the Windows machine. Ideally you'll use a hostname, especially if your router is configured for DHCP, but you can also use an IP address as a fall back option.
To determine your hostname, run hostname from the command line:
C:\\Documents and Settings\\Brian>hostname Integrity C:\\Documents and Settings\\Brian>
You can determine the IP address by running ipconfig:
C:\\Documents and Settings\\Brian>ipconfig Windows IP Configuration Ethernet adapter Wireless Network Connection: Connection-specific DNS Suffix . : hsd1.ct.comcast.net. IP Address. . . . . . . . . . . . : 10.0.1.200 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.0.1.1 C:\\Documents and Settings\\Brian>
Finally, if you are running any type of firewall on the Windows machine, be sure to configure it so that your OpenSolaris machine is allowed to connect to it.
Step 2: Access the Share from OpenSolaris
Option 1: Using the Connect to Server Dialog
Select Connect to Server from the Places menu
Change the Service type to Custom Location and set the Location URI to the following:
smb://[windows hostname or IP address]/[share name]
So for my example above it would be:
smb://integrity.local/MyDocuments or smb://10.0.1.200/MyDocuments.
Then give the connection a name and click connect:
You'll then find the connection available on your desktop and in the Places menu:
Upon opening the connection you can view and edit the files on the Windows share:
The connection will persist across restarts. To remove it, right-click the connection and select unmount.
Option 2: Using mount
You can run the smbutil command to view the available resources on a particular host:
bleonard@opensolaris:~$ smbutil view //integrity.local Password: Share Type Comment ------------------------------- MyDocuments disk IPC$ IPC Remote IPC ADMIN$ disk Remote Admin C$ disk Default share 4 shares listed from 4 available bleonard@opensolaris:~$
Make a home for the share. I've created a folder called IntegrityDocs off of my home folder.
Before we can do the mount we must first enable the smb client:
svcadm enable /network/smb/client
Mount the share, replacing my userid (bleonard) with yours. If you've set the share up with a password, enter it at the prompt, otherwise just press enter to proceed:
bleonard@opensolaris:~$ mount -F smbfs -o uid=bleonard,gid=staff //integrity.local/MyDocuments ~/IntegrityDocs Password: bleonard@opensolaris:~$
The uid and gid options give your user privileges to write to the share. If you leave those options out only the root user will have write privileges.
Finally, I don't believe an smbfs can be mounted at boot, however, by adding an entry to your /etc/vfstab file, you can significantly shorten the mount command as the rest of the properties will be pulled from the vfstab file. For example, I would add the following:
//integrity.local/MyDocuments - /export/home/bleonard/IntegrityDocs smbfs - no uid=bleonard,gid=staff
Now I can mount the share using either: