永发信息网

如何通过arm上传数据到远方的FTP服务器

答案:1  悬赏:80  手机版
解决时间 2021-02-22 00:39
  • 提问者网友:沦陷
  • 2021-02-21 18:01
如何通过arm上传数据到远方的FTP服务器
最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-02-21 18:13
ftp移植(默认端口号21)
  一、下载软件包:vsftpd-2.1.2.tar.gz,解压(tar –zxvf vsftpd-2.1.2.tar.gz)
  二、交叉编译:
  1、 修改Makefile:修改CC=gcc为CC=arm-linux-gcc
  2、 修改vsf_findlibs.sh文件,去掉#Look for libcap部分,因为源码版本的不同,语句可能不同,2.1.2版本去掉的代码如下:
  # Look for libcap (capabilities)
  #if locate_library /lib/libcap.so.1; then
  # echo “/lib/libcap.so.1”;
  #elif locate_library /lib/libcap.so.2; then
  # echo “/lib/libcap.so.2”;
  #else
  # locate_library /usr/lib/libcap.so && echo “-lcap”;
  # locate_library /lib/libcap.so && echo “-lcap”;
  #fi
  3、#make,之后会生成几个可执行文件,其中vsftpd就是我们需要的,查看vsftpd的类型
  #file vsftpd
  #arm-linux-readelf –d vsftpd,查看vsftpd文件的依赖库
  拷贝相应库到板子的/usr/lib目录下(此步骤可省略不添加库时运行也正常)
  三、文件下载和配置:
  1、将vsftpd拷贝到/usr/sbin目录下
  2、 拷贝vsftpd.conf到/etc目录下,修改配置如下:
  anonymous_enable=YES //允许匿名用户
  local_enable=YES //本地访问
  write_enable=YES //可修改
  local_umask=077 //创建的文件权限
  anon_upload_enable=YES //允许匿名用户上传
  anon_mkdir_write_enable=YES //可创建文件夹和修改文件夹内的文件
  dirmessage_enable=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  xferlog_std_format=YES
  pam_service_name=vsftpd //服务名称
  ftp_username=ftp
  no_anon_password=YES //匿名用户登录不需要密码
  anon_root=/home/ftp //匿名用户根目录
  anon_world_readable_only=YES
  tcp_wrappers=NO
  3、创建用户,可根据需要创建和设置用户权限
  4、 创建文件夹:
  i. mkdir /var/ftp
  ii. mkdir /var/ftp/pub
  iii. chmod 777 /var/ftp/pub
  注:所有的都必须跟/etc/vsftpd.conf中的完全一致才行
  5、与配置相关的:
  /usr/sbin/vsftpd ---- VSFTPD的主程序(必需)
  /etc/rc.d/init.d/vsftpd ---- 启动脚本
  /etc/vsftpd.conf ---- 主配置文件(必需)
  /etc/pam.d/vsftpd ---- PAM认证文件
  /etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
  /etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件(如果在配置文 件中指定了,则不能用匿名用户登录)
  /etc/userconf ------ 指定用户个人配置文件所在的目录
  /var/ftp ---- 匿名用户主目录
  /var/ftp/pub---- 匿名用户的上传目录
  /var/log/vsftpd.log ------- 日志文件
  除vsftpd、vsftpd.conf两个文件外,其他文件的需要具体看主配置文件的配置
  6、用户设置:一般只要刚启动root用户是可以登录的,而且权限很高,如果向增加用户,可以用如下命令:a
  #dduser –G ftp –h/根目录 用户名
  #passwd 用户名
  #chown 用户名。ftp /目录 –R
  #chmod 755 /目录 –R
  之后重启vsftpd服务,就可以用新的用户名登录了
  7、测试的时候一定要保证板子是能够ping通的!
  8、具体配置:Vsftpd.conf配置:
  anonymous_enable=YES
  #允许匿名访问
  local_enable=YES
  #允许本地用户访问(/etc/passwd中的用户)
  write_enable=YES
  #允许写入权限,包括修改,删除
  local_umask=022
  #本地用户文件上传后的权限是-rw-r-r
  #anon_umask=077
  #匿名用户上传后权限是-rw----
  anon_world_readable_only=YES
  #允许匿名用户浏览,下载文件
  anon_upload_enable=YES
  #允许匿名用户上传
  #anon_mkdir_write_enable=YES
  #允许匿名用户建立目录
  anon_other_write_enable=YES
  #允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
  dirmessage_enable=YES
  #当使用者转换目录,则会显示该目录下的。message信息
  xferlog_enable=YES
  #记录s使用者所有上传下载信息
  xferlog_file=/var/log/vsftpd.log
  #将上传下载信息记录到/var/log/vsftpd.log中
  connect_from_port_20=YES
  #确保ftp-datad 数据传送使用port 20
  idle_session_timeout=600
  #如果使用者600秒没有动作,则踢出
  chroot_list_enable=YES
  #限制使用者不能离开家目录,例如blue登陆后位于/home/blue下,设置该选项后,他不可以转到/home/blue的上层目录,如/bin, /usr,/opt…etc。
  chroot_list_file=/etc/vsftpd.chroot_list
  #与上条同时使用,设置限制使用者的存放文件为/etc/vsftpd.chroot_list
  #建立文本文件/etc/vsftpd.chroot_list,写入要限制的用户,一行一个。
  #如果希望限制所有用户,则可以设置chroot_local_user=YES 代替上面两行
  tcp_wrappers=YES
  #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
  listen=YES
  #使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
  listen_port=21
  #ftp监听端口
  userlist_enable=YES
  userlist_deny=YES
  userlist_file=/etc/vsftpd.user_list
  #以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.user_list中,一行一个帐号
  pam_service_name=vsftpd
  #PAM所 使用的名称。同userlist_*一样限制用户登陆,不同的是userlist_*在进行密码验证之前拒绝用户登陆,pam是在密码验证之后拒绝登陆。 (提示密码错误) 用户列表默认存放在/etc/ftpusers中,一行一个。 (可通过/etc/pam.d/vsftpd重定向用户列表存放文件)
  #获得 /etc/pam.d/vsftpd:
  #[root@LFS vsftpd-2.0.1]#cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
  max_clients=100
  #最大用户在线数量
  max_per_ip=2
  #每ip最大线程
  anon_max_rate=30000
  #匿名用户最大传输速度 单位: bytes/秒
  local_max_rate=50000
  #本地用户最大传输速度 单位:bytes/秒
  user_config_dir=/etc/userconf
  #个别用户配置目录(用来设定特殊帐号),例如我想让blue这个用户的传输速度是100KB
  就可以在/etc/userconf/下创建文本文件blue(与用户名相同),加入local_max_rate=100000即可
  anon_root=/var/ftp
  #设定匿名用户登陆后所在的目录
  local_root=/var/local_user
  #设定所有本地用户登陆后的目录,如不设置此项,则本地用户登陆后位于各自家目录下。
  use_localtime=YES
  #使用本地时间而不是GMT
  nopriv_user=vsftpd
  #设定服务执行者为vsftpd,默认使用的是nobody,vsftpd推荐使用一个权限很低的用户。这里用vsftpd代替nobody,创建 vsftpd用户:
  9、创建ftp虚拟用户:
  a) 安装db_load:apt-get install db4.6-util
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯