Linux(CentOS) Samba与win间共享文件夹的互访

正好最近在学习linux跟windows互访,windows访问linux共享就不多说了,架个samba服务器,配好参数应该就没问题(我目前还没成功),这篇说说linux访问windows共享。
         linux访问windows方式很多,目前我就发现4种:
1,mount -t smbfs 共享目录 挂载点 参数
确保内核支持smbfs, 在/lib/modules下搜一搜, 看看有没有smbfs.ko, 若没有的话,你就得下载FC6的内核源码,然后在配置中选中SMBFS support,然后再编译源码. 获得smbfs.ko之后, 把它加载到内核中。
2,mount -t cifs 共享目录 挂载点 参数
跟第一个相似,在FC5之后内核模块把smbfs去掉,加上cifs了,具体含义参看前一篇
3,mount -t nfs
这个具体我没试过,因为这个先要架nfs服务器,xp上不带,懒得装,据说2003 sp2才有,个人觉得这个在linux访问linux方便
4,smbclient 共享目录 参数
这个感觉像ftp的模式,只是windows这边只用共享,不需要架设服务器。
进入之后smb里面heip有很多命令,具体参照另外一篇
5,ftp这个不多说了,也是需要架设ftp服务器

以上5种方式,smbfs,cifs,smbclient在共享端只要共享就可以了,不需要架设服务器,比较方便,但是在linux端需要包含smbfs或者cifs模块或者安装smbclient;nfs和ftp这个都需要在windows端架设服务器,麻烦一些,就像windows访问linux共享,需要linux架设samba服务器一样。

 

 

 

-------------------------------------------------------------------------

1、win访问linux共享文件夹

--通过yum安装完samba后,开启smb服务

# yum install samba

# service smb start

-- 添加访问共享文件用户至samba数据库

# smbpasswd -a root  ← 将系统用户 root 加入到 Samba 用户数据库
New SMB password:  ← 输入该用户用于登录 Samba 的密码
Retype new SMB password:  ← 再次确认输入该密码
Added user centospub.

-- 修改 /etc/samba/smb.conf,共享所有文件,配置如下

-- 在文件的最后添加如下代码:

[all files]

comment = centos all file                                //共享文件夹名称

path = /                                                            //共享文件夹目录

valid users = root                                             

public = no

writable = yes

printable = no

create mask = 0777

directory mask = 0777

--修改完后,在win主机下 ( 运行 ) 输入\\192.168.1.2 (centos主机IP),输入正确的用户名和密码即可访问其共享的文件。

 

2、Linux访问win 共享文件

smbfs系统的载入:
mount -t smbfs -o codepage=cp936,username=user,password=pass,-l //ip地址/共享文件夹名 /mnt/win


smbmount -o username=root,password=123456 //192.168.1.3//共享文件名 /mnt/win
或smbmount //ip//共享文件夹 /mnt/win

 

 

---------------------------------------------

linux和windows共享文件夹的互相访问
 
从windows访问linux的文件夹要先安装samba,
1 配置共享文件夹
vi /etc/samba/smb.conf 
例子:
[filename]
path = /file
comment = file 
browseable = yes
writable = yes
 
 
2 关闭防火墙
service iptables stop     //开启防火墙  service iptables start
 
3 创建共享密码
smbpassword -a user1 
----现在就可以通过windows系统访问linux系统的文件了哦,但是有个安全问题,
只要用户知道了samba账户就相当于知道了系统的一个帐号,如果密码被破解,
就可以来攻击samba机器。我们可以采用帐号映射来解决这个问题。
 
4 账户映射
在/etc/samba/smb.conf的global settings中添加如下行
username map = /etc/samba/smbusers
smbadduser [user1](linux中账户):[user2](windows中账户)
*/etc/samba/smbuser  映射存放文件  www.2cto.com  
 
从 Linux访问Windows文件夹是非常简单的,只需键入下面的命令就可以了。
mount -t smbfs -o username=user,password=password,ip=192.168.**.** //HOSTMACHINE_NAME/Tinix /mnt/smb/Tinix
其中,username和password必须是宿主机上合法的用户名和密码,而且要有访问共享文件夹Tinix的权限。HOSTMACHINE_NAME是宿主机的计算机名称。注意,逗号之后不能有空格。
 
我们并不需要配置Samba服务器,因为我们不想从Windows中访问Linux,我们只需将Windows中的
文件夹共享,这样宿主机和 虚拟机都可以访问,我们的目的也就达到了。
 
    现在,在/mnt/smb/Tinix目录下已经能够看到Windows下的文件了。
    例如:
    在192.168.1.37 上有一个共享文件夹temp 则可以
    mount -t smbfs -o username=guanjun,password=goodguanjun //192.168.1.37/temp /mnt/cdrom/
    这样就可以访问了。
 
 
------------------------------------------
在有GUI的环境中我曾经直接访问windows共享目录,那么应该有对应的命令可以实现这个效果,搜索结果如下:
 
 
�ntOS中加载windows共享文件夹,映射到本地目录

# mount -t cifs -o username="administrator",password="" //192.168.1.101/cp     /mnt/ntfs
 
 
 
说明:

mount -t cifs -o 

username="administrator" 访问需要的用户名。

password="" 访问需要的密码(空密码)。

//192.168.1.101/cp 共享机器的IP地址,后面的cp为共享名(非cp命令)。

/mnt/ntfs 挂载的目录(共享目录被挂载到这里)。
 
 
----------------------------------------------

1 在地址栏中输入下面内容:

 

smb://Windows IP/Share folder name,smb为Server Message Block协议的简称,是一种IBM协议,运行在TCP/IP协议之上。

从Windows 95开始,Microsoft Windows都提供了Server和Client的SMB协议支持,Microsoft为Internet提供了SMB开源版本,及CIFS(Common Internet File System),通用文件系统。

 

2 将Windows的共享文件夹挂载到本地

 

在终端中输入命令mount -t cifs -o username="Admin",password="" //192.168.1.1/ShareFolder /mnt/MyShare

注意命令行中的空格和逗号,空密码也可以。

此命令就是将192.168.1.1上的共享文件夹ShareFolder 挂载到本地的/mnt/MyShare文件夹,执行完,就可在MyShare里看到ShareFolder里的内容。

 

删除挂载用命令:umount /mnt/MyShare





windows访问linux共想文件夹

1.安装samba
#yum install samba
2.修改samba配置
#ce /etc/samba
#nano smb.conf
[global]

workgroup = WORKGROUP

display charset = UTF-8

unix charset = UTF-8

dos charset = cp936


security =share  ;不需要输入密码直接访问

[share]                              共享文件夹名称
comment = share             
path = /var/spool/samba         共享位置
browseable = yes                   浏览根目录
guest ok = yes                        来宾用户访问
writable = yes                        是否能修改写入和保存

3. 启动samba和添加开机启动还有读写权限

#/etc/init.d/smb start

#chkconfig smb on

#chmod 777 /var/spool/samba

4.关闭防火墙

#nano /etc/selinux/config

#SELINUXTYPE=targeted

SELINUX=disabled

OK大功告成~~~

再 windows 运行中输入 \\CentOS 的IP地址(如:\\192.168.1.10) 回车 会看到 Share 文件里面是共享的文件

然后嘛 嘿嘿 ~~~ 在你共享目录中找 WWW 文件 里面有你想要的东西 改之前 备份一下以免出错哦~~~

有的文件无法访问或者读取之类 是应为权限不够
你要在 CentOS 中 找到这个文件并用 chmod 777 xxx 进行提升
方法如下

#cd /etc/www
www#chmod 777 xxx.php
如果不明白去网上找资料吧 我其实也是个新手 业余时间在网上找资料学习研究~~~~












自己总结的:

1、win访问linux共享文件夹

--通过yum安装完samba后,开启smb服务

# yum install samba

# service smb start

-- 添加访问共享文件用户至samba数据库

# smbpasswd -a root  ← 将系统用户 root 加入到 Samba 用户数据库
New SMB password:  ← 输入该用户用于登录 Samba 的密码
Retype new SMB password:  ← 再次确认输入该密码
Added user centospub.

-- 修改 /etc/samba/smb.conf,共享所有文件,配置如下

-- 在文件的最后添加如下代码:

[all files]

comment = centos all file                                //共享文件夹名称

path = /                                                            //共享文件夹目录

valid users = root                                             

public = no

writable = yes

printable = no

create mask = 0777

directory mask = 0777

--修改完后,在win主机下 ( 运行 ) 输入\\192.168.1.2 (centos主机IP),输入正确的用户名和密码即可访问其共享的文件。





你可能感兴趣的:(linux)