local_umask=0022
这个参数比较折腾,最开始是777,发现创建目录之后看不到,最终修改为0022,原来实际的值是用7777减去设置的值得到。比如上述配置,实际的值是:7755(7777-0022),如果设置不当,经常会出现一些奇怪的现象。这个具体的值,还是应该根据实际的需要进行配置,只是配置的值,需要注意。这是vsftpd配置文件中,需要注意的地方。
另外,由于要求每个用户都可以访问一个公共的目录,这里使用了一种不是非常好的方式,但是,实在不知道还有没有其他方式了。
使用mount,将某个用户的工作目录绑定到每个用户的根目录下,例如:mount --bind /home/ftpadmin /home/someuser/publicDir,把/home/ftpadmin目录绑定到/home/someuser/下的publicDir目录,绑定后的目录名为publicDir,每个用户都需要执行这样的操作,每个用户都会看到一个名为publicDir的目录,都是同样指向同一个/home/ftpadmin目录。
但是使用mount会有一个问题,就是服务一旦重启,mount的效果便会消失,因为mount是在缓存中的,于是,就修改了/etc/rc.d/rc.local文件的内容,相当于windows下的“开始”--“启动”吧,每次系统重启都会执行一次mount操作,虽然很笨,但是效果确实不错。
另外,为方便添加用户,写了一个简单的shell供管理员使用。
#!/bin/sh echo -n "Please input user name need to add:" read username echo "your input is $username" useradd -g ftpgengral -d /home/$username -s /sbin/nologin $username passwd $username mkdir /home/$username/apusic mount --bind /home/ftpadmin /home/$username/apusic echo "OK!"