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

关于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查看
  • 选择记住凭据,下次输入地址后无需登录
  • 第一次打开可能需要几秒时间,耐心一点

登录samba

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
第一列表示权限,第三列表示所有者,第四列表示用户组。既然提示权限不够,完全有理由怀疑是不在相应组导致的。
一般遇到这种情况想要修改相应文件(夹)用户组或者权限是不明智的,而且很可能导致新的问题,所以必须另寻他法,找到问题根本原因。

 

posted on 2017-03-12 19:51  艾恩格朗特  阅读(225)  评论(0编辑  收藏  举报