Linux与Windows共享文件夹之samba的安装与使用(Ubuntu为例)

 

作者:@gzdaijie
本文为作者原创,转载请注明出处:http://www.cnblogs.com/gzdaijie/p/5194033.html

目录

1.写在前面
2.安装方法
2.1 安装samba
2.2 创建共享目录
2.3 修改samba配置文件
2.4 设置登录密码
2.5 启动samba服务器
2.6 测试是否共享成功
3.在windows上测试
3.1 打开windows文件管理器,输入\\ip地址或主机名\share
3.2 尽情享受samba带来的便利吧

1.写在前面

当你在Windows上安装了一台Linux的虚拟机,你想访问Linux中的文件夹,将虚拟机中的文件复制到Windows主机上,你会怎么做呢?如果这台Linux主机不是虚拟机,而是一台远程主机呢?
    有没有一种方法,打开Linux虚拟机中的文件夹就像在本地一样,输入路径就可以?你可能会想到FTP,本文介绍一个更简单的方法——samba。
    接下来详细介绍如何在Linux上安装samba(以Ubuntu14.04为例)。

2.安装方法

2.1 安装samba

sudo apt-get install samba

2.2 创建共享目录

// 创建的目录即之后能够在Windows主机上直接访问的目录。
// 例如:在用户gzd的主目录下新建share文件夹为共享目录
mkdir /home/gzd/smbshare
// 由于Windows下的文件夹需可读可写可执行,需更改权限为777
sudo chmod 777 /home/gzd/smbshare

2.3 修改samba配置文件

我记得  还要加  security=user  cat后面

// 修改 /etc/samba/smb.conf
sudo vim /etc/samba/smb.conf
// 在smb.conf文件最后加上以下内容

[share]
path = /home/gzd/smbshare
public = yes
writable = yes
valid users = gzd
create mask = 0644
force create mode = 0644
directory mask = 0755
force directory mode = 0755
available = yes

关于smb.conf的几点解释:

(1) [share]表示共享文件夹的别名,之后将直接使用这个别名

(2) force create modeforce directory mode的设置是因为Windows下与Linux下文件和文件夹的默认权限不同造成的,Windows下新建的文件是可执行的,必须强制设定其文件权限。

(3) valid users 设置为你当前的Linux用户名,例如我的是gzd,因为第一次打开共享文件夹时,需要验证权限。

2.4 设置登录密码

// 新建/etc/samba/smbpasswd文件
sudo touch /etc/samba/smbpasswd
// 根据2.3设置的valid users,设置用户密码
// gzdaijie 替换为你在2.3中设置的用户名
sudo smbpasswd -a gzd
//输入两次密码后,会提示 Added user gzd. 表示设置成功
// 若用户名非当前登录系统的用户名,可能会提示Failed

2.5 启动samba服务器

sudo /etc/init.d/samba restart

2.6 测试是否共享成功

sudo apt-get install smbclient
smbclient -L //localhost/share
//还记得吗?share为2.3中设置的共享文件夹的别名
//如果共享成功,将要求输入之前设置的密码

3.在windows上测试

3.1 打开windows文件管理器,输入\\ip地址或主机名\share

  • Linux的ip地址可通过ifconfig查看
  • 选择记住凭据,下次输入地址后无需登录
  • 第一次打开可能需要几秒时间,耐心一点

3.2 尽情享受samba带来的便利吧

  • 在windows下创建文件,到Linux下看看吧!
  • 在Linux的共享目录下创建文件,在windows下看看吧!

在ubuntu下设置共享
1. 安装samba
sudo apt-get install samba smbfs
2. 设置samba密码
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a yourname #yourname 表示你的用户名
然后按照提示设置输入密码
3. 任意选择你想要共享的文件夹,右键选择“Properties”,然后点击“Share”;
4. 输入共享名,一般情况下可以跟文件夹同名,如果下面第三步出错请换个名字试试;
5. 选中第一个选项 “share this fold” ,第二个也可以选上,第三个建议不要选;

你的映射地址为“\\ubuntu-IP\sharename”,ubuntu-IP是你的ubuntu主机的IP地址,sharename 就是你在前面第3步中输入的共享名。
然后按照提示输入用户名和共享密码。
如果是在linux系统中,可以通过mount命令访问你创建的共享:
sudo mount //ubuntu-IP/sharename share_temp/ -o username=yourname,password=yourpasswd,fmask=777,dmask=777
share_temp是你本地的一个文件夹,就是把共享临时放到这个文件夹。

ubuntu下的普通用户如何建立共享
普通用户登陆后,按照上面的方法创建共享文件夹,则会提示错误:
'net usershare' returned error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error Permission denied
You do not have permission to create a usershare. Ask your administrator to grant you permissions to create a share.此时只需要将该用户加入sambashare用户组,方法如下:
sudo adduser yourname sambashare
logout后重新登陆你就可以设置共享文件夹了。
不过此时你还不能应用你的共享,你需要先设置你的samba密码。
sudo smbpasswd –a yourname
然后按照提示设置你的samba密码。
说明:
普通用户设置共享的问题让很多人都被困扰过。对于该问题找了很久不得答案,网上说法很多,最后发现只要把相应用户加入sambashare用户组就可以了。
其实从错误信息也可以得到相应提示/var/lib/samba/usershares,于是查看属性:
ls /var/lib/samba/ -l
drwxrwx--T 2 root sambashare 4096 2010-12-30 10:57 usershares
第一列表示权限,第三列表示所有者,第四列表示用户组。既然提示权限不够,完全有理由怀疑是不在相应组导致的。
一般遇到这种情况想要修改相应文件(夹)用户组或者权限是不明智的,而且很可能导致新的问题,所以必须另寻他法,找到问题根本原因。

ubantu 与Windows 资源共享的更多相关文章

  1. VMware下Ubantu与Windows共享文件夹的方法

    刚刚接触linux的同学往往喜欢在windows系统下安装一个虚拟机,然后在虚拟机上进行操作,但是windows和虚拟机上的linux系统之间的文件互传往往不太方便,今天就总结一个小技巧在window ...

  2. Linux下Samba的配置

    前言: 为了实现windows 和 Linux以及其它操作系统之间的资源共享,软件商推出nfs 和samba两种解决方案.因为市场上缺乏象pc-nfs那样的client工具,使得Linux和windo ...

  3. dll劫持破坏360

    0x01 前言 说起DLL劫持技术,相信大家都不会陌生,因为这种技术的应用比较广泛,比如木马后门的启动.破解程序的内存补丁.外挂插件的注入以及加密狗的模拟等.之所以DLL劫持技术深受黑客们的喜爱,主要 ...

  4. windows下远程连接ubantu

    要实现windows下连接ubantu需要安装以下软件: 1. windows下安装winSCP 2. Ubantu下安装OpenSSH Server 可以使用命令行安装openSSH Server: ...

  5. windows下安装ubantu

        首先声明我是一个linux大菜鸟,之所以学这个,一个是好玩,另外做DL的一些软件如Caffe要在这个平台上运行,所以没事就鼓捣鼓捣.linux是一种内核,市场上支持这种内核的操作系统有uban ...

  6. ubantu 虚拟机无法查看windows共享目录

    初学linux,安装好虚拟机,安装好ubantu系统,启动系统后无法查看windows共享目录. 原因是没有安装 vmware tools 教程地址:http://www.linuxidc.com/L ...

  7. windows下怎么给ubantu虚拟机全屏的处理

    ubantu版本时16.04 windows下窗口太小需要设置 相信很多人在装虚拟机的时候,遇到了窗口过小不能自适应的问题.我也是查了好多资料,都说安装Vmware Tools即可解决,还有说修改分辨 ...

  8. windows下eclipse实现操作虚拟机ubantu中的hdfs hbase

    1.首先打开虚拟机,查看虚拟机的ip地址 2.修改C:\Windows\System32\drivers\etc下的主机名与ip的映射文件 3.配置Map/reduce 配置成功后可以查看hdfs文件 ...

  9. 将windows上.net core 发布的程序部署到linux(ubantu等)上

    首先在linux安装相应的.net core 环境,根据官方的示例安装即可:参考地址:https://dotnet.microsoft.com/learn/dotnet/hello-world-tut ...

随机推荐

  1. hadoop大数据基础框架技术详解

    一.什么是大数据 进入本世纪以来,尤其是2010年之后,随着互联网特别是移动互联网的发展,数据的增长呈爆炸趋势,已经很难估计全世界的电子设备中存储的数据到底有多少,描述数据系统的数据量的计量单位从MB ...

  2. 【设计模式】JDK源码中用到的设计模式

    https://blog.csdn.net/angjunqiang/article/details/42061453 https://blog.csdn.net/baiye_xing/article/ ...

  3. 5V与3.3V电平互转

    参考: http://blog.sina.com.cn/s/blog_7880f98301014fmj.html

  4. Mule ESB 介绍

    Mule ESB 介绍 博客分类: ESB ESB  1. 简介 Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换.Mule ...

  5. ionic 监听页面滚动,点击停止滚动

    类似今日头条,页面上有很多card,点击每个card跳转该card的详情页面.这里有一个问题,当我滚动页面时,会先后触发touchstart.touchmove.touchend,但是当touchen ...

  6. jQuery实现点赞动态效果

    实现动态效果基本上都是用到定时器,修改标签的位置大小颜色属性 <!DOCTYPE html> <html lang="en"> <head> & ...

  7. setvlet基础知识

    Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览 ...

  8. C/C++基础----用于大型程序的工具(异常处理,命名空间,多重继承)

    独立开发的子系统间协同处理错误的能力 使用各种库(可能包含独立开发的库进行协同开发的能力) 对比复杂的应用概念建模的能力 异常处理 异常将问题的检测和解决过程分离开 当执行一个throw之后,程序控制 ...

  9. C++进阶--派生类的析构(虚析构函数,shared_ptr)

    //############################################################################ /* 在多态虚基类中声明一个虚析构函数 * ...

  10. 统计apk或jar中方法数量

    一.apk中方法数量 ./android-sdk-linux/build-tools/23.0.2/dexdump -f  apk路径 | grep method_ids_size 二.jar中方法数 ...