一、Samba介绍
Samba是Linux、Unix与Windows之间进行交互操作的软件组件,Samba是基于GPL协议的自由开源软件。Samba通过SMB/CIFS协议为Windows、OS/2、Linux以及众多其他支持该协议的操作系统提供安全、稳定、快速的文件与打印服务。
Samba软件包包括Samba(服务器端软件包)、Samba-client(客户端软件包)和Samba-common(Samba公共文件软件包)三个部分组成。其中Samba有smbd和nmbd两个守护进程组成,两个进程的独立运行的:
(1)smbd
smbd服务进程为客户端提供文件共享与打印机服务。smbd默认监听的端口是TCP协议的139和445。
(2)nmbd
nmbd进程提供NetBIOS名称服务,以满足基于CIFS协议的共享访问环境。nmbd默认使用的是UDP协议137端口。
二、安装与配置步骤
网络:https://www.linuxidc.com/Linux/2017-11/148194.htm
-
安装samba服务器 : sudo apt-get install samba
-
创建共享目录并给予权限 : sudo mkdir /somo_share
sudo chmod 777 /somo_share -
测试samba服务器的安装:sudo smbd --version
-
检查Samba服务是否正在运行:systemctl status smbd
systemctl status nmbd -
启动这两个服务: sudo systemctl start smbd
sudo systemctl start nmbd -
配置samba服务器配置文件: sudo vi /etc/samba/smb.conf //修改之前先备份
添加:
[somo_share] //访问标识
path = /somo_share //共享目录路径
valid users = somo //访问用户名
available = yes //共享资源是否可用
browseable = yes //共享是否可浏览
writable = yes //是否可写
public = yes //是否允许guest账户访问
create mask = 0777
directory mask = 0777 -
关闭配置文件后,运行testparm 命令检查是否存在语法错误
-
创建用户及密码: sudo adduser somo
-
将用户添加到samba的服务中去 : sudo smbpasswd –a somo
-
要做的是重新启动smbd守护进程:sudo systemctl restart smbd
三、使用
一)、Windows:
1.在计算机中使用映射网络驱动器
2. 输入服务器IP地址及共享目录的名称
3. 输入用户名及密码登录
4. 此时Windows中挂载了Linux服务器的共享目录了
二)、Linux:
-
安装cifs支持:sudo apt-get install cifs-utils
-
挂载samba服务器 sudo mount -t cifs -o user=[samba用户名],passwd=[samba用户的密码] //[服务器IP地址]/[共享目录]/ /[挂载点]
挂载成功即可访问
四、遇到的问题 -
问题:在卸载重装时出现以下提示,大量软件找不到,并且提示samba E: Sub-process /usr/bin/dpkg returned an error code (1):
其原因是:在卸载的时候,将/etc/samba目录删除了。
解决方法:从同版本Ubuntu中拷贝一个samba目录过去,即可正常安装。 -
问题:挂载samba服务器出现拒绝访问。
其原因是:在所有的步骤都正确的情况下,是由于虽然创建了一个访问samba服务的用户,但是并没有将用户加入到samba服务里面,因此就没有访问权限。
解决方法:使用命令将用户加入到samba的服务里面去。sudo smbpasswd -a samba,然后设置访问密码。
-
问题:出现挂载失败报错mount error(112): Host is down Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
其原因是:通过查看/var/log/syslog,是说服务器版本太低
解决方法:sudo mount -t cifs -o user=[samba用户名],passwd=[samba用户的密码] ,vers=1.0 //[服务器IP地址]/[共享目录]/ /[挂载点] -
问题:dpkg:警告:无法找到软件包 libsnmp-base 的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里
其原因是:因为多次尝试,使用了各种apt-get install +apt-get remove ,结果就导致出现了 一些“pkg:警告:无法找到软件包 XXXX ” 问题。为什么会在安装新的内容时会出现无法找到软件包问题,因为在apt-get install 安装一个新包时 先回去检查/var/lib/dpkg/info/目录下的已安装包的配置文件信息;如果发现有已经安装的应用 的配置文件信息不在info目录下 就会提示这个错误。
解决方法:直接使用sudo apt-get --reinstall installdpkg --get-selections | grep '[[:space:]]install' | cut -f1
重新安装全部软件但是会费时。