
1、先用vi打开 vsftpd.conf vsftpd的配置文件
在Ubuntu下是
vi /etc/vsftpd.conf
在centos 下是
vi /etc/vsftpd/vsftpd.conf
这个在不同的系统下可能不同原理一样
2.找到unmsk默认是022 ,修改成你要的权限就可以了。
3.下面说下unmsk的具体含义
umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。
针对文件的x的权限代表执行,这个风险太高,所以一般权限初始赋值必须去掉x的
第一个0代表suid 丢弃的权限;(一般省略了)
第二个0代表本文件/目录拥有者什么权限都没丢弃(如果是文件,x权限除外);
第三个2代表本文件/目录的用户组丢弃了w权限(如果是文件那么它的x权限也丢弃);
第三个2代表本文件/目录的其他用户能使用的权限只有有r和x(文件除外)。
综合上面所说如果你新创建一个文件那么它的权限是:-wr-w--w-- 即是:644
如果你新创建一个目录的话那么它的权限是:dwrxw-xw-x 即是:755
4、怎么计算unmsk
1) 目录权限 rwx r-x r-x (755) 这就是目录创建缺省权限
目录权限:777 - unmsk得到的值
2) 文件权限 rw- r-- r-- (644) 这就是文件创建缺省权限
文件权限:666 - unmsk得到的值
需求1: 我记得在VSFTPD中,当你使用了ftp用户登陆默认的就是/var/ftp,因为ftp用户是vsftpd中的匿名用户,默认站点就是这个,而且已经禁锢在了这个目录中,也就是说即使你在vsftpd中使用了cd /这个命令,依然还是在/var/ftp目录中。
需求2和3可以通过以下方式完成。
随便在什么位置建立一个目录,比如你建立了/ftpuser这个目录。
在vsftpd的主配置文件中添加下面的配置语句 user_config_dir=/ftpuser (=后面就是步骤1中的目录名)
在这个目录中建立两个和本地用户同名的文件,比如user1和user2 (用vi建立最好)
分别编辑这两个文件,里面主要是设置权限,配置项有以下几种
4.1 local_root= (用来配置访问站点,比如local_root=/home/ftp/user1)
4.2 writable_enable=yes (或者no,用来配置是否有上传,删除权限)
4.3 download_enable=yes (或者no,用来配置是否有下载权限)
保存退出,重启服务就可以了。
不过,遗憾的是,上面的配置无法满足你说的user2用户登陆后,可以上传,不能删除这个要求。上面的配置项只能实现本地用户要么能上传就能删除,要么都不能。
当然,如果你要做虚拟用户的话,那么这些要求都是可以实现的。虚拟用户权限如下
1. local_root=
2. anon_world_readable_only=NO 可以浏览目录并下载
3. anon_mkdir_write_enable=YES 可以建立目录
4. anon_upload_enable=YES 可以上传
5. anon_other_write_enable=YES 可以删除,重命名
敬候高人解答。
权限什么的基本上不用管。因为这些服务可以使用本地的帐户,这样,本地的用户权限就直接应用上了。samba和vsftpd会在安装的时候建立匿名用户,这样匿名用户的权限就也有了。另外,samba中共享文件也可以在共享项目上设置权限,这个是在配置文件里面,但最终你还是必须要经过系统用户权限这一关,这是绕不过去的。
对于vsftpd,存在虚拟用户一说,但那只是验证过程,真实的权限还是与用户权限相同的,只是多个虚拟用户的权限会映射到一个统一的本地用户上。当然,也可以在配置文件中设置诸如只读,可写入等权限,但它们的等级要低于本地账户的权限。
总之一句话,只要弄对了对应的本地用户权限,你的服务权限就基本不会错了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)