Samba 是 SMB/CIFS 网络协议的重新实现, 可以在 Linux 和 Windows 系统间进行文件、打印机共享,和 NFS 的功能类似。
一、安装(基于源码安装 && yum 安装)
注:基于源码安装,虽然操作上难度增加,但是我们可以灵活的对服务的路径等进行设置。
基于源码安装
1、安装编译环境
1 | yum install -y gcc gcc-c++ glibc kernel-headers python-devel |
2、下载源码并解压
去官网找:
1 | wget https://download.samba.org/pub/samba/stable/samba-4.9.5.tar.gz |
3、进入到解压文件夹里面,进行系统环境检查和编译安装
1 | ./configure --prefix=/usr/local/samba |
注:–prefix选项是指定安装后的文件路径
4、关于/usr/local/samba/sbin里面相关说明
- smbd:SMB服务器,为客户机如Windows等提供文件和打印服务
- nmbd:NetBIOS名字服务器,可以提供浏览支持
- smbclient:SMB客户程序,类似于FTP程序,用以从Linux或其他操作系统上访问SMB服务器上的资源
- smbmount:SMB挂载工具,卸载为smbmount
- smbpasswd:用户增删登陆服务端的用户和密码
5、修改链接库文件
配置动态链接库文件,因为运行samba的进行smbd和nmbd需要用到目录/usr/local/samba/lib下的动态链接库文件,但是该目录不是系统默认的动态连接搜索路径,于是我们需要将该目录添加到文件ld.so.conf中。
然后进行更新
1 | ldconfig |
6、创建用于特定用户访问的指定目录,并修改此目录的所属用户和组
创建用户目录并设置允许的用户名和密码,认证方式为系统用户认证,要添加的用户需要在/etc/passwd中存在,也就是说我们先创建一个系统用户,比如:
1 | useradd test1 |
然后加入到samba用户组中
1 | /usr/local/samba/bin/smbpasswd -a test1 |
如果需要查看当前samba用户成员,可以用:
1 | pdbedit -L |
然后修改共享目录所属的用户以及权限
注:如果需要查看selinux有关samba的设置,可用:
1 | getsebool -a | grep samba |
7、启动服务
1 | /usr/local/samba/sbin/smbd |
8、关闭防火墙或者放行
1 | systemctl stop firewalld.service |
9、确定启动
1 | lsof -l |
10、检测
基于yum源安装
1、安装
1 | yum install -y samba samba-client cifs-utils |
2、配置相关文件
3、centos 7以后需要对selinux进行设置
1 | chcon -t samba_share_t [共享的目录] |
4、添加samba用户和密码,修改相应的权限
这里用的是samba管理成员的工具
1 | useradd test1 |
5、启动服务
1 | systemctl enable smb nmb |
6、放行防火墙
1 | firewall-cmd --permanent --add-service=samba |