一、什么是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.222smb1来进行访问,输入用户名smb1和密码。
7、如果已经在上面用windows登陆过samba服务器,如果用户改变了,需要我们重新登入。
进入cmd,然后输入net use查看现有连接,执行net use * /del删除所有连接。
8、如果访问samba服务器,出现您可能没有权限使用网络资源,可以暂时关掉selinux
> setenforce 0