高版本為何編譯不成功:
在版本比較高的vsftp原始碼中的makefile中可能會有這麼一句話:
ldflags=-fpie -pie -wl,-z,relro -wl,-z,now
如可此時交叉編譯,雖然可以編譯成功,但 file vsftpd 會發現,vsftpd是 shared object,而不是我們想要的executable
scw@scw-vb:~/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 去掉就可以編譯出我們想要的可執行檔案
scw@scw-vb:~/buildroot-2017.02.3/dl/vsftpd-3.0.3$file vsftpd
vsftpd: elf 32-bit lsbexecutable, 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傳輸資料是一定要注意所要操作的目錄的許可權問題。
Apache與Tomcat的安裝與整合之整合篇
一.首先還是引用乙個別人的帖子,然後做一些說明,不對的地方還請各位指正。二.單獨使用tomcat做jsp伺服器,在工作效率上會有問題,並且所能承受的最大併發連線數也有一定的限制 經測試,當併發連線較多時,tomcat就會處於 僵死 狀態,對後繼的請求連線失去響應。所以現在就有了一些 整合 解決方案 ...
Linux之檔案與目錄的預設許可權與隱藏許可權
指定目前使用者在建立檔案或目錄時候的預設許可權值 語法 umask 這裡的數字是值該預設值需要減掉的許可權,root的umask預設是022,一般使用者的umask為002。以符號的顯示方式顯示出許可權 語法 umask s 當使用者建立檔案則預設沒有可執行 x 許可權,即只有rw許可權,也就是66...
fuzzing工具之Angora的安裝與使用
angora 是安全四大會中okland會議中發表的fuzzer,angora是基於突變的 覆蓋率指導的fuzzer。目前fuzzer中一大難題是如何解決fuzzing過程中的路徑約束,以提高 branch coverage。angora在沒有利用符號執行的前提下解決了這個問題。在angora 中a...