1 安装 view plain copy
- sudo apt-get install samba
2 配置
打开Samba配置文件: view plain copy
- sudo gedit /etc/samba/smb.conf
. 创建共享目录
$ sudo mkdir -p /home/share
一般来说,该目录的权限为755,将其改为777之后,Owner之外的其他用户才有权限写入。
$ sudo chmod 777 /home/share
备份原配置文件
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
在其最后添加: view plain copy
-
[share]
path = /home/gaojs/work
# valid users = share//不要指定共享用户
available = yes
browseable = yes
writable = yes
public = yes
- sudo useradd share
- sudo smbpasswd -a share
根据提示深入用户密码(登陆Samba共享目录的时候需要)。
4 重启Samba view plain copy
- sudo service smbd restart
5 测试
在Ubuntu的Files底部的Network中选择Connect to Server, 然后在弹出来的对话框中深入smb://192.168.0.216/share(192.168.0.216为我的电脑ip地址), 然后点击右下角的Connect按钮. 此时会提示输入密码(在第3步中创建),输入密码后即可进入共享目录。
6 使用
在Windows电脑上,输入“\\192.168.0.216\share”,然后输入用户名(share)和密码后,既可以访问了
从Windows访问Samba共享文件夹
在同一网络的Windows计算机上,打开文件浏览器,然后单击左窗格中的网络。 你会看到samba服务器。 双击共享文件夹并输入linuxidc和密码。
从Ubuntu计算机访问Samba共享文件夹
在文件管理器中,单击左侧窗格中的“网络”(Network)选项卡,然后单击“Windows网络”(Windows Network.)。
选择工作组,Samba服务器和共享文件夹,然后输入Samba linuxidc和密码。
添加多个用户或组
如果多个帐户更适合访问共享文件夹,请在/etc/samba/smb.conf文件中更改如下所示的有效用户。
valid users = user1, user2, user3
还可以使用smbpasswd为每个用户设置Samba密码。
sudo smbpasswd -a user1
sudo smbpasswd -a user2
sudo smbpasswd -a user3
要允许一组用户访问共享文件夹,请在/etc/samba/smb.conf中使用以下配置。
valid users = @sambashare
创建组。
sudo groupadd sambashare
然后将用户添加到此组
sudo gpasswd -a user1 sambashare
sudo gpasswd -a user2 sambashare
sudo gpasswd -a user3 sambashare
该组需要对共享文件夹具有写入权限,可以通过以下两个命令实现。
将sambashare设置为共享文件夹的组所有者:
sudo chgrp sambashare /path/to/shared/folder -R
授予组的写入权限。
sudo chmod g+w /path/to/shared/folder/ -R
另外,总结一下常见的samba配置及说明:
[share] # 该共享的共享名
comment = smb share test # 该共享的备注
path = /home/share # 共享路径
allow hosts = host(subnet) # 设置该Samba服务器允许的工作组或者域
deny hosts = host(subnet) # 设置该Samba服务器拒绝的工作组或者域
available = yes|no # 设置该共享目录是否可用
browseable = yes|no # 设置该共享目录是否可显示
writable = yes|no # 指定了这个目录缺省是否可写,也可以用readonly = no来设置可写
public = yes|no # 指明该共享资源是否能给游客帐号访问,guest ok = yes其实和public = yes是一样的
user = user, @group # user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开
valid users = user, @group # 指定能够使用该共享资源的用户和组
invalid users = user, @group # 指定不能够使用该共享资源的用户和组
read list = user, @group # 指定只能读取该共享资源的用户和组
write list = user, @group # 指定能读取和写该共享资源的用户和组
admin list = user, @group # 指定能管理该共享资源(包括读写和权限赋予等)的用户和组
hide dot files = yes|no # 指明是否像UNIX那样隐藏以“.”号开头的文件
create mode = 0755 # 指明新建立的文件的属性,一般是0755
directory mode = 0755 # 指明新建立的目录的属性,一般是0755
sync always = yes|no # 指明对该共享资源进行写操作后是否进行同步操作
short preserve case = yes|no # 指明是否区分文件名大小写
preserve case = yes|no # 指明是否保持大小写
case sensitive = yes|no # 指明是否对大小写敏感,一般选no,不然可能引起错误
mangle case = yes|no # 指明混合大小写
default case = upper|lower # 指明缺省的文件名是全部大写还是小写
force user = testuser # 强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= testuser强制建立文件的属主是testuser,同时限制create mask = 0755,这样guest就不能删除了
wide links = yes|no # 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用
max connections = 100 # 设定最大同时连接数
delete readonly = yes|no # 指明能否删除共享资源里面已经被定义为只读的文件
三、创建samba用户
注意,创建samba用户之前,必须先确保有一个同名的Linux用户,否则samba用户会创建失败。
$ sudo smbpasswd -a smbuser
四、重启samba服务
$ sudo service smbd restart
五. 客户端访问测试
1. Linux客户端访问测试
$ smbclient -L //localhost/share
2. Windows客户端访问测试
可以访问如下地址:
\\IP或者主机名\share
如果public = no,此时需要输入samba用户密码;如果public = yes,则作为nobody用户直接访问。
另外,在Windows客户端使用net use * /del /y这条命令可以清理访问缓存。