How to mount remote Windows shares
Contents
OK, we live in the wonderful world of Linux. BUT, for many of us, having to deal with Windows is a fact of life. For example, you may want to use a Linux server to back up Windows files. This can be made easy by mounting Windows shares on the server. You will be accessing Windows files as if they are local and essentially all Linux commands can be used. Mounting Windows (or other samba) shares is done through the cifs virtual file system client (cifs vfs) implemented in kernel and a mount helper mount.cifs which is part of the samba suite.
The following names are used in our examples.
remote Windows machine winbox
share name on winbox: getme
username: sushi
password: yummy
Word of warning: the default behaviour for mount.cifs is leaving the mounted share unsecured (http://bugs.centos.org/view.php?id=4537). If you are managing a multiuser system, consider setting the dir_mode and file_mode options to your mount point.
1. Required packages
Make sure that the following packages are installed:
[root@host]# yum install samba-client samba-common cifs-utils
which will also pull in any needed dependencies. Note that cifs-utils is for CentOS-6 (or later) only.
2. Basic method
Create a local mount point. For example:
[root@host]# mkdir /mnt/win
Edit the /etc/fstab file and add a line like:
\\winbox\getme /mnt/win cifs user,uid=500,rw,suid,username=sushi,password=yummy 0 0
The Windows share gets mounted on boot. Add the noauto option if you wish to manually mount it by the command mount /mnt/win . In this example, local user (uid=500) will become the owner of the mounted files. Use of the uid flag is optional. However, it may be required for certain applications (for example, Acrobat) to work because they are picky about the permissions.
You may want to use different options for cifs. For example, nocase allows case insensitive path name matching. Do a man mount.cifs to see more options.
[Note: if you used smbfs in earlier versions of CentOS, you must replace it with cifs in CentOS 5 because smbfs has been deprecated.]
3. Better Method
The above method has a little problem. Username and password are visible to everyone. We can avoid this by using a credentials file.
\\winbox\getme /mnt/win cifs user,uid=500,rw,noauto,suid,credentials=/root/secret.txt 0 0
Note: per jbroome, in IRC, a working example looks like this
\\jellyfish\DBRefreshLogs\beta2 /media/DBRefreshLogs/beta2 cifs credentials=/root/secret.txt,_netdev,uid=oracle,gid=dba 0 0
Where the /root/secret.txt file looks like this:
username=sushi
password=yummy
This file can be placed anywhere. Encrypted passwords cannot be used. Make sure it is not readable by others. Note also that no spaces are allowed.
(Note: username can have a form of username=<domain>/<hostname>)
4. Even-better method
Once mounted through /etc/fstab the remote share remains mounted unless you umount it. This might cause problems if the remote share becomes unavailable, resulting in stale mounts. For example, the Windows machine you are connecting to might crash (surprise!) or the network might go down.
Automount comes in handy (if you don't already have autofs, install it by yum install autofs). Here is what you need to do. First create a mount point
[root@host]# mkdir /mymount
[Note: You can use any directory; make sure that directory exists]
To the /etc/auto.master file add a line like:
/mymount /etc/auto.mymount
Then edit the /etc/auto.mymount file you just entered:
winbox -fstype=cifs,rw,noperm,user=sushi,pass=yummy ://winbox/getme
Or by using the same credentials file as above:
winbox -fstype=cifs,rw,noperm,credentials=/root/secret.txt ://winbox/getme
Note that /etc/auto.mymount can be made world-unreadable, so, use of the credentials file is not as important as in the previous method.
[More note: If you cannot connect by the machine name but can connect by its IP address, then add wins on the hosts line of /etc/nsswitch.conf .]
When all is ready, run /sbin/service autofs restart as root.
Now try accessing the share by ls /mymount/winbox or by cd /mymount/winbox . It is dynamically loaded upon access. After some inactivity (default 60 seconds), the share will be unmounted.
[Note: Upon automounting, you may see an error mount_cifs.so: cannot open shared object file in /var/log/messages. This is harmless and can be safely ignored.]
5. Yet Another Even-better method
If you have multiple shares to mount with the same credentials, there is a handy way to set it up.
Create a local mountpoint (of your choice):
[root@host]# mkdir /mnt/smb
Add this line to /etc/auto.master:
/mnt/smb /etc/auto.smb.top
Create /etc/auto.smb.top as:
* -fstype=autofs,-Dhost=& file:/etc/auto.smb.sub
Create /etc/auto.smb.sub as (adjust as needed):
* -fstype=cifs,credentials=/root/secret.txt,uid=500,gid=100 ://${host}/&
Let's make sure that the permission bits are correct and restart the service:
[root@host]# chmod 644 /etc/auto.smb.*
[root@host]# /sbin/service autofs restart
Now you can access by simply typing:
[user@host]$ cd /mnt/smb/winbox/getme
(Thanks to Mia Via for sending in this tip)
Additional tips:
If you have multiple remote servers and shares with different usernames and/or passwords, use this formula:
* -fstype=cifs,credentials=/root/${host}.secret.txt,uid=${UID},gid=${EUID} ://${host}/&
To allow users to put their own usernames/passwords to their home directories (might expose security even more):
* -fstype=cifs,credentials=${HOME}/${host}.secret.txt,uid=${UID},gid=${EUID} ://${host}/&
To improve security with Samba-servers, you could also add sec=ntlmv2, and make credentials file hidden like this:
* -fstype=cifs,sec=ntlmv2,credentials=${HOME}/.${host}.secret.txt,uid=${UID},gid=${EUID} ://${host}/&
See mount.cifs man page for details about the sec- and other cifs related mount parameters.
(Thanks to Tapio Ryhänen for sending in these tips)
Note for CentOS 5.0 and CentOS 4.5 users. There is a bug in the cifs filesystem module of kernel 2.6.18 that CentOS 5.0 (RHEL 5.0) and CentOS 4.5 (RHEL 4.5) use. This bug causes kernel oopses or system crashes in an unpredictable manner. Please see the bug report for more details: http://bugs.centos.org/view.php?id=1776
Note added: The bug was fixed in CentOS 5.1 (kernel-2.6.18-53) and 4.6 (kernel-2.6.9-67).
How To Browse Windows Shares
If you just want to browse Windows files, you do not need to mount them. There are easy ways to access them from your file browser.
In Konqueror, Go -> Network folders -> Samba Shares
In Nautilus, Places -> Network -> Windows Network
To go to a specific share more quickly, you can type directly in the Location box of konqueror:
smb://winbox/getme
If you use nautilus, type a / first (thanks to JohnnyHughes for this hint).
How to mount remote Windows shares的更多相关文章
- How To mount/Browse Windows Shares【在linux{centos}上挂载、浏览window共享】
How to mount remote Windows shares Contents Required packages Basic method Better Method Even-better ...
- How to mount remote windows partition (windows share) under Linux
http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html ...
- Mac:How to mount a Windows shared folder
Reference: How to mount a Windows shared folder on your Mac
- Linux上mount 挂载windows共享文件权限问题
在服务器部署的时候需要把文件夹设置在windows的共享文件上.在使用mount命令挂载到linux上后.文件路径和文件都是可以访问,但是不能写入,导致系统在上传文件的时候提示“权限不够,没有写权限” ...
- mount挂载WINDOWS分区和目录
转自:http://blog.163.com/sg_liao/blog/static/29577083200942811445981/ 一,挂载共享目录 sudo mount -t cifs -o ...
- Linux使用mount挂载Windows共享文件夹
https://blog.csdn.net/tojohnonly/article/details/71374984 https://github.com/tojohnonly 现实中会有这样的场景 , ...
- MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45
wget "https://raw.githubusercontent.com/rapid7/metasploit-framework/6d81ca42087efd6548bfcf92417 ...
- mount.cifs Windows共享目录权限755问题
umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down mount -t cifs -o rw,dir_mode=,file_mode=,s ...
- 校园网跨网段共享文件Samba+SSH
Introduction This tutorial contains screenshots for the English version of Windows 10. Separate inst ...
随机推荐
- Scala API - 泛型
- EM算法:入门案例
概率分布 4种实验结果 \(E_1\) \(E_2\) \(E_3\) \(E_4\) 记录它们发生的次数 \(y_1\) \(y_2\) \(y_3\) \(y_4\) 记录次数结果 125 18 ...
- Masonry创建Label,不设置高度Label不显示问题
[self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weanSelf).off ...
- k8s 网络模型解析之原理
今天研究了一下k8s的网络模型,该解析基于flannel vxlan+ kubeproxy iptables 模式. 一.Docker 首先分析一下Docker层面的网络模型,我们知道容器是基于内核的 ...
- P1494 小Z的袜子 【普通莫队】
我的第二道莫队题,对莫队又有了自己的看法. 在第一题的基础上之上,觉得莫队有个很关键的地方在于 莫队所维护的值是什么,怎么推出维护的公式来. 这道题就是这样,一开始还没自己推出公式来,也有几个坑点. ...
- [转帖]nginx 80端口重定向 转发到443端口
nginx 80端口重定向到443端口 2017年05月16日 13:53:58 幸福丶如此 阅读数 33387 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文 ...
- 对Redis 单进程、单线程模型的理解(网摘)
1.基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理? 多线程处理可能涉及到锁 多线程处理会涉及到线程切换而 ...
- Netty如何支持三种Reactor
参考文献:极客时间傅健老师的<Netty源码剖析与实战>Talk is cheap.show me the code! 什么是Reactor及三种版本 反应堆设计模式(Reactor pa ...
- 2019CSP-S游记
\(2019CSP-S\)游记 \(Day : -26\) 初赛退役失败,准备复赛了... \(Day:0\) 早上\(7:30\)出发坐车去杭州,车上一直在听歌和睡觉中度过(话说锦零的歌真好听).. ...
- Linux就该这么学——新手必须掌握的命令之常用的系统工作命令
echo命令 含义:echo命令用于在终端输出字符串或变量提取后的值,格式为 : echo [字符串|$变量] 示例: 将”Linuxprobe.com”输出到终端屏幕的命令为: [root@linu ...