Linux和Windows互访---Samba

       作为后台开发人员,在代码开发过程中,我们开发流程一般是本地开发->同步到服务器编译->svn提交。如何在团队开发中高效处理这些步骤是个很基本的问题。通常我们的本地环境大多是Windows,通过ssh客户端远程连接到服务器,一般由于后台代码的庞大,我们的都会有自己的编译环境,如何在开发过程中及时的将代码编译,更新到版本库有很多种方法,例如有sshclient,securecrt都可以支持ftp协议进行文件传输,还有rsync for windows。但这种更新文件的方法第一需要手动进行,第二是全量更新,最后有时候会忘记更改了那些文件,只能把不确定的全部更新了。


       为了能够在Windows和unix之间进行文件的共享,支持文件的直接修改,而不是通过拷贝文件来进行更新,samba 诞生了。我们都知道unix之间可以NFS服务器来实现文件的共享,Windows之间通过CIFS,即网上邻居来进行共享,samba的诞生就是为了能够使Windows能够访问Unix的资源,包括文件,打印机等。


1、  下载及安装Samba

       推荐用yum来安装,这样它可以自己解决包的依赖关系,省时、省事又方便。一条命令搞定:  

yum -y install samba

2、  配置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



5、最后在Windows系统里,访问结果如下

   



by 雪洁 2016-03-22 01:33:49 2060 views
我来说几句

相关文章