1. 程式人生 > >vsftp之必要的安裝目錄與交叉編譯問題

vsftp之必要的安裝目錄與交叉編譯問題

高版本為何編譯不成功:

在版本比較高的vsftp原始碼中的Makefile中可能會有這麼一句話:

LDFLAGS=-fPIE -pie -Wl,-z,relro -Wl,-z,now

如可此時交叉編譯,雖然可以編譯成功,但 file vsftpd 會發現,vsftpd是  shared object,而不是我們想要的executable

[email protected]:~/buildroot-2017.02.3/dl/vsftpd-3.0.3$ file vsftpd
vsftpd: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.38, stripped

經過試驗發現,把 ( LDFLAGS =-fPIE -pie -Wl,-z,relro -Wl,-z,now  )中的  -pie 去掉就可以編譯出我們想要的可執行檔案

[email protected]:~/buildroot-2017.02.3/dl/vsftpd-3.0.3$ file vsftpd
vsftpd: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 2.6.38, stripped

(pie  :position independent executables)是安卓中的一種保護機制,而我們現在的系統時arm板Linux,所以不需要 -pie

同理 :以後再移植其他軟體時,若是發現此類問題,可以採取此種處理機制

在vsftp原始碼中:

1:vsf_findlibs.sh 檔案是vsftp安裝包所用到的庫路徑指定檔案

2:builddefs.h檔案定義了一些必要的巨集定義

3:INSTALL檔案列舉了必要的安裝配置步驟

Step 1) Build vsftpd

Step 2) Satisfy vsftpd pre-requisites(必要步驟)

2a)  useradd nobody  新增nobody使用者

2b)  mkdir /usr/share/empty/    建立一個目錄

2c)   mkdir /var/ftp/

useradd -d /var/ftp ftp

(建立匿名使用者FTP)

chown root.root   /var/ftp

chmod og-w /var/ftp

Step 3) Install vsftpd config file(可手動複製)

在用FTP使用者登入時,發現ls 無法顯示FTP下的內容,雖然FTP使用者預設的根目錄是、var/tfp,但依然需要在配置檔案中手動新增這麼一句:anon_root=/var/ftp,然後在ls 就可以顯示、var/ftp下的目錄或檔案。

注:在使用FTP傳輸資料是一定要注意所要操作的目錄的許可權問題。

相關推薦

vsftp必要安裝目錄交叉編譯問題

高版本為何編譯不成功: 在版本比較高的vsftp原始碼中的Makefile中可能會有這麼一句話: LDFLAGS=-fPIE -pie -Wl,-z,relro -Wl,-z,now 如可此時交叉編譯,雖然可以編譯成功,但 file vsftpd 會發現,vsftpd是

CentOS7 - Nginx安裝目錄編譯參數詳解

gpo json nginx安裝 access sco pid 設定 鏈接 pat Nginx 安裝目錄詳解 [root@localhost yum.repos.d]# rpm -ql nginx # Nginx日誌輪轉,用於logrotate服務的日誌切割,定義周期,按天

arm-linux-gdb除錯工具的安裝交叉編譯gdbserver

arm-linux-gdb除錯工具的安裝與交叉編譯gdbserver 分類:嵌入式 開發環境:LPC3250 開發板:安裝linux2.6.39; 交叉編譯工具:arm-none-linux-gnueabi-gcc pc的虛擬機器:Linux version 2.6.32.

ARM編譯交叉編譯

gcc和arm-linux-gcc的常用選項gcc的使用方法:gcc [選項] 檔名 gcc常用選項:  -v:檢視gcc編譯器的版本,顯示gcc執行時的詳細過程  -o <file>                Place the output into &l

Nginx安裝目錄編譯引數詳解

安裝目錄詳解 [[email protected] yum.repos.d]# rpm -ql nginx # Nginx日誌輪轉,用於logrotate服務的日誌切割,定義週期,按天或月等

自動化運維ansible-安裝部署基礎命令篇

ip地址 cksum keygen python 了解 success 系統 ron pytho 一、Ansible簡介 Ansible基於Python語言開發,集合了眾多優秀運維工具的優點,實現了批量運行命令、部署程序、配置系統等功能。 二、安裝部署Ansible服務 A

iOS攻防:ssh登陸交叉編譯

簡介 iOS攻防系列大家耳熟能詳的是我們iOS女神念茜的系列文章。博主在看了之後也進行了一系列的學習和嘗試。念茜的文章寫的比較早,有很多文章中提到的東西已經不再適合現在使用,寫的也不算詳細,很多地方一筆帶過,卻不是那麼好探索。在中間也有很多摸索的過程。 所以本系列文章算是對念茜

mysql查詢安裝目錄安裝mysql時候如果遇到什麼public key not installed 問題解決方案。

Linux下檢視mysql、apache是否安裝,並解除安裝。 指令 ps -ef|grep mysql 得出結果 1.root     17659     1  0  2011 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe

4.8 Sublime Text3 中配置 Python環境 --下下載安裝Sublime配置Python環境

main 代碼 col 編程 als 數據 -- print 安裝 返回總目錄 目錄: 1.沒有配置之前 2.安裝Package Control插件 3.安裝其他庫: 4.配置其他操作: (一)沒有配置之前: 我們試著運行以下,會效果怎麽樣? 1.首先選擇Python作

Ubuntu安裝mips平臺交叉編譯環境

執行命令安裝: sudo apt-get update sudo apt-get install emdebian-archive-keyring sudo apt-get install linux-libc-dev-mips-cross sud

raspberry 3b 64bit 系統安裝,以及交叉編譯環境、除錯環境的搭建

一、系統安裝 二、交叉環境的搭建,以及核心替換 我用的Linux版本是 ubun16.04-64bit 1、安裝交叉編譯器 sudo apt-get install gcc-aarch64-linux-gnu 2、下載Linux 核心 3、編譯 make ARCH=ar

Ubuntu 18.04安裝i686-elf交叉編譯工具鏈的方法

致謝:wby大佬 一、準備 系統:Ubuntu 18.04 LTS 64位 Ubuntu releases gcc 7.3.0、g++ 7.3.0: # 切換到超級使用者模式,可以Ctrl+D切回普通使用者 sudo -s add-apt-

安裝Linux的交叉編譯工具鏈

1、linux中裝軟體的特點     linux中安裝軟體比windows中複雜。linux中安裝軟體一般有以下幾種方法:     第一種:線上安裝。譬如ubuntu中使用apt-get install vim來安裝vim軟體。     第二種:自己下載安裝包來安裝。這種方

成為C++高手標頭檔案條件編譯

但現在看起來真不爽,main.c依賴的檔案不能在工程中管理,要修改那些檔案的話麻煩大了。如何既能分成多個檔案又能在工程中看到呢?可以,使用標頭檔案(h檔案)。 標頭檔案中只放那些不產生記憶體佔用的程式碼,比如定義結構(定義結構不會產生記憶體分配,只有用結構

git 安裝目錄服務的暫停啟動

git 安裝目錄: drwxr-xr-x 14 root root 4096 Oct 13 21:17 apache drwxr-xr-x 10 root root 4096 Jan 2 23:50 gitlab drwxr-xr-x 2 root root

Qt Creator的安裝Qt交叉編譯的配置

wid 設置 sem arm pad name 生成 art file Qt Creator 的安裝 到Qt官網下載Qt Creator https://www.qt.io/download-open-source/ 其它舊版本點擊Achieve連接下載 或登錄h

【轉】Ubuntu 64位系統安裝交叉編譯環境一直提醒 沒有那個檔案或目錄

安裝交叉編譯環境搞了一個晚上 一直提示 [email protected]:~# arm-linux-gcc/usr/local/arm/4.3.2/bin/arm-linux-gcc: 行 3: /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g

彙總(四):交叉編譯工具鏈arm-none-linux-gnueabi-, Qt交叉編譯安裝和移植,Qt桌面版編譯安裝,QTcreator安裝和配置

4. QTcreator2.5.2安裝和配置 首先,從官網下載了qt-creator-linux-x86-opensource-2.5.2.bin檔案。 下面的安裝就比較簡單了,首先更改檔案屬性,使它可執行。 chmod u+x qt-creator-linux

RHEL6下友善交叉編譯工具的安裝

[[email protected] /]# export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin/ [[email protected] /]# arm-linux-gcc -v Using built-in specs. COL

Ubuntu16.4學習zedboard安裝交叉編譯環境和交叉編譯流程

上一篇中按照《嵌入式系統軟硬體協同設計實戰指南》配置之後發現並不好用,這次按照《xilinx zynq soc與嵌入式linux設計實戰指南》進行配置一、基本概念:1、交叉編譯:在一個平臺上上生成另一個平臺上可以執行的程式碼。2、通過交叉編譯工具可以在CPU能力很強、儲存空間