1、关于Samba
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通。
使用端口139,445
2、安装Samba
1)CentOS下yum安装配置Samba
yum install samba -y
2)设置samba服务开机启动
systemctl enable smb
3)启动&&重启服samba服务
systemctl start smb
systemctl restart smb
4)防火墙设置(可选)
开放端口
iptables -I INPUT -p udp --dport 137 -j ACCEPT
iptables -I INPUT -p udp --dport 138 -j ACCEPT
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
centos7:
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
3、配置Samba
3.1 新建用户samba
useradd samba
3.2 设置samba用户密码
passwd samba
3.3 将samba加入到Samba用户数据库
smbpasswd -a samba windows访问samba共享目录时需要输入此用户名和密码
3.4 设置目录访问权限
mkdir /data1/samba
chown -R samba:samba /data1/samba
4、samba配置-global
[global]
workgroup = WORKGROUP #设定 Samba Server 所要加入的工作组或者域。
server string = Samba Server Version %v #设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 #设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
hosts allow = 127. 192.168.1. 192.168.10.1 #表示允许连接到Samba Server的客户端,多个参数以空格隔开。hosts deny 与hosts allow 刚好相反。 hosts allow=172.17.2.0/255.255.0.0 表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
log file = /var/log/samba/log.%m #设置Samba Server日志文件的存储位置以及日志文件名称。
security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
设置共享参数
[共享名]
comment = 任意字符串 #comment是对该共享的描述,可以是任意字符串。
path = 共享目录路径
browseable = yes/no # browseable用来指定该共享是否可以浏览。no另外可以代表是隐藏功能
writable = yes/no #writable用来指定该共享路径是否可写。
write list = a,b,c #可写的用户
available = yes/no # available用来指定该共享资源是否可用。
valid users = 允许访问该共享的用户 #valid users用来指定允许访问该共享资源的用户。
例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
invalid users = 禁止访问该共享的用户 # invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
public = yes/no # public用来指定该共享是否允许guest账户访问。
readonly = yes # 只读
hosts deny = 192.168.0. #表示禁止所有来自192.168.0.0/24网段的IP地址访问
hosts allow = 192.168.0.24 #表示允许192.168.0.24这个IP地址访问
结合EXCEPT使用
hosts deny = All 表示所有客户端,不允许访问
testparm -v -s | grep usershare 检查
举例配置
mkdir /data1/
useradd samba
passwd samba
smbpasswd -a samba
chown -R samba:samba /data1/
#添加配置/etc/samba/smb.conf
#最后添加
[common]
path = /data1/samba
writable = yes
browseable = yes
public = yes
samba登录
windows 登录:
\\192.168.37.129\common
Linux登录Samba服务器
安装Samba客户端
yum install samba-client -y
smbpasswd -a root
设置密码
#查看Samba有哪些共享目录
smbclient -L //192.168.14.49/
#Linux登录
smbclient //192.168.14.49/liyuan
#指定账户登录
smbclient -U samba //192.168.14.49/liyuan
5、Samba挂载
安装相关包
yum install cifs-* -y
cifs:选项是Samba文件类型
挂载
mount -t cifs -o username=samba //192.168.14.49/liyuan /tmp/mountp/
mount -t cifs -o username=samba,password=redhat //192.168.14.49/liyuan /tmp/liyuan #-o 指定用户登录
/etc/fstab配置
//192.168.202.136/practice /mnt/practice cifs defaults,sec=ntlmssp,multiuser,username=alice,password=redhat 0 0
//192.168.202.136/practice /mnt/practice cifs defaults 0 0
5、samba配置举例
5.1 例1
一、安装samaba
yum install samba samba-client samba-common -y
三、设置开机启动
chkconfig smb on
四、设置匿名共享目录
注意以下几点:
全局中的security选项
和局部选项public
打开配置文件
vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
#security = user
security = user #表示登录Samba的时候需要账号,改成share说明登录的时候不需要账号
passdb backend = tdbsam
load printers = no
cups options = raw
[common]
path = /common
writable = yes
browseable = yes
public = yes #表示访问这个文件夹时所需要的权限,默认需要账号登录
五、设置用户登录
设置登录账户名密码
useradd test
smbpassword -a test
创建文件夹
mkdir /user_login
设置权限
chmod o+w /user_login/
vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
#security = user
security = share #表示登录Samba的时候需要账号,改成share说明登录的时候不需要账号
passdb backend = tdbsam
load printers = no
cups options = raw
[common]
path = /common
writable = yes
browseable = yes
public = yes #表示访问这个文件夹时所需要的权限,默认需要账号登录
[user_login]
path = /user_login
browseable = yes
write list = test ###如果不指定public,就需要用账户密码进行登录。write list=test,说明只有test这个账户可以写,其他账户不可以写。writeable = yes不要加进去
六、共享目录针对网段进行限制
[common]
path = /common
writable = yes
browseable = yes
public = yes
hosts allow = 192.168.0. #192.168.0这个网段可以进行访问
[common]
path = /common
writable = yes
browseable = yes
public = yes
hosts deny = 192.168.0. #192.168.0这个网段不可以进行访问