MountWindowsSharesPermanently
|
Size: 8154
Comment:
|
Size: 7911
Comment: rewrote main section to treat CIFS directly and with updated fstab directives that are supported by CIFS
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 24: | Line 24: |
| = Samba File System installation = | = CIFS installation = {{{ sudo apt-get install cifs-utils }}} On older systems: |
| Line 29: | Line 36: |
| On a newer system requiring CIFS you must install cifs-utils instead: {{{ sudo apt-get install cifs-utils }}} |
|
| Line 44: | Line 45: |
| //servername/sharename /media/windowsshare cifs guest,uid=1000,iocharset=utf8,codepage=unicode,unicode 0 0 | //servername/sharename /media/windowsshare cifs guest,uid=1000,iocharset=utf8 0 0 |
| Line 50: | Line 51: |
| * the combination '''iocharset=utf8,codepage=unicode,unicode''' allows access to files with names in non-English languages. This doesn't work with shares of devices like the Buffalo Tera Station, or Windows machines that export their shares using ISO8895-15. With those you need to use '''codepage=cp850''', otherwise characters like the German 'Umlaute' are displayed as garbage. | * '''iocharset=utf8''' allows access to files with names in non-English languages. This doesn't work with shares of devices like the Buffalo Tera Station, or Windows machines that export their shares using ISO8895-15. |
| Line 62: | Line 63: |
| //servername/sharename /media/windowsshare cifs username=msusername,password=mspassword 0 0 | //servername/sharename /media/windowsshare cifs username=msusername,password=mspassword,iocharset=utf8,sec=ntlm 0 0 |
| Line 91: | Line 92: |
| //servername/sharename /media/windowsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 | //servername/sharename /media/windowsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm 0 0 |
| Line 109: | Line 110: |
| //servername/sharename /media/windowsshare cifs uid=ubuntuuser,credentials=/home/ubuntuuser/.smbcredentials,dmask=777,fmask=777 0 0 | //servername/sharename /media/windowsshare cifs uid=ubuntuuser,credentials=/home/ubuntuuser/.smbcredentials,iocharset=utf8,sec=ntlm 0 0 |
This document describes how to mount smbfs shares permanently. The shares can be on a Windows computer or on a Linux/UNIX server running Samba.
15 oct. 2009: The libpam_mount section is no longer up to date with current releases. Can anyone please update this section?
Is it true that smbfs is deprecated? According to a blog post by Joey Stanford we need to use CIFS instead of smbfs!
It appears to be true. I just fought through several strange problems after following this guide, only to have everything solved by using CIFS instead.
I can confirm the above as well. I have changed "smbfs" to "cifs" where appropriate in this guide.
Prerequisites
We're assuming that:
- Network connections have been configured properly.
Your local (Ubuntu) username is ubuntuusername.
Share username on Windows computer is msusername.
Share password on Windows computer is mspassword.
The Windows computer's name is servername (this can be either an IP address or an assigned name).
The name of the share is sharename.
You want to mount the share in /media/windowsshare.
CIFS installation
sudo apt-get install cifs-utils
On older systems:
sudo apt-get install smbfs
Mounting unprotected (guest) network folders
First, let's create the mount directory. You will need a separate directory for each mount.
sudo mkdir /media/windowsshare
Then edit your /etc/fstab file (with root privileges) to add this line:
//servername/sharename /media/windowsshare cifs guest,uid=1000,iocharset=utf8 0 0
Where
guest indicates you don't need a password to access the share,
uid=1000 makes the Linux user specified by the id the owner of the mounted share, allowing them to rename files,
iocharset=utf8 allows access to files with names in non-English languages. This doesn't work with shares of devices like the Buffalo Tera Station, or Windows machines that export their shares using ISO8895-15.
After you add the entry to /etc/fstab type:
sudo mount -a
This will (re)mount all entries listed in /etc/fstab.
Mount password protected network folders
The quickest way to auto-mounting a password-protected share is to edit /etc/fstab (with root privileges), to add this line:
//servername/sharename /media/windowsshare cifs username=msusername,password=mspassword,iocharset=utf8,sec=ntlm 0 0
This is not a good idea however: /etc/fstab is readable by everyone and so is your Windows password in it. The way around this is to use a credentials file. This is a file that contains just the username and password.
Using a text editor, create a file for your remote servers logon credential:
gedit ~/.smbcredentials
Enter your Windows username and password in the file:
username=msusername password=mspassword
Save the file, exit the editor.
Change the permissions of the file to prevent unwanted access to your credentials:
chmod 600 ~/.smbcredentials
Then edit your /etc/fstab file (with root privileges) to add this line (replacing the insecure line in the example above, if you added it):
//servername/sharename /media/windowsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
Save the file, exit the editor.
Finally, test the fstab entry by issuing:
sudo mount -a
If there are no errors, you should test how it works after a reboot. Your remote share should mount automatically.
Special permissions
If you need special permission (like chmod etc.), you'll need to add a uid (short for 'user id') or gid (for 'group id') parameter to the share's mount options.
//servername/sharename /media/windowsshare cifs uid=ubuntuuser,credentials=/home/ubuntuuser/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
Mount password protected shares using libpam_mount (Ubuntu 9.04)
In addition to the initial assumptions, we're assuming that
Your username and password are the same on the Ubuntu machine and on the network drive.
Install libpam-mount:
sudo apt-get install libpam-mount
Edit /etc/security/pam_mount.conf.xml using your preferred text editor.
gksudo gedit /etc/security/pam_mount.conf.xml
First, we're moving the user specific config bits to a file which users can actually edit themselves: remove the commenting tags (<!-- and -->) surrounding the section called <luserconf name=".pam_mount.conf.xml" />. Save the file when done. With this in place, users can create their own ~/.pam_mount.conf.xml.
gedit ~/.pam_mount.conf.xml
Add the following:
<?xml version="1.0" encoding="utf-8" ?> <pam_mount> <volume options="uid=%(USER),gid=100,dmask=0700" user="*" mountpoint="/media/windowsshare" path="sharename" server="servername" fstype="cifs" /> </pam_mount>
Troubleshooting
Unprotected network folder won't automount
I've had a situation where an unprotected network folder wouldn't automount during bootup, but after manually entering "sudo mount -a" was mounted correctly. I solved this by replacing the "guest" option by "username=guest,password=". If anyone has an explanation for this, please leave a comment.
//servername/sharename /media/windowsshare smbfs username=guest,password=,uid=1000,iocharset=utf8,codepage=unicode,unicode 0 0
Mount during login instead of boot
If for some reason/etc/rc0.d/S31umountnfs.sh (networking problems for example) the automatic mounting during boot doesn't work, you can add the "noauto" parameter to your smbfs fstab entry and then have the share mounted at login.
In /etc/fstab:
//servername/sharename /media/windowsshare cifs noauto,credentials=/home/ubuntuusername/.smbpasswd 0 0
In /etc/rc.local:
mount /media/windowsshare exit 0
Slow shutdown due to a CIFS/Network Manager bug
If you use Network Manager, and are getting really slow shutdowns, it's probably because NM shuts down before unmounting the network shares. That will cause CIFS to hang and wait for 60 seconds or so. Here's how to fix it:/etc/rc0.d/S31umountnfs.sh
sudo ln -s /etc/init.d/umountnfs.sh /etc/rc0.d/K14umountnfs.sh sudo ln -s /etc/init.d/umountnfs.sh /etc/rc6.d/K14umountnfs.sh
Ubuntu 12.04 already runs umountnfs.sh at reboot and shutdown by default (/etc/rc0.d/S31umountnfs.sh and /etc/rc6.d/S31umountnfs.sh) so this is no longer necessary.
CIFS Options Deprecated
20 Feb 2008 TW
Using dmask or fmask in the fstab file produces the following warnings: WARNING: CIFS mount option 'dmask' is deprecated. Use 'dir_mode' instead. WARNING: CIFS mount option 'fmask' is deprecated. Use 'file_mode' instead.
Instead use this format: file_mode=0777,dir_mode=0777
Use of tilde in pathnames such as "credentials=~/.smbcredentials"
20 Feb 2008 TW
Curiously, using credentials=~/.smbcredentials in fstab didn't work. I had to use the full path, i.e. /home/username/.smbcredentials
(This is likely because the tilde "~" is only a shell short-hand alias for "$HOME"; it isn't something recognized system-wide by all programs, especially not in a system file table where the concept of "HOME" doesn't really exist. -Ian!)
MountWindowsSharesPermanently (last edited 2024-04-18 09:12:09 by sally-makin)