====== Ubuntu - Samba - Mount a Windows Share ====== ===== Quick Example ===== sudo mount -t cifs -o username=peter,password=xxxxxxxxxxxxxxxxxxxx,uid=peter,gid=peter,forceuid,forcegid,vers=2.1 //192.168.1.5/Docs /home/peter/Documents/nas_docs ---- ===== Command line basic syntax ===== The most basic mount options is: mount -t cifs -o username=USERNAME,password=PASSWD //192.168.1.88/shares /mnt/share ---- ===== Extended command line mount ===== If the basic mount does not work, you may need to use extended features mount -t cifs -o username=USERNAME,password=PASSWD,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.1.88/shares /mnt/share where: * **USERNAME** The uid of the user who will own all the files and directories in the share. * **PASSWD** the password of the USERNAME user. * **iocharset=utf8** * **file_mode** * **dir_mode** **__FURTHER INFORMATION:__** **USERNAME:** By default all the files and directories will be owned by the uid of the process or by root. You can force it otherwise. sudo id user_name If, for example, the user id is 1000 then you can use the following... uid=1000(user_name) gid=1000(user_name) groups=... ---- **__dir_mode / file_mode__** Setting the uid or gid is fine if you are the only user of the system. On a multiuser system this is problematic as other users will still be denied. Therefore use **dir_mode / file_mode** to give everyone access: dir_mode=0777,file_mode=0666 ---- sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu ---- ---- ===== fstab persistent mount ===== Permanently mount the shares so that they will be available after reboot. ==== Edit the host file ==== Edit your **/etc/hosts** file and add the hostname and IP address of the windows share or file server. ... 192.168.1.5 NAS ... ---- ==== Create mount points ==== Create mount points for each windows share. For example: mkdir /mnt/public mkdir /mnt/media mkdir /mnt/video ---- ==== Edit /etc/fstab ==== Edit **/etc/fstab** and add a line for each windows share. For example: //remote_machine/public/ /mnt/public cifs username=peter,password=mypassword,iocharset=utf8,sec=ntlm 0 0 //remote_machine/media/ /mnt/media cifs username=peter,password=mypassword,iocharset=utf8,sec=ntlm 0 0 //remote_machine/video/ /mnt/video cifs username=peter,password=mypassword,iocharset=utf8,sec=ntlm 0 0 ** NOTE:** If the system complains add the 'noauto' parameter. ---- === Mount the shares === sudo mount -a or Reboot. ---- ===== Extended fstab settings ===== Make the following entry in your /etc/fstab file : //server_name/share_name /mount_path cifs defaults,uid=1000,gid=1000 0 0 Now when the share is mounted all files and folders will appear as the user with uid 1000. ---- **__FURTHER INFORMATION:__** **__dir_mode / file_mode__** Setting the uid or gid is fine if you are the only user of the system. On a multiuser system this is problematic as other users will still be denied. Therefore use **dir_mode / file_mode** to give everyone access: //server_name/share_name /mount_path cifs defaults,dir_mode=0777,file_mode=0666 0 0 ---- ===== Extende fstab to assign full permissions to newly created files and directories ===== Add these lines to /etc/smb.conf on the server: ... create mask = 0666 force create mode = 0666 directory mask = 0777 force directory mode = 0777 ... This gives 0777 permission to every samba users in the write list for new created directory or files. ---- ===== Hide Credentials ===== Setup a credentials file so you don't need to enter your password in the command; causing it to be stored in your command history in plain-text) or at the prompt (a nuisance). sudo mount -t cifs //nas/docs /media/peter/nas_docs -o vers=3.11,credentials=/home/peter/.ssh/.smb_nas Note the **credentials option** username=peter password=[REAL PASSWORD] domain=WORKGROUP