{"id":1017,"date":"2013-01-24T17:01:17","date_gmt":"2013-01-24T09:01:17","guid":{"rendered":"http:\/\/kaoru.tech\/?p=1017"},"modified":"2013-01-25T15:49:34","modified_gmt":"2013-01-25T07:49:34","slug":"cross-compile-vsftpd","status":"publish","type":"post","link":"http:\/\/kaoru.tech:7000\/wordpress\/?p=1017","title":{"rendered":"Cross-compile vsftpd"},"content":{"rendered":"<p>\u4e0b\u8f7dvsftp\u6e90\u7801<\/p>\n<p>\u7136\u540e\u4fee\u6539Makefile\uff0c\u5c06CC\u4fee\u6539\u4e3a$\uff08CROSS_COMPILE)gcc<\/p>\n<p>\u7f16\u8bd1\u5373\u53ef\u3002<\/p>\n<p>\u9ed8\u8ba4vsftpd\u9700\u8981PAM\u652f\u6301\u3002\u5982\u679c\u4f7f\u7528busybox\u505arootfs\u7684\u8bdd\u652f\u6301PAM\u6bd4\u8f83\u9ebb\u70e6\uff0c\u53ef\u4ee5\u5c06sysdeputil.c\u6587\u4ef6\u4e2d\u5173\u4e8e\u201cpam_\u201d\u5f00\u5934\u7684\u51fd\u6570\u8c03\u7528\u5168\u90e8\u5220\u9664\u3002\u7136\u540e\u91cd\u65b0\u7f16\u8bd1\u3002<\/p>\n<p>\u7f16\u8bd1\u6700\u540e\u4f1a\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff1a<\/p>\n<blockquote><p>arm-linux-gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o ssl.o sysutil.o sysdeputil.o -Wl,-s `.\/vsf_findlibs.sh`<br \/>\n\/lib\/libcap.so.1: could not read symbols: File in wrong format<br \/>\ncollect2: ld returned 1 exit status<br \/>\nmake: *** [vsftpd] Error 1<\/p><\/blockquote>\n<p>\u51fa\u73b0\u8fd9\u4e2a\u95ee\u9898\u4e0d\u9700\u8981\u7528google\u51fa\u6765\u7684\u4fee\u6539vsf_findlibs.sh\u6587\u4ef6\u3002\u5176\u5b9e\u8fd9\u4e2a\u6587\u4ef6\u662f\u5bfb\u627e\u9700\u8981\u52a0\u94fe\u63a5\u662f\u9700\u8981\u7684\u52a8\u6001\u5e93\u3002\u6211\u4eec\u76f4\u63a5\u590d\u5236\u8fd9\u884c\u7f16\u8bd1\u547d\u4ee4\uff0c\u7136\u540e\u5c06\u6700\u540e\u7684`.\/vsf_findlibs.sh` \u4fee\u6539\u4e3a &#8220;-lcap&#8221;\u5373\u53ef\uff0c\u5982\u679c\u6ca1\u6709\u5220\u9664sysdeputil.c\u7684pam_\u51fd\u6570\u8fd8\u9700\u8981\u52a0&#8221;-lpam&#8221;\u3002<\/p>\n<p>\u53e6\u5916\u9700\u8981vsftpd.conf\u653e\u5230\/etc\u76ee\u5f55\u4e0b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u8f7dvsftp\u6e90\u7801 \u7136\u540e\u4fee\u6539Makefile\uff0c\u5c06CC\u4fee\u6539\u4e3a$\uff08CROSS_COMPILE)gcc \u7f16\u8bd1\u5373\u53ef\u3002 \u9ed8\u8ba4vsftpd\u9700\u8981PAM\u652f\u6301\u3002\u5982\u679c\u4f7f\u7528busybox\u505arootfs\u7684\u8bdd\u652f\u6301PAM\u6bd4\u8f83\u9ebb\u70e6\uff0c\u53ef\u4ee5\u5c06sysdeputil.c\u6587\u4ef6\u4e2d\u5173\u4e8e\u201cpam_\u201d\u5f00\u5934\u7684\u51fd\u6570\u8c03\u7528\u5168\u90e8\u5220\u9664\u3002\u7136\u540e\u91cd\u65b0\u7f16\u8bd1\u3002 \u7f16\u8bd1\u6700\u540e\u4f1a\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff1a arm-linux-gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[16],"tags":[208,141],"class_list":["post-1017","post","type-post","status-publish","format-standard","hentry","category-crosscompile","tag-crosscompile","tag-vsftpd"],"_links":{"self":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1017"}],"version-history":[{"count":3,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1017\/revisions"}],"predecessor-version":[{"id":1028,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1017\/revisions\/1028"}],"wp:attachment":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1017"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}