一般来说我们都是通过虚拟机(vmware)安装Linux操作系统来进行嵌入式设备的开发,这就涉及到虚拟机和Windows系统之间的文件传输问题,我们可以使用U盘、Vmware Tools建立共享文件夹、使用ftp协议等方式进行文件传输,这里我总结一下linux下搭建ftp的一般方法。
下载并安装VSFTPD
对于使用ubuntu或者debian的操作系统我们可以使用apt-get命令进行安装vsftpd软件,代码如下:
apt-get install vsftpd
如果没有网络或者使用的不是debian版本的系统,我们可以百度下载deb包,然后安装,安装代码如下所示:
dpkg –i vsftpd_2.0.5-2_i386.deb
配置vsftpd.conf
在我们安装完vsftpd软件后,我们需要对这个软件进行配置,配置文件路径是:/etc/vsftpd.conf 然后使用vim /etc/vsftpd.conf修改配置脚本,第一行的“#”号表示注释,如果我们想用某行的属性,那么我们要把他的“#”去掉,要设置的内容如下所示:
listen=YES #设置单独监听
local_enable=YES #允许本机用户登录
write_enable=YES #使用者拥有写入权限,包括删除和修改
local_umask=022 #设置默认文件访问属性(rwx-rwx-rwx 对应于777)
anonymous_enable=YES #允许匿名登录
anon_upload_enable=YES #允许匿名用户有上传文件的权限
anon_mkdir_write_enable=YES #允许匿名用户有信件文件夹的权限
dirmessage_enable=YES #当用户进入特定目录时给定具体信息
anon_other_write_enable=YES #允许匿名用户具有创建目录、上存意外的权限,如重命名和删除,默认没有这项,要自己拷贝进配置文件中
xferlog_enable=YES #使用日志文件
connect_from_port_20=YES #FTP使用20端口连接
xferlog_file=/var/log/vsftpd.log #指定日志文件路径
data_session_timeout=600 #600秒没有动作则强制退出
最后我们在配置文件添加默认的登录到ftp后的根目录路径:
anon_root=/home/embed/ftp #根据自己的目录所在地进行设置
local_root=/home/embed/ftp #我自己创建了ftp目录在embed用户目录下
如果没有创建ftp要是用的目录的话,可以通过以下方法设置:
cd /home/embed
cd /home/embed
mkdir ftp
sudo chmod -w ftp #注意,一定要把ftp目录的写属性去掉,vsftpd规定为了防止安全漏洞,ftp的根目录不具有写权限,不然就等死吧- -
cd ftp
mkdir upload
mkdir download
chmod -R 772 upload #upload目录只有写权限(只能上传)
chmod -R 774 download #download目录只有读权限(只能下载)
chown ftp:ftp /home/embed/ftp #将ftp目录的文件属主和所属组改成ftp, chown 所属用户:所属组 目录
重启VSFTPD服务
/etc/init.d/vsftpd stop #关闭ftp服务
/etc/init.d/vsftpd start #开启ftp服务
如果想禁用某些用户登录ftp可以再/etc/vsftpd.conf中配置某些行,然后将禁止登录的用户添加到/etc/ftpuser文件中。