samba 端口_Samba安装的若干问题

29e7845a9f48c429fe36f36835b0bd44.png

在Linux上编译代码,在Windows上查看和编辑代码,是笔者比较习惯的方式。这就需要在Linux端安装samba的server,然后Windows作为client去访问Linux上的共享目录。

在server侧安装samba后,需要对"/etc/samba/smb.conf"进行修改,以添加自己需要共享给client侧的目录的路径。由于是手动修改,可能出现格式上的错误,所以改完后最好用testparm工具检查一下。

先别急着连接,因为还需要设置samba登录用户的密码(以root登录为例):

smbpasswd -a root <passwd>

按理在作为server的Linux上是不需要安装client的,但是如果有smbclient,那么可以拿来做一个自测,以确保server段的配置和运行(比如对端口的监听)都是没有问题的。

如果用smbclient自测没问题,但windows端还是无法登录这个samba server,那么很可能是被server侧的firewall阻止了。在Linux上(以Cenots-8为例)用"systemctl status firewalld"命令看一下,如果状态是"active(running)",说明防火墙确实是开启的状态。

直接粗暴地关闭防火墙当然是可以的,但对一个软件工程师来说,还是别用这种没有技术含量的手段吧。设置防火墙放行一下samba的service就可以了:

firewall-cmd --permanent --add-service=samba firewall-cmd --reload

然后,应该就可以弹出登录窗口了,输出用户名和密码,啊,终于看到了Linux共享出来的文件目录。以为就此大功告成,结果发行点击文件夹打不开……

也许是对这个文件夹的访问权限问题?可是已经是root登录了啊。别忘了还有SELinux,在server端用"getenforce"命令看一下,如果结果是"Enforcing",那对文件夹的访问很可能是被SELinux阻止了。

用"setenforce 0"关闭SELinux?可以,但并不是推荐的做法,更优雅的方式是单独添加samba对这个共享目录(假设路径为"/share")的访问允许:

semanage fcontext -a -t samba_share_t "/share/(/.*)?" restorecon /share

如果提示"semanage, command not found",那么需要先安装semanage。可是怎么知道semanage在哪个软件包里啊。去网上搜索一番,想必肯定是可以得到答案的,不过其实不用那么麻烦,yum自带这项功能,就是"yum provides"命令:

541301cc6e65a179bf3fe6f959de0e2c.png

根据找到的软件包的名称,安装之:

yum install policycoreutils-python

小结:

相比起ssh的使用,samba的联通可能遇到更多的问题,希望笔者摸过的这些坑,可以帮助你节省一些探索上的时间,早点愉快地用上samba。

参考:

PERSISTENT CHANGES: SEMANAGE FCONTEXT

How to Fix semanage command Not Found Error

原创文章,转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值