在 Linux 上和一个 Windows 网络进行交互历来就不是件轻松的事情。想一想多少企业正在采用 Linux,须要在这两个平台上彼此协做。幸运的是,有了一些工具的帮助,你能够轻松地将 Windows 网络驱动器映射到一台 Linux 机器上,甚至能够确保在重启 Linux 机器以后共享还在。网络
要实现这个,你须要用到命令行。过程十分简单,但你须要编辑 /etc/fstab 文件,因此当心操做。还有,我假设你已经让 Samba 正常工做了,能够手动从 Windows 网络挂载共享到你的 Linux 机器,还知道这个共享的主机 IP 地址。编辑器
准备好了吗?那就开始吧。工具
咱们要作的第一件事是建立一个文件夹,他将做为共享的挂载点。为了简单起见,咱们将这个文件夹命名为 share,放在 /media 之下。打开你的终端执行如下命令:ui
sudo mkdir /media/share
如今咱们得安装容许跨平台文件共享的系统;这个系统是 cifs-utils。在终端窗口输入:命令行
sudo apt-get install cifs-utils
这个命令同时还会安装 cifs-utils 全部的依赖。rest
安装完成以后,打开文件 /etc/nsswitch.conf 并找到这一行:code
hosts: files mdns4_minimal [NOTFOUND=return] dns
编辑这一行,让它看起来像这样:dns
hosts: files mdns4_minimal [NOTFOUND=return] wins dns
如今你须要安装 windbind 让你的 Linux 机器能够在 DHCP 网络中解析 Windows 机器名。在终端里执行:ci
sudo apt-get install libnss-windbind windbind
用这个命令重启网络服务:get
sudo service networking restart
如今咱们要映射网络驱动器。这里咱们必须编辑 /etc/fstab 文件。在你作第一次编辑以前,用这个命令备份如下这个文件:
sudo cp /etc/fstab /etc/fstab.old
若是你须要恢复这个文件,执行如下命令:
sudo mv /etc/fstab.old /etc/fstab
在你的主目录建立一个认证信息文件 .smbcredentials。在这个文件里添加你的用户名和密码,就像这样(USER 和 PASSWORD 替换为实际的用户名和密码):
username=USER password=PASSWORD
你须要知道挂载这个驱动器的用户的组 ID(GID)和用户 ID(UID)。执行命令:
id USER
USER 是你的实际用户名,你应该会看到相似这样的信息:
uid=1000(USER) gid=1000(GROUP)
USER 是实际的用户名,GROUP 是组名。在(USER)和(GROUP)以前的数字将会被用在 /etc/fstab 文件之中。
是时候编辑 /etc/fstab 文件了。在你的编辑器中打开那个文件并添加下面这行到文件末尾(替换如下全大写字段以及远程机器的 IP 地址):
//192.168.1.10/SHARE /media/share cifs credentials=/home/USER/.smbcredentials,iocharset=uft8,gid=GID,udi=UID,file_mode=0777,dir_mode=0777 0 0
注意:上面这些内容应该在同一行上。
保存并关闭那个文件。执行
命令,共享就会挂载上。看看一下 /media/share,你应该能看到那个网络共享上的文件和文件夹了。
有了 cifs-utils 和 Samba,映射网络共享在一台 Linux 机器上简单得让人难以置信。如今,你不再用在每次机器启动的时候手动从新挂载那些共享了。