samba文件共享相关要点

配置文件

共享配置文件在/etc/samba/smb.conf,修改此文件后可以用testparm来测试配置书写是否正确。

samba账户

samba会自己管理一组用户信息,但这些用户依赖于系统层面上的用户账户。如果创建了share这个samba用户,那么要保证linux系统本身也存在share用户,但双方的密码可以设置不同的内容。
添加samba用户指令:smbpasswd -a [user_name]
列出已有的samba用户:pdbedit -L
删除samba用户:smbpasswd -x [user_name]

可能影响samba的安全组件

主要有防火墙和selinux,防火墙根据linux系统不同可能有firewalld和iptables,两者并非互斥关系,如centos虽然用firewalld作为防火墙,但同时也有iptables规则表控制网络包传递(这种情况下只有作为防火墙的firewalld会对samba构成妨碍)。

以centos为例,防火墙部分可以选择直接关闭:
systemctl stop firewalld
chkconfig firewalld off
也可以选择添加放行规则:
firewall-cmd --list-services 检查允许的服务
firewall-cmd --permanent --add-service=samba  添加允许samba服务
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 destination address=****/** accept'
firewall-cmd --reload  重载规则

selinux策略添加比较麻烦,直接取消强制性:
修改/etc/selinux/config,设置SELINUX=permissive,下次登录生效。命令行setenforce 0,本次登录实时生效。 默认情况下selinux会妨碍共享根目录时windows端的写入。

linux系统之间共享

共享内容提供方配置好共享路径后,内容获取方可以创建远程挂载来访问这些路径。挂载方式为cifs,需要安装有cifs-utils软件包。
挂载指令:mount -t cifs //[server_ip]/[share_name] [local_path] -o username=[samba_user] -o password=[samba_user_password]

linux向windows共享

注意linux端必须增加ntlm协议支持,具体是在/etc/samba/smb.conf的[global]端增加 ntlm auth = yes 选项,否则windows7访问用户会认证失败。

windows端可以直接用\\[server_ip]\[share_name]来临时访问共享内容,或者映射网络驱动器用以长期访问,不建议使用添加网络位置的方式,效果上和映射网络驱动器一样,但速度可能较慢。

断开已建立的用户连接

windows端:在cmd中net use * /del
linux端:smbstatus查看连接pid号,直接kill -9杀掉

让共享内容提供方支持软链接

在smb.conf的global端添加
follow symlinks = yes
wide links = yes
unix extensions = no
这样提供方在自己的共享路径下创建指向非共享路径的内容的软链接,内容获取方将看到软链接实际指向的源内容而非软链接本身。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容