我已经配置了我的 vsftpd,我想将用户限制在他们的目录中,但我得到了这个
vsftpd: refusing to run with writable root inside chroot()
所以我输入了这个命令,但我得到了它并且它起作用了
sudo chmod aw /home/to/my/dir
但现在我得到了
COMMAND:> [11/21/2012 12:01:13 AM] STOR SQLyogTunnel.php
[11/21/2012 12:01:14 AM] 553 Could not create file.
ERROR:> [11/21/2012 12:01:14 AM] Access denied.
上传文件时,请帮我解决这个问题。
感谢你
答案1
您有几种可能:
- 删除用户对主目录的写权限并创建可写的子目录
local_root=/home
在配置中设置,将 chroot 设置为 /home- 选择不同的 ftp 守护进程,例如 pure-ftpd。
在更高版本中,vsftpd 包含一个allow_writeable_chroot
指令,但是 ubuntu 附带的版本不包含该指令。
不过,你可以从 debian stable 反向移植 vsftpd(假设你使用的是 ubuntu 12.04 或 12.10):
sudo apt-get install build-essential devscripts
sudo apt-get build-dep vsftpd
mkdir ~/build
cd ~/build
wget http://ftp.de.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-1.dsc \
http://ftp.de.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2.orig.tar.xz \
http://ftp.de.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-1.debian.tar.xz
dpkg-source -x vsftpd_3.0.2-1.dsc
cd vsftpd-3.0.2
# After the following an editor will popup where you can add a
# short changelog entry such as "ported from debian unstable"
# and than save and exit
# For Ubuntu 12.04
dch -R -D precise
# For Ubuntu 12.10
dch -R -D quantal
dpkg-buildpackage -us -uc -rfakeroot
之后,您将使用以下命令安装它vsftpd_3.0.2-1build1_*.deb
:~/build
sudo dpkg -i ~/build/vsftpd_3.0.2-1build1_*.deb
此后该allow_writeable_chroot
指令应该可以起作用。