Centos7 环境安装 samba 服务
1、解压、编译、安装
1 2 3 4 5 6 |
tar -zxvf samba-4.4.0.tar.gz cd samba-4.4.0 ./configure --prefix=/usr/local/samba/ make make install |
2、配置 smb.conf,比较关键的一步
安装目录下有很多 smb.conf 的例子,但/usr/local/samba/lib 下却没有,所以必须 copy.
也可以用链接的方法:
创建配置文件
1 2 3 |
mkdir /usr/local/samba/etc vim /usr/local/samba/etc/smb.conf |
编辑完配置文件后,保存。
1 2 |
ln –s /usr/local/samba/etc/smb.conf /usr/local/samba/lib/smb.conf |
3、配置 smb.conf
1 2 |
#vim smb.conf |
检查 smb.conf 配置语法是否错误和设置是否成功
1 2 |
#/usr/local/samba/bin/testparm |
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
map to guest = Bad Password
passdb backend = tdbsam
load printers = yes
cups options = raw
[html]
path = /var/www/html/
public = yes
writable = yes
4、增加 smb 用户
比如有一个用户名是 kitty,那么:
此用户必须为 linux 实际用户,如不存在使用 useradd 命令
1 2 |
/usr/local/samba/bin/smbpasswd -a fhy |
就把 fhy 增加为 smb 用户了。
5、启动 smb 服务
1 2 3 |
#/usr/local/samba/sbin/smbd -D #/usr/local/samba/sbin/nmbd -D |
6、设为开机启动
1 2 |
vim /etc/rc.d/rc.local |
加入 并设为可执行
1 2 3 4 5 |
#!/bin/bash /usr/local/samba/sbin/smbd -D /usr/local/samba/sbin/winbindd -D /usr/local/samba/sbin/nmbd -D |
添加防火墙规则
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# firewall-cmd --zone=public --add-port=137/udp --permanent success [root@localhost ~]# firewall-cmd --zone=public --add-port=138/udp --permanent success [root@localhost ~]# firewall-cmd --zone=public --add-port=139/tcp --permanent success [root@localhost ~]# firewall-cmd --zone=public --add-port=445/tcp --permanent success [root@localhost ~]# firewall-cmd --reload |
备注
passdb backend = tdbsam passdb backend 即用户后台。
有三种后台:smbpasswd、tdbsam 和 ldapsam。
Sam 即 security account manager
1.smbpasswd:该方式是使用 smb 工具 smbpasswd 给系统用户(真实用户或者虚拟用户)设置一个 Samba 密码,客户端就用此密码访问 Samba 资源。smbpasswd 在/etc/samba 中,有时需要手工创建该文件。
2.tdbsam:使用数据库文件创建用户数据库。数据库文件叫 passdb.tdb,在/etc/samba 中。passdb.tdb 用户数据库可使用 smbpasswd –a 创建 Samba 用户,要创建的 Samba 用户必须先是系统用户。也可使用 pdbedit 创建 Samba 账户。
pdbedit 参数很多,列出几个主要的:
pdbedit –a username:新建 Samba 账户。
pdbedit –x username:删除 Samba 账户。
pdbedit –L:列出 Samba 用户列表,读取 passdb.tdb 数据库文件。
pdbedit –Lv:列出 Samba 用户列表详细信息。
pdbedit –c “[D]” –u username:暂停该 Samba 用户账号。
pdbedit –c “[]” –u username:恢复该 Samba 用户账号。
3.ldapsam:基于 LDAP 账户管理方式验证用户。首先要建立 LDAP 服务,设置”passdb backend = ldapsam:ldap://LDAP Server”