需求:最近要开发某系统前端界面,但是该系统是部署在linux服务器上,前端是用php开发,实时调试运行需要linux下系统环境支持,每次修改都需要手动传到服务器上,尤其是debug阶段,每修改一点就要传一次,甚是麻烦,一开始使用subversion,比手动上传是简单点,后来采用UltraEdit的ftp远程编辑,但除了编辑功能外,其他功能都没了,不够用;于是考虑是否将服务器上的指定目录映射到win7本地,然后借助ultraEdit的强大编辑能力进行远程编辑,继而直接在浏览器端输出进行调试,采用samba,要解决对指定目录以指定用户指定权限进行读写操作。
环境:Ubuntu server 12.04.2 X86_64
需要共享的目录是/opt/zlgci 目录的用户和群组分别是 zlgci:root
新建目录默认是drwxr-xr-x 755 文件是-rw-r--r-- 644
强制远程也是使用zlgci:root对目录进行读写
首先当然是要安装samba了,呵呵:
sudoapt-get installsamba smbfs -y
====================================================
假设你要共享的文件夹为: /home/ray/share
首先创建这个文件夹
mkdir/home/ray/share chmod777 /home/ray/share
====================================================
备份并编辑smb.conf允许网络用户访问
sudocp/etc/samba/smb.conf /etc/samba/smb.conf_backup sudogedit /etc/samba/smb.conf
添加如下代码:
security = user username map = /etc/samba/smbusers [Share] comment = Shared Folder fordebug inremote win client netbios name=zlgciserver path=/opt/zlgci valid users=zlgci create mask=0644 directory mask=0755 force user=zlgci force group=root public=yes writable=yes browseable=yes available=yes
粗略的解释一下,1,2行需要添加在[global]那一节里面,是启用user认证机制
5行是注释,6行是在win端网络邻居能够查看到的名字
7行是要共享的目录,
8行是能够访问该共享的用户,可用通配符
9,10行是新建文件目录时的权限
11,12行表示进行读写时映射到服务器端对应的用户和用户组----很关键
14行表示可写,15行表示可以浏览。
找到[global]把 workgroup = MSHOME 改成workgroup = WORKGROUP
就是改为跟你的win在同一个工作组
--------------------------------------------------------------------------------------------------------------
现在要添加newsfan这个网络访问帐户。如果系统中当前没有这个帐户,那么
代码: sudo useradd newsfan
要注意,上面只是增加了newsfan这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。
现在要新增网络使用者的帐号:
代码: sudo smbpasswd -a newsfan
更改newsfan的网络访问密码也是一样,删除网络使用者的帐号的命令把上面的 -a 改成 -x
sudo gedit /etc/samba/smbusers
在新建立的文件内加入下面这一行并保存
代码: newsfan = "network username"
======================================
这里是指定用户访问,因而无需新建用户,直接修改对应用户在samba的密码
sudosmbpasswd -a zlgci sudotestparm sudo/etc/init.d/smbdrestart
第一行执行后两次输入密码,
第二行是验证samba的配置文件是否正确。
最后退出重新登录或者重新启动一下机器。
在win端访问,两种方式,一种是直接在运行框中输入
\\xx.xx.xx.xx
第二种是映射网络驱动器,点开我的电脑,在中间部分点击映射网络驱动器后,弹出的框中输入
\\xx.xx.xx.xx\share