Samba是在Linux及Unix上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。
安装samba
在ubunt下安装命令是apt install samba
而在sentos或者redhat下安装命令应该是yum install ubunt
。如果ubunt下没有安装samba,我们输入apt install samba
回车,出现提示,按y确认即可。
配置samba
安装好了之后,就可以进行配置了。
创建共享的文件夹
- 输入
mkdir -p /home/share
创建文件夹。
2.输入chmod 777 /home/share
给该目录下用户写权限。
配置samba服务
一般来说,Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。
在进行修改配置文件之前,一个好的建议就是先进行备份。输入下面的代码
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
利用vim
编辑smb.conf文件,如果没有提示vim没有安装的话,可以先安装vim。输入如下:
apt install vim
然后编辑smb.conf的配置文件,输入下面的命令;
vim /etc/samba/smb.conf
添加下面的代码:
security = user
(ps,某些版本的ubunt不能设置为share,设置为user则为需要账号密码登录。share则代码允许匿名登录).
在文件末尾添加如下的配置代码:
[share]
comment = this is linux share directory
path = /home/samba/share
available = yes
browseable = yes
public = yes
writable = yes
退出保存即可。
测试访问samba服务器
在ubunt下,输入ifconfig
查看ubunt的ip地址。
启动samba服务器:
service smbd start
或者/etc/init.d/smbd start
在window下,按win+r 运行\\\192.168.146.128
确认。
回车后出现要输入密码和账号的提示框即代码smab服务器已经可以访问了。输入正确的账户密码后即可访问分享的文件夹及里面的内容。
访问出错及解决方案
如果window下提示访问出错的话,可能是防火墙被挡了。最简单的方法就是直接关闭防火墙,输入下面命令;
ufw status
查看当前防火墙的运行状态
ufw disable
关闭防火墙。
然后在去试试。
关于更多的ufw命令可以参考链接
简单的命令如下:
sudo ufw allow|deny [service]
打开或关闭某个端口,例如:
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
添加用户账号
创建用户账号,并添加密码
useradd fred
passwd fred
为该用户常见共享目录:
mkdir /home/samba/fred
并设置该文件夹的所有权为fred用户所有。
chown fred.fred /home/samba/fred/
为账户添加sambar服务密码,这个密码单独于用户密码,可以与其不同。
smbpasswd -a fred
最后在/etc/samba/smb.conf
添加如下的代码进行控制。
[fredsdir]
comment = fred's service
path = /home/samba/fred
valid users = fred
public = no
writable = yes
最后,重启服务即可。
/etc/init.d/smbd restart
测试,在运行框中输入:
\\192.168.146.128\fredsdir
提示要输入密码,直接输入fred和你为其添加的samba密码,注意不是fred的账号密码。到此,搞定收工。
注意,在windws下有一个连接的缓存机制,当我们链接异常的时候,可以使用下面的代码:
net use * /delete /y
来断开连接。
至此,unbunt下的samba服务搭建基本介绍完毕。
至于red hat和Sentos下的samba搭建可以参考下面的链接: