在Linux下访问Windows共享文件夹

说明
在Linux下访问Windows共享文件夹,以下操作以Ubuntu为例,大家可以参考。我在Ubuntu 14.04和16.04都试过了。

Windows共享文件夹

如果局域网内有一台Windows主机,将指定文件夹设为共享,就可以在局域网内访问了。
如果要从Linux下访问该如何操作呢?

使用 mount.cifs

Windows共享文件夹使用的协议是SMB/CIFS。因而可以使用Linux下的smbclient在命令行中进行操作。
如果想更方便地在图形桌面环境使用,则可以使用mount.cifs指令,将共享文件夹挂载到指定位置,然后就可以像访问一个本地文件夹一样访问了。

首先安装依赖的包

使用mount.cifs需要cifs-utils软件包(以及cifs-utils依赖的软件包)。

$ sudo apt install cifs-utils

(插一句嘴:现在apt安装可以直接使用apt而不用apt-get了)

挂载共享文件夹

可以使用如下两种指令(效果是一样的)

sudo mount.cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw]

或者

sudo mount -t cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw]

其中共享文件夹的地址是Windows主机的地址加上文件夹名称,这个可以在Windows主机上看到。例如//192.168.0.100/share
挂载点是Linux本地的一个空文件夹。
后面的选项指定了用户名和密码。

文件操作

挂载成功后,通过图形化的文件管理器就可以直接操作了。复制、粘贴、删除等等。
不过,然而,可是……你很快就会发现,这个文件夹可读不可写!只能往外面复制,不能新建文件或者向里面复制。
查看文件夹属性后会发现,原来这个文件夹在挂载之后,owner变成了root。怎么办呢?不能每次拷个文件还要sudo吧?那还得打开命令行,不直观,多麻烦。
别急,mount.cifs还提供了一个选项,那就是指定挂载后的owner!用法如下:

sudo mount.cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw],uid=[UID]

在选项中指定用户的UID就可以了。
查看某个用户UID的方法:

id -u [username]

之后就可以正常操作了!

卸载

最后如果要卸载共享文件夹,使用umount即可

sudo umount [mount point]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13562.html