Linux与Linux间通过什么共享文件呢——NFS,Windows与Windows之间呢——共享文件功能,那Windows与Linux之间通过samba。
代码语言:javascript复制samba:只能在内网使用,类似于windows的网络邻居(文件共享服务)
samba两个守护进程: smbd 【监听139端口,TCP端口】 负责用户验证和文件共享 nmbd 【监听137和138端口 UDP端口】 负责处理浏览共享和计算机名称解析
检查是否安装samba
代码语言:javascript复制rpm -qa|grep samba
否则,使用yum安装
代码语言:javascript复制# yum install samba
配置samba
代码语言:javascript复制# chkconfig smb on
# chkconfig nmb on
/etc/init.d/smb start
Centos7
代码语言:javascript复制systemctl enable smb.service
systemctl enable nmb.service
systemctl start smb
新建smb用户用于访问Linux共享文件
代码语言:javascript复制# useradd smb # 新建用户
# smbpasswd -a smb # 修改密码
#smbpasswd -x smb # 删除smb用户
此时/home目录会增加一个smb的用户。该Linux用户目录将可直接共享到Windows下。若要共享其它文件,按步骤3配置文件。如果不用了,删除smb用户也是可以的,
samba配置文件【/etc/samba/smb.conf】。
代码语言:javascript复制[tmp]
comment = Tmp Directories
path = /tmp # 共享的Linux目录
public = no # 目录不公开
writeable = yes # 可写
browseable = yes # 可读
valid users = smb # 访问用户,上面新建的,也可以使用原来已有的
复制去掉注释
分配权限
chown smb.smb -R /data2T/smb
或者:
chmod 777 -R /data2T/smb
让smaba通过防火墙
代码语言:javascript复制编辑 /etc/sysconfig/iptables 文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
重启防火墙
代码语言:javascript复制# /etc/rc.d/init.d/iptables restart
在Windows下使用Win R开启运行窗口,输入
代码语言:javascript复制\192.168.1.6
此时使用
代码语言:javascript复制# smbstatus
centos7
代码语言:javascript复制yum -y install samba samba-client
启动samba
代码语言:javascript复制systemctl start smb
systemctl status smb
设置开机自启动
代码语言:javascript复制# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
新建smb用户用于访问Linux共享文件
代码语言:javascript复制# useradd smb # 新建用户
# smbpasswd -a smb # 修改密码
#smbpasswd -x smb # 删除smb用户
创建需要共享的目录
代码语言:javascript复制mkdir -p /data/smb
chown smb.smb -R /data/smb
samba配置文件【/etc/samba/smb.conf】。
代码语言:javascript复制# cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
[tmp]
comment = Tmp Directories
path = /tmp # 共享的Linux目录
public = no # 目录不公开
writeable = yes # 可写
browseable = yes # 可读
valid users = smb # 访问用户,上面新建的,也可以使用原来已有的
复制去掉注释
vi /etc/samba/smb.conf
复制以下内容:
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
# max 50KB per log file, then rotate
max log size = 50
security = user
passdb backend = tdbsam
#============================ Share Definitions ==============================
[beijing]
comment = Tmp Directories
path = /data/smb
public = no
writeable = yes
browseable = yes
valid users = smb
重启服务
代码语言:javascript复制systemctl restart smb
让smaba通过防火墙
代码语言:javascript复制vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
重启防火墙服务
代码语言:javascript复制systemctl restart iptables