一、什么是Samba?
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
实现Windows主机与Linux服务器之间的资源共享。
二、安装samba
检查是否安装samba
> rpm -qa|grpe samba
如果存在则卸载重新安装
> rpm -evh --nodeps samba-common-XXX
> rpm -evh --nodeps samba-client-XXX
安装samba
> yum install samba samba-client samba-common
samba的配置文件
/etc/samba/smb.conf
samba服务的组成
1、SMB 核心启动服务,实现文件的共享
2、NMB 负责解析用,类似DNS实现的功能
samba的启动,关闭,重启
> systemctl start/stop/restart smb.service
三、samba的配置文件
> cd /etc/samba
备份配置文件
> cp smb.conf smb.conf.bak
> vi smb.conf
#全局配置
[global]
#用来定义工作组
workgroup = test
#用来定义Windows中显示出来的计算机名称
netbios name = test
#samba服务器的说明信息
server string = my test samba server
#日志文件
log file = /var/log/samba/%m.log
#定义数据共享的方式(user,share,server,domain)
#user表示需要密码验证后才能共享数据
#share表示可以直接共享数据
security = user
map to guest = Bad User
#设定Windows中显示出来的共享目录名称
[test]
#共享目录
path = /data/test
#是否可写
writeable = yes
#是否可以在Windows工作组下看到共享文件夹
browseable = yes
#定义匿名用名是否可以登录
guest ok = yes
我们建立共享目录
> mkdir /data/test
因为需要匿名用户可以上传下载,所以设置nobody
> chown -R nobody.nobody /data/test
重启smb服务
> systemctl restart smb.service
四、通过samba客户端工具
查看samba服务器的共享资料
> smbclient -L //服务器IP -U 用户名
创建samba用户(用户必须先是系统用户)
> useradd test
> pdbedit -a test
删除samba用户
> pdbedit -x test
查看共享资料
> smbclient -L //192.168.116.222/test -U test
登陆samba服务器
> smbclient //192.168.116.222/test -U test
五、配置授权登录samba服务的用户
1、添加一个系统用户
> useradd -d /data/smb1 -s /sbin/nonlogin smb1
2、创建samba登录用户(smbpasswd是通过读取/etc/passwd中存在的用户名,来设置密码)
> smbpasswd -a smb1
3、然后输入密码,确认密码等
4、配置smb.conf文件
[global]
workgroup = test
netbios name = test
server string = my test samba server
log file = /var/log/samba/%m.log
#日志大小
max log size = 50
security = user
#设定用户密码是否加密
encrypt passwords = yes
#samba的密码文件
smb passwd file = /etc/samba/smbpasswd
[smb1]
path = /data/smb1
#注释说明
comment = this is smb1
#可访问的用户
valid users = smb1
#客户端创建文件的默认权限
create mask = 664
#客户端创建目录的默认权限
directory mask = 775
writeable = yes
browseable = yes
5、重启samba服务器
6、在Windows上通过\\192.168.1.222\smb1来进行访问,输入用户名smb1和密码。
7、如果已经在上面用windows登陆过samba服务器,如果用户改变了,需要我们重新登入。
进入cmd,然后输入net use查看现有连接,执行net use * /del删除所有连接。
8、如果访问samba服务器,出现您可能没有权限使用网络资源,可以暂时关掉selinux
> setenforce 0