赞
踩
Samba用来windows之间共享文档,linux可以使用NFS进行文件共享,linux安装samba就可以给windows共享文档了。samba是一种C/S结构,必须在服务提供端安装server,客户端安装client。服务端使用使用TCP协议的445端口。
Samba是一套程序,其中最重要的两个进程是nmbd和smbd:
smbd:提供SMB / CIFS服务(Common Internet File System文件共享和打印)的守护进程,使用SMB协议与客户进行连接,完成用户认证,权限管理和文件共享任务。
nmbd:提供NetBIOS名称服务的守护进程,可以帮助客户端定位服务器和域,相当于WindowsNT中的WINS服务器,如果只是单纯的共享文件可以关闭这个服务,这样就不用在防火墙中开发137、138端口,但是在Windows中“桌面”上的“网络”里不会在显示共享的主机,只能通过“运行” 打开 \IP 的方式连接到共享的目录。
在家用samba将linux文件进行共享时,所需程序很简单,samba(smbd及nmbd)和samba-common(主要提供了SAMBA的主要配置文件smb.conf)。
安装命令:
sudo apt install samba #安装的同时会一起把samba-common软件一起安装
如果需要了文件共享服务器上安装客户端,可以使用如下命令,一般不需要,只是用来测试。
sudo apt install smbclient
samba的配置文件位置:/etc/samba/smb.conf
可以用 cat /etc/samba/smb.conf看看结构。
[global]全局配置
[homes] 共享目录
[printers] 共享打印机
里面还有很多设置,但都有英文说明。看起来很复杂,可以将其改名保存,然后自己根据下面说明生成一个。
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.backup
首先提供官网文档说明链接: Setting up Samba as a Standalone Server.
目前的samba很强大,在企业内部可以设置为Active Directory Domain Controller等,但家用就只需要单独的文件共享服务器(as a standalone server)。所以看这部分就可以了。
这个文档主要描述两种模式
1)a share that is accessible anonymously (guest access).匿名访问模式
2)a share that requires authentication against a local user database on the Samba host.需要认证的用户模式。
试用1)模式
家里访问估计不想每次都输入密码吧,可以选用1)匿名访问模式。
首先确定需要共享的目录,我的目录是/mnt/sda6,如何将共享硬盘启动后自动挂载到合适目录请查mount、fstab。
目录能够被共享读写取决于目录本身的可读可写可执行权限,还要看共享的时候设置的权限。
所以第一步,将其此目录设置成可读可写可浏览:sudo chmod 777 /mnt/sda6,否则即使共享设置了可读写,同样访问不了。
然后配置samba的访问权限:最小的匿名guest访问模式的配置文件
使用vi或nano生成smb.conf:sudo vi /etc/samba/smb.conf或sudo nano /etc/samba/smb.conf,按照下列文档输入,或拷贝。最后保存。
用命令:testparm测试参数是否可用,这个命令最后可以打印配置到显示。如果使用testparm -v显示全部参数。
然后重启smbd服务:sudo service smbd restart就可以匿名访问了。
其中:[mnt-sda6]是共享名称,也就是网络共享中能看到的名称,这个名称可以任意取。
[global]
map to guest = Bad User #这一句很关键,无密码登录就靠它了。意思是将所有samba系统主机所不能正确识别的用户都映射成guest用户
log file = /var/log/samba/%m
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。