红联Linux门户
Linux帮助

使用Samba实现Windows与Linux主机之间文件共享

发布时间:2014-08-06 10:53:27来源:linux网站作者:tdyso

samba是一种可以在Linux/Unix主机上模拟windows主机的NetBIOS和CIFS/SMB实现与windows主机之间文件共享的软件。只要linux主机安装了samba,windows端借助samba可以将linux主机共享的目录文件映射为本地磁盘,linux端也可以将windows主机共享的文件挂载为本地文件系统。

 
一、linux主机共享文件让windows端访问
 
1、安装samba
 
RedHat5.8系统默认安装有samba3.0,这里使用samba3.5,先卸载samba3.0:
 
#rpm -e samba-client samba-common
 
安装samba3.5:
 
# yum -y install samba3x samba3x-client samba3x-common

 
2、添加samba用户:
 
创建用户:
#groupadd samba
#useradd -g samba smbuser1


3、创建共享目录并更改权限
mkdir /shared/test
设置文件系统访问权限
#chmod 755 /shared/test
 
更改文件属组
#chown :samba /shared/test

如果不更改属组可以使用acl授权指定用户:
 
#setfacl -m d:u:smbuser1:rw- /shared/test
 
添加用户至samba
#smbpasswd -a smbuser1
根据提示输入该用户对共享的访问密码


4、编辑samba配置文件/etc/samba/smb.conf,添加设置共享
[tools]  #定义共享别名
comment = Public Stuff    #共享注释
path = /shared/test  #共享路径
write list = smbuser1,@samba  #允许写操作的用户和组
guest ok = Yes  #允许来宾匿名查看
printable = Yes  #不隐藏


5、启动samba服务:
service smb start


6、windows端在文件管理器窗口的地址栏输入“\\172.16.15.222\tools\”,输入linux端定义的用户名和密码就可以访问linux的共享资源了。【172.16.15.222为linux主机IP,tools为linux定义的共享资源别名】
 
然后设置映射本地驱动器就可以了。


二、windown主机共享文件让linux端访问
 
windows端必须启动server服务,启用guest用户,然后共享文件并设置权限

 
linux端可以执行如下操作:
 
1、输入“smbclient”命令加“-L”参数,后跟windowns共享授权的用户名(区分大小写),然后回车,根据提示输入授权用户的密码可以查看windows的共享资源
 
2、输入“smbclient //172.16.15.3/share/ -U admin”然后输入密码可以链接到windows的共享资源
【172.16.15.3为windows主机的IP,share为windows共享的文件夹名,admin为windows授权访问共享的用户,如果不指定用户则以linux主机的root用户身份访问】
 
3、链接后输入“smbclient //172.16.15.3/share/ -U admin”然后输入密码即可以链接到windows的共享资源了
【172.16.15.3为windows主机的IP,share为windows共享的文件夹名,admin为windows授权访问共享的用户,如果不指定用户则以linux主机的root用户身份访问】
 
4、linux挂载windows的共享目录到本地(需要以root身份挂载):
#mount -t cifs //172.16.15.3/share/ /mnt -o username=admin
然后输入密码就可以挂载到本地的/mnt目录了。
挂载后可以像本地文件一样进行操作
 
5、设置自动挂载
 
编辑/etc/fstab文件设置自动挂载:
 
设备为://172.16.15.3/share/
 
挂载目录为:  /mnt
 
文件系统为: cifs
 
挂载选项为: username=USERNAME,password=PASSWORD
 
挂载选项中用户名和密码为明文存储,为防止密码泄露可以将用户名和密码保存为单独文件/etc/samba/cred.passwd,设定该文件的权限为600,属主为root。内容为:
username=USERNAME
password=PASSWORD
 
然后在挂载选项里指定保存用户名和密码的文件:credentials=/etc/samba/cred.passwd


三、samba的web控制:
 
安装samba3x-swat
 
#yum -y install samba3x-swat
 
yum安装samba3x-swat时会自动安装xinetd,xinetd是一个超级守护进程服务,支持许多服务进程
 
启动xinetd服务:
#service xinetd start
 
执行“chkconfig --list”命令可以查看xinetd支持守护的服务进程,其中就有swat,正常情况下访问samba的web控制页面的次数有限,不需要swat服务一直运行,xinetd可以代为监听swat的服务端口,并在有访问请求的时候启动swat服务,并在访问结束后停止swat服务以节省系统资源。
 
启用swat服务监听:
#chkconfig swat on
重启xinetd服务使其监听swat服务端口:
 
#service xinetd start
 
编辑/etc/xinetd.d/swat设置访问控制,只允许从指定主机或网段访问swat服务:
only_from      = 127.0.0.1 172.16.0.0/16
 
设置完成后使用浏览器访问:http://172.16.15.222:901
初次登陆要以root用户身份
然后修改配置及用户名密码

保存配置时会替换已存在的配置文件,建议提前备份。