install samba
sudo apt-get install samba
sudo apt-get install cifs-utils
#sudo apt-get install samba-common //上面安装好,这个包就自动更新了
create share folder
mkdir /home/jxes/samba_share
sudo chmod 777 /home/jxes/samba_share/
modify samba config
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo vim /etc/samba/smb.conf
在smb.conf里添加如下配置: (基于原有的smb.conf修改或添加下面配置)
[global]
workgroup = jxes
netbios name = jxesVBox
server string = Virtual Box server
unix charset = utf8
display charset = utf8
dos charset = cp90
log file = /var/log/samba/log.%m
max log size = 500
security = share //在ubuntu 16.04 对这个feature不支持,可以不用配置
load printers = no
[myshare] //在windows的资源管理器,输入IP/myshare可以看到ubuntu共享的目录
comment = Temporary file space
path = /home/jack/samba_share
force user = jack //如果不指user与group,默认会是nobody,nogroup
force group = jack
writable = yes
browseable = yes
guest ok = yes //允许匿名访问,即不用账号密码,如果改为no,则需要创建samba账号
create mask = 0644 //这个是指定远程传过来的文档的权限,如果不指定,默认都会是0777,这样什么文档都变有可执行权限,看着不爽
ubuntu16.04
注:在ubuntu16.04由于[global]不支持security,所以在[myshare]这里设置public=yes(用来指定该共享是否允许guest账户访问),设置了这个feature后,guest ok=yes可以不用再设置。
available = yes //vailable用来指定该共享资源是否可用。下面是完整的ubuntu16.04匿名配置:
[global]部分不用设置,直接使用default的就可以。
[myshare]
262 comment = Share Directory
263 path = /home/jack/samba_share
264 available = yes
265 browseable = yes
266 writable = yes
267 public = yes
268 guest ok = yes
269 force user = jack
270 force group = jack
271 create mask = 0644
如果要设置带访问权限的,配置如下:
[gloabl]不用配置,使用default
[myshare]
262 path = /home/jack/samba_share
263 available = yes
264 browseable = yes
265 writable = yes
266 #public = yes //把此处注掉即可
create samba user name
- sudo useradd mysmb
- 再给smba账号分配一个密码
sudo smbpasswd -a mysmb - 编辑/etc/samba/smbusers在里面添加下面这行:
mysmb= “Samba user.”
如果开启了防火墙,即ufw enable了,则需要允许samba端口(ubuntu12,14,16上默认是不会打开的,所以可以忽略此处)
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137/udp
sudo ufw allow 138/udp
一切配置完后,重启smaba服务
sudo service smbd restart //在较新版本的ubuntu下可以sudo service samba restart
服务端测试命令
sudo testparm
查看samba服务状态命令
smbstatus