分类: LINUX
2009-04-04 00:43:23
最近几天一直在做一个ftp服务器,单台ibm服务器做配置,系统redhat5,使用vsftp,挂载共享做存储,存储电脑是一台windowxp系统,共享目录share,挂载目录为/home/web/doc/share.
这台服务器所做的是:为全国各省体彩中心开放一个ftp用户来上传体彩视频,配置好一个web,来查看和这些视频。我先做apache+tomcat服务器,将web主目录开放到/home/web/doc目录下面,其中/home/web是web用户的主目录,各个web文件均放在/home/web/doc目录之下,/home/web/doc/share网络共享空间的挂载点,要把所有的各省ftp用户都开到这个目录下,以便web网站能很好的访问各省市的视频。
先用以下就行挂载:
mount -t cifs -o username=administrator,password= //192.168.1.229/share /home/web/doc/share
在这里 mount -t cifs 参数挂载时候遇到问题,因为redhat以前的版本挂载网络共享文件的命令为smbmount或者mount -t smbfs,而到了redhat5以后,命令更改为了mount -t cifs,一个值得注意的地方。
挂载之后创建各省市的,useradd,指定用户组users。
因为要求是各省市用户均锁定在自己主目录中,因此必须要把ftp用户登录目录到share大网络共享目录中。
在/home/web/doc/share中创建与各省市用户名称一样的目录,更改为可执行权限,使得web用户对其各个ftp的视频有访问权限,然后用usermod更改ftp用户的目录到/home/web/doc/share下面。
所有做好之后做测试,用ftp客户端登录后,发现上传中文文件时候怎么也无法上传,在网上搜索也没有相关的问题文章,后来无意间看到了iocharset参数,这个东西就是挂载时候的语言设置,于是将挂载命令更改为:
mount -t cifs -o iocharset=gb2312,username=administrator,password= //192.168.1.229/share /home/web/doc/share
问题。
注意参数-o iocharset=gb2312,username=administrator,password= 中,password=后面是两个空格,第一个空格代表windows共享用户的密码为空,第二空格是命令中的空格,如果windows的访问密码为123的话,那么这个参数就是password=123空格
第二天又出现了一个问题,我通过网上邻居向共享空间里的其中的一个ftp用户目录下面考了一些东西,然后通过这个用户进行ftp下载,报以下错误:426 Failure writing network stream
通过google得知,在vsftp1.1.3以上版本有这么一个参数:use_sendfile,经查找,得知其含义为:一个内部设定,用来测试在你的平台上使用sendfile()系统呼叫的相关好处(benefit)。不明白其中的含义,只要将其设置为:use_sendfile=NO即可。