前段时间由于需要测试程序在Linux FTP下的运行情况,特意搭建了一个Linux 环境 艰难的部署了一个FTP服务
Ubuntu 装 vsftpd 命令:
sudo apt-get install vsftpd
sudo apt-get install package --reinstall 重新安装包
开启、停止、重启vsftpd服务也很简单:
service vsftpd restart
service vsftpd start | stop | restart
新安装的vsftpd默认是可以匿名访问,如果只想给某一个用户专门访问某一目录下的权限,则需要修改vsftpd的配置
创建一个专门用来访问的用户,例如叫“ftpuser”:
mkdir -p /home/ftpfile
sudo useradd -g ftp -d /home/ftpfile -M ftpuser // 删除用户命令 sudo userdel ftpuser
设置密码:
sudo passwd ftpuser
修改vsftpd的配置文件“vi /etc/vsftpd.conf”:
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#可以上传
write_enable=YES
local_umask=022
#启用在chroot_list_file的用户只能访问根目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp
在/etc/vsftpd.chroot_list添加受访问目录限制的用户:
vi/etc/vsftpd.chroot_list
“500 OOPS: vsftpd: refusing to run with writable rootinside chroot()”
意思是不能使用chroot限制可写的根目录,看了下vsftpd的更新日志,在最新的vsftp版本中
Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.
启用了chroot的话,根目录要设置为不可写
chmod a-w /home/ftpfile
那么用户登陆FTP就可以访问到ftpfile下的东西,但是没法去上传文件。如果把ftpfile文件夹设置成777权限,那么FTP就登陆不上去。
所以 在ftpfile文件夹下再创建一个文件夹“/home/ftpfile/zbfile”,将zbfile设置成777就可以了,那么以后上传东西就上传到zbfile里。
重启vsftpd之后就可以使用上面新创建的账号访问。
或者在 etc/vsftpd.confg 中添加allow_writeable_chroot=YES,在将文件夹权限修改成 chmod -R 777 ftpfile
时间久了没整理 都忘的差不多了。