Linux下多FTPD的共存,以及突破glftpd的chroot

Linux, 技术心得 No Comments »

  新接手一台FTP Server,其上本来的FTPD为vsftpd+ncftpd,vs做前台,仅提供匿名下载,nc做后台,仅给管理员使用。nc很不稳定,效率不高,功能单薄,我准备换成glftpd。但是糟糕的是,ncftpd原来只有一个管理员账号,所有的文件都属于这个用户,而且很多文件权限不是755,甚至只有644。有root当然可以chmod和chown,但是,原来1.5T的数据,且不是高速更新的FTP,如何chown?
  glftpd安装的时候,被我装在了 /jail 下,选择了“封闭环境”安装。但是当我尝试把别处的目录mount到它下面的时候,就遇到权限的问题,不仅不能删除很多来自ncftpd的文件,甚至部分文件根本无法访问。最糟糕的是,glftpd下载的时候会写文件(我后来才知道可以关掉这个功能),每下载一次,它会把该文件的GID加一,以方便计算下载总数。
  于是我们的问题就归结成了,如何让glftpd获得UID不是100(新建用户默认值)的文件的所有权?
  翻看glftpd的文档,发现了一个本来应该不相干的内容:如何突破glftpd的chroot。我们都知道glftpd是用root启动的,但是启动后它会立刻换成较低权限的用户去运行,并且将该用户的root限定在某一个固定的目录下(在我的安装中,默认是“封闭环境”的根目录,即 /jail )有的人需要突破这种限制,比如访问上层目录下的文件。我本来想用mount解决这个问题的,但是它的步骤说明吸引了我:
Read the rest of this entry »

LilyStudio & WordPress & N.Design Studio
Entries RSS Comments RSS Log in