当前位置: 首页 > 科技观察

Linux上如何安装Samba

时间:2023-03-13 02:20:03 科技观察

本文转载自微信公众号《Linux开发那些事》,作者LinuxThings。转载本文请联系Linux开发那些事儿公众号。Linux开发通常是在Windows上进行编码,然后将文件转移到Linux上进行编译。当项目有点大或者多人同时开发时,整个过程会变得很繁琐。如果有工具可以实现,只需编写代码并实时同步到Linux即可。这个问题的一个很好的解决方案是samba,这是一个由澳大利亚国立大学的学生开发的免费开源软件,它允许在Windows和Linux系统之间简单轻松地共享文件。它可以为选中的Linux目录(包括所有子目录)创建一个网络共享,这样Windows用户就可以像在普通Windows下访问文件夹一样通过网络访问这些Linux目录。下面将详细介绍samba服务器的安装配置过程安装使用以下命令安装yuminstallsambasamba-commonsamba-client安装完成后执行smbd-V命令输出samba服务器的版本信息,表示安装成功[root@cghost21~]#smbd-VVersion4.10.16serverconfigurationsambaserver安装完成之后需要调整server的一些配置参数。配置文件默认位于/etc/samba/smb.conf。修改前,可以先备份原配置文件。[root@cghost21~]#cp/etc/samba/smb.conf/etc/samba/smb.conf.bak如果smb.conf的一行以“#”或“;”开头,则表示这一行是一个comment新建Linux用户添加新用户并设置密码[root@cghost21~]#useraddsmbusr1-s/sbin/nologin[root@cghost21~]#passwdsmbusr1注意:这里添加的用户smbusr1只是用来创建sambalogin用户,因为在新建samba用户的时候,需要保证有同名的linux用户存在,并且设置了密码,否则会新建samba用户失败。因为用户smbusr1只是用来创建新的samba用户,所以,在创建新用户的时候,加上-s/sbin/nologin,表示禁止该用户登录linux系统。这也是为了安全。考虑新建一个samba用户,执行以下命令,新建一个samba用户smbusr1,并设置密码[root@cghost21home]#smbpasswd-asmbusr1NewSMBpassword:RetypenewSMBpassword:Addedusersmbusr1。添加用户共享目录为samba用户smbusr1新建一个共享目录,并赋予该目录权限[root@cghost21home]#mkdir-p/samba/smbusr1[root@cghost21home]#chown-Rsmbusr1:smbusr1/samba/smbusr1配置smb.confsamba服务器有很多可配置项,这里只介绍一些常用的配置项,更多配置项请参考tosmb.conf.org#Globalconfiguration[global]#sambaworkgroupworkgroup=mygroup#服务器的描述字符串,%V表??示服务器的版本号serverstring=smbserver%V#安全模式,user表示需要认证安全=user#samba服务器名,最多15个字符netbiosname=myserver#拒绝非法用户登录maptoguest=baduser#samba服务器日志logfile=/var/log/samba/smblog#服务器日志的最大大小,单位:KB#服务器会定期检查大小,如果超过,它会重命名文件并添加.old扩展名#0表示没有限制maxlogsize=10000[smbusr1]#smbusr1用户的共享目录path=/samba/smbusr1#forbidanonymousaccesspublic=no#writablewritable=yes#目录可写用户组writelist=@smbusr1#访问目录用户validusers=smbusr1修改配置后,执行testparm命令查看smb.conf的语法错误[root@cghost21home]#testparmLoadsmbconfigfilesfrom/etc/samba/smb.confLoadedservicesfileOK.Serverrole:ROLE_STANDALONEPressentertoseeeadumpofyourservicedefinitions从上面的结果看,我们可以看到smb.conf中没有语法错误。samba服务器启动后,默认会监听139和445端口。您可以使用以下命令查看samba服务器监听的端口[root@cghost21home]#netstat-an4p|grepsmbd|grepLISTENtcp000.0.0.0:1390.0.0.0:*LISTEN23370/smbdtcp000。0.0.0:4450.0.0.0:*LISTEN23370/smbd如果samba服务器所在机器开启了防火墙服务,需要打开139和445端口,然后重启防火墙服务[root@localhost~]#firewall-cmd--zone=public--add-port=139/tcp--permanentsuccess[root@localhost~]#firewall-cmd--zone=public--add-port=445/tcp--permanentsuccess[root@localhost~]#systemctlrestartfirewalldstartsamba经过以上步骤,服务器终于启动了samba服务器[root@cghost21home]#systemctlstartsmbclientconfigurationsambaclient的配置也很简单,从Linux映射一个网盘到Windows,就可以了貌似windows多了一个盘,但是这个盘对应的是网络上linux机器中的一个目录。向该磁盘写入数据相当于向Linux目录写入数据。1、打开我的电脑,点击映射网络驱动器,然后输入Linux输入共享文件夹的地址,点击完成,如下图2、输入之前的samba用户名和密码(samba用户名和密码有3.samba服务器验证用户名和密码成功后Windows会进入共享文件夹,这个文件夹看起来像硬盘的盘符视窗。请看下图。至此,共享目录在Linux机器上的Windows映射就完成了。接下来,你可以使用Windows向网盘写入数据,写入的数据会实时同步到Linux机器的共享目录/samba/smbusr1中。常见问题在配置samba服务器和客户端的过程中,或多或少都会遇到一些问题。下面列出几种常见的错误错误1检查smb.conf中是否没有配置相应的用户访问配置,或者相应的samba用户不存在错误2Windows在同一台远程机器上本地映射了一个网络驱动器,需要断开之前的连接一前映射新错误3共享目录权限设置问题,需要修改共享目录/samba/smbusr2的权限总结Linux服务器通常没有图形界面,使用起来不如Windows简单直观。samba服务器实现了将Linux命令行转换为Windows图形界面的操作,极大的方便了Linux的开发,提高了开发效率,配合版本管理工具SVN,samba也非常适合个人学习和小伙伴之间的协作开发团队