windows与Linux共享

Samba 搭建
1、  下载及安装Samba
        推荐用yum来安装,这样它可以自己解决包的依赖关系,省时、省事又方便。一条命令搞定:
        yum -y install samba


2、  配置Samba
        关于Samba的配置网上资料一大堆,可照着很多教程一步一步做下去发现最后就是用不了,郁闷至极啊。
        我的目的不是多仔细,多深入的教你Samba的好,而是教会你如何快速的可以将Samba用起来,因此安全性方面的东西考虑的不是很多。但为了照顾到大家不同档次的水平和口味,我还是尽可能的多写一些东西。
        首先,我强烈的建议大家在修改系统原有任何文件的时候一定要养成“先备份,后修改”的好习惯,相信我,这个习惯会为侬节约很多不必要浪费的时间。接下来我要做的是将/home/目录下的用户“koorey”的主目录给挖出来,供我在windows下访问。步骤如下:
       1). 备份Samba的配置文件:cp  /etc/samba/smb.conf  /etc/samba/smb.conf.bak
       2). 网上很多教程说针对/etc/samba/smb.conf文件要在[global]字段中加入下配置项:
              dos charset = GB2312 ←将Windows 客户端的文字编码设置为简体中文 GB2312
                  unix charset =GB2312 ←指定Samba所在的CentOS服务端新建文件或目录时的编码为 GB2312
                 display charset= GB2312 ←指定使用SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
                 directory mask =0777 ←指定新建目录的属性(以下4行)
                 force directorymode = 0777
                 directorysecurity mask = 0777
                 force directorysecurity mode = 0777
                 create mask =0777 ←指定新建文件的属性(以下4行)
                 force createmode = 0777
                 security mask =0777
                 force securitymode = 0777
        声明:我没有加这些配置,而且在我在共享出来的目录里添加,修改删除文件都没任何问题,还没有乱码现象。
        我在/etc/samba/smb.conf文件的末尾之添加如下字段:
        [koorey]
                comment = koorey
                path = /home/koorey
                writable = yes
        3). Linux中/etc/passwd里的用户和Samba里的用户几乎没啥关系,硬说有的话,那就是:Samba的所有用户都必须是系统里已存在的用户。我们要授权系统用户访问Samba的话,通过命令:
        smbpasswd  -a   koorey  #添加用户koorey到Samba用户数据库中
        这条命令输入完后,会提示为新建的用户koorey设置访问密码。最后再执行一下service smb restart命令就OK了。至此,Samba服务器就架设好了。不信?为啥?因为后面还有章节,哈哈,说的没错。理论上说确实已经架设好了,可千万不要忽略了Linux的安全机制的存在:iptables和selinux。其中本人就吃了selinux不少苦头。因为只弄了iptables,却忘记了selinux这个牛叉叉的家伙。关于iptables本人会在后面的博客从头到脚,从里到外,循序渐进的以此和大家交待它的来龙去脉。当然,如果你感兴趣的话。


3、  在对待iptables的问题上:
        普通青年:直接在命令行敲…
            service  iptables stop。
        文艺青年:依次在命令行敲…
            iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
            iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
            iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT
            iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT
            iptables-save
            service iptables  restart
4、  同样,在对在selinux的问题上:(这丫的把我坑惨了呀)
        普通青年:直接在命令行敲…
            setenforce 0
            vi /etc/selinux/config
        将SELINUX=enforcing改为SELINUX=disabled为开机重启后不再执行setenfore节约光阴。
       文艺青年:依次在命令行敲…
            setsebool -Psamba_enable_home_dirs on
            setsebool -Psamba_export_all_rw on
       完事儿之后再:getsebool  -a  | grep  samba一把,你懂得…






Linux 与 Linux Windows 文件共享
前提说明:
windows主机信息:192.168.1.100 帐号:abc 密码:123 共享文件夹:share
linux主机信息:192.168.1.200 帐号:def 密码:456 共享文件夹:/home/def/share


由于暂时还不会防火墙和SELINUX配置,而下面有些方法中的操作会受到他们的限制,因此先关闭这俩。
关闭防火墙的命令:service iptables stop
关闭SELINUX命令:setenforce 0


一、实现linux和windows之间的文件夹共享
方向:windows访问linux
方法1:使用第三方软件 
1、修改配置文件:vi /etc/ssh/sshd_config,主要是把Port这个参数解除注释,其他参数可以根据情况自己修改。
2、重启ssh服务:service sshd restart
3、在windows下安装SSH Secure SHELL,安装成功后有个子程序SSH Secure File Transfer Client,打开后输入:
hostname:192.168.1.200(如果有DNS服务,可以写成linux主机名)
port:22(默认值,可以修改成其他值)
username:abc(也可以是linux下其他帐号)
password:123
连接成功后就可以在windows下向linux上传和下载文件了


方法2:SAMBA共享
1、安装samba:可以先检查下是否已经安装:rpm -qa | grep samba,没有的话自己安装下,这里介绍下基于RPM包的一种在线安装模式yum
yum是一种快速安装模式,它会自动解决软件安装时的依赖问题并自动去特定的服务器下载相应的软件进行安装,命令十分简单:yum install samba,快捷方便的背后离不开程序员的辛苦啊!
2、创建共享文件夹,这里就是mkdir -m 777 /home/def/share
3、修改/etc/samba/smb.conf,这里面的参数就比较多,主要是
workgroup = WORKGROUP(这个就是windows工作组模式,还有一种是域模式)
hosts allow = 192.168.1.100(可以放问的IP地址,这里写的时windows地址)
然后在文件的结尾加上
[public](共享名,就是windows访问时会显示的名称)
comment = Public Stuff(注释)
path = /home/def/share(共享名)
public = yes(公开)
writable = yes(可写)
当然这里只是些基础的参数,还有其他的参数根据情况设置,比如会出现乱码,还要指定编码格式。
4、重启smb服务:service smb restart
5、创建samba客户:smbpasswd -a def,回车后会提示输入密码。这个就是将来远程主机登录时需要的密码,这里的def帐号必须时系统已经有的
帐号,没有的话会报错,然后新输的密码就是远程登录密码,这样做的好处就是自己的密码和远程登录的密码分开。
6、windows下连接,启动运行,输入\\192.168.1.200,输入smb帐号密码就可以了




方向:linux访问windows
方法一:挂载共享文件夹
在linux下执行 mount -o username=abc //192.168.1.100/share /mnt/share,回车后要求输入密码,就是windows密码123
老实说这种方法是很好理解的,挂载命令嘛,最简单的语法。但却是让我困惑最深的,因为linux下的分区格式是ext2\3\4,而windows一般使用NTFS格式,这是linux不能识别的,而这里竟然可以挂载,而且还能读出其中的文件。真是太匪夷所思了。


三、实现linux之间的文件夹共享
方法一:NFS挂载 
1、在A机上创建共享文件夹:mkdir -m 777 /home/share
2、修改/etc/exports文件,添加一条 /home/share *(rw),这条中/home/share指定了共享位置,*代表所有主机,也可以单独写IP地址,rw是可读写
3、重启nfs服务:service nfs restart
4、在B机上挂载:mount -t nfs 192.168.1.100:/home/share /mnt/share,回车输入帐号密码就可以了
5、最后就是在B机上验证下是否挂载成功,命令:df
方法二:使用SCP命令传输

这条命令是我昨天刚学到的,很简单的操作 scp /home/share(源) 192.168.1.200:/home/share(目的),回车后要输入密码,具体详见man scp

windows与Linux共享

windows与Linux共享