Linux系统访问windows共享文件夹,可以通过mount命令实现。

基本语法:

mount -t cifs  -o username=xxxx,password=xxxx  //xxx.xxx.xxx.xxx/folder  /localfolder

例如  

mount -t cifs -o username=u0332,password=123456  //192.168.43.240/myfiles  /mnt/my240

其中  -t  cifs 代表访问类型是cifs格式;

         -o是选项,代表后面时候选项;-o可以多次出现

                本示例中,后面是完整的字符串,包含用户名和口令。

        //192.168.43.240/myfiles  代表windows共享文件夹的网络地址;

        //mnt/my240是linux系统的本地文件夹,需要事先建好,作为加载点。

                加载成功后,共享的文件和子文件夹就相当于在该文件夹下。 可以用以下命令测试:

                       #ls /mnt/my240

但是这个mount语法并不完善,你可能会遇到以下情况,造成访问失败:

1、口令中带有特殊字符,造成执行命令失败,例如口令中间包含 ! ;

2、访问windows系统,返回mount error(13)信息,访问失败;

        这个问题困扰我好一段时间,网络上查到的信息支零破碎。

经过多次试验,找到了规范模式写法,分享给各位同好:

1、口令两端要加上单引号;

2、采用域模式进行windows验证,具体就是验证字符串改为:

        -o domain=xxxx,username=xxxx,password=xxxx

完整的示例如下:

示例1:

mount -t cifs -o domain=192.168.43.240,username=myshareuser,password='123456 ' //192.168.43.240/myfiles  /mnt/my240

示例2:

mount -t cifs -o domain=sces.com,username=u0332,password='123!456 ' //192.168.43.240/myfiles  /mnt/my240

关于domain的概念:

        如果你访问的windows共享文件夹,访问权限是用的共享机本机用户,则domain写共享机的IP地址或机器名,相当于本机域,如示例1,共享机是192.168.43.240,其本地用户myshareuser,具备共享文件夹的访问权限,则domain=192.168.43.240;

        如果访问权限是网络域用户,domain写域名,如示例2,共享机是192.168.43.240,在sces.com网络域里,域用户u0332具备共享文件夹的访问权限,则domain=sces.com。

建议尽量使用以上规范模式来访问,能保证访问成功率。

本示例在CentOS7配合Windows2008R2\Windows7 64位系统上调试成功。

如帮到您,欢迎点赞。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐