linux主機安裝ftp
. 先用rpm -qa| grep vsftpd命令檢查是否已經安裝,如果ftp沒有安裝,使用yum -y install vsftpd 安裝,(ubuntu 下使用apt-get install vsftpd)
安裝完之後我們要對它進行配置,才能正常使用。編輯vsftpd的配置文件vi /etc/vsftpd/vsftpd.conf
vi編輯器中的搜索使命是斜杠「/」,然後輸入要查找的內容,回車確定。以下是要更改的選項
anonymous_enable=NO #禁止匿名訪問
ascii_upload_enable #允許使用ascii碼上傳
ascii_download_enable #允許使用ascii碼下載
userlist_deny=NO #(這條需手動添加到最後)使用FTP用戶表,表裡沒有的用戶需要添加才能登錄
設置完畢之後,ESC,冒號wq回車。啟動vsftpd服務/etc/init.d/vsftpd start,看到[確定]即為啟動成功。
2. service vsftpd start 啟動要讓FTP每次開機自動啟動,運行命令: chkconfig --level 35 vsftpd on
3. 設置ftp許可權
vi /etc/vsftpd/vsftpd.conf
將anonymous_enable=YES 改為 anonymous_enable=NO
ESC返回,輸入「:wq」保存並退出
4. 添加ftp帳號和目錄
useradd -d /alidata/www/wwwroot -s /sbin/nologin pwftp passwd pwftp chmod -R 755 /alidata/www/wwwroot chown -R pwftp /alidata/www/wwwroot /etc/rc.d/init.d/vsftpd restart
然後用帳號pwftp密碼123456
測試下就可以登陸ftp了。目錄是/alidata/www/wwwroot
修改防火牆,允許FTP使用的21埠通過
<img title="Linux防火牆" alt="Linux防火牆配置" src="http://filesimg.111cn.net/2013/10/22/20131022070008307.jpg" width="665" height="411" oldblock="inline" loaded="true" original="http://filesimg.111cn.net/2013/10/22/20131022070008307.jpg" jquery1382424581890="24" />
Linux防火牆配置
重啟防火牆service iptables restart之後關閉selinux。不然就不連接不上FTP。
linux關閉selinux
然後reboot重啟Linux伺服器。
本人使用FlashFXP客戶端軟體連接,直到出現用戶主目錄(一般位於/home/用戶名),則vsftpd成功安裝並運行。然後就能進行文件的上傳和下載了。
『貳』 LINUX下如何開啟ftp伺服器
1. 首先伺服器要安裝ftp軟體,查看是否已經安裝ftp軟體下:
#which vsftpd
如果看到有vsftpd的目錄說明伺服器已經安裝了ftp軟體
2. 查看ftp 伺服器狀態
#service vsftpd status
3. 啟動ftp伺服器
#service vsftpd start
4. 重啟ftp伺服器
#service vsftpd restart
5. 查看服務有沒有啟動
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,證明ftp服務已經開啟。
6.如果需要開啟root用戶的ftp許可權要修改以下兩個文件
#vi /etc/vsftpd.ftpusers中注釋掉root
#vi /etc/vsftpd.user_list中也注釋掉root
然後重新啟動ftp服務。
7. vsftpd 500 OOPS: cannot change directory
登陸報錯:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解決方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
這是SELinux的設和培置命令,在不熟悉SELnux前,把SELinux關掉悄棚寬也可以的。
8. 永久開啟,即os重啟後自動開啟ftp服務
方法一:
cd /etc/xinetd.d ,編輯ftp服務的配置文件gssftp的設啟亮置:
vi /etc/xinetd.d/gssftp ,將 修改兩項內容:
(a) server_args = -l –a 去掉-a 改為server_args = -l
(b) disable=yes改為disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 進入圖形界面的System services查看是否有 vsftpd項,如果沒有轉到2.,保存後退出
(b) 用redhat第三張盤 安裝此服務(開始--刪除/增加程序),200K左右
(c) #setup
此時能看到vsftpd項,此時選中此services項,保存後退出.
『叄』 linux 里沒有ftp服務 怎麼安裝
Linux中的ftp伺服器一般是安裝vsftp。以centos為例,具體操作如下:
1、運行yum install vsftpd命令
命令具體的細節如下:
[[email protected]]# yum install vsftpd
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package vsftpd.i386 0:2.0.5-12.el5 set to be updated
filelists.xml.gz 100% |=========================| 648 kB 02:46
http://ftp.hostrino.com/pub/centos/5.2/os/i386/repodata/filelists.xml.gz: [Errno 4] Socket Error: timed out
Trying other mirror.
filelists.xml.gz 100% |=========================| 2.8 MB 00:21
filelists.xml.gz 100% |=========================| 1.1 MB 00:12
filelists.xml.gz 100% |=========================| 132 kB 00:01
filelists.xml.gz 100% |=========================| 150 B 00:00
–> Finished Dependency Resolution
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
vsftpd i386 2.0.5-12.el5 base 137 k
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 137 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): vsftpd-2.0.5-12.el 100% |=========================| 137 kB 00:01
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Importing GPG key 0xE8562897 「CentOS-5 Key (CentOS 5 Official Signing Key) <[email protected]>」 from http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: vsftpd ######################### [1/1]
Installed: vsftpd.i386 0:2.0.5-12.el5
Complete!
[root@localhost ~]#
2、將 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root這一行注釋掉
#root
3、執行以下命令
# setsebool -P ftpd_disable_trans=1
修改/etc/vsftpd/vsftpd.conf,在最後一行處添加local_root=/
4、/sbin/service iptables stop (linux是虛擬機的話要運行這個一句)
5、/sbin/service vsftpd restart
一下是對配置文件中一些參數的說明:
centOS vsftpd建FTP,配置文件有三:
/etc/ftpusers
/etc/vsftpd.user_list
/etc/vsftpd/vsftpd.conf 這個是主配置文件,,
/etc/vsftpd/vsftpd.conf vsftpd.conf 默認配置:
anonymous_enable=YES 允許匿名登錄
local_enable=YES 允許本地用戶登錄
write_enable=YES 開放本地用戶寫許可權
local_umask=022 設置本地用戶生成文件的掩碼為022
#anon_upload_enable=YES 此項設置允許匿名用戶上傳文件
#anon_mkdir_write_enable=YES 開啟匿名用戶的寫和創建目錄的許可權
dirmessage_enable=YES 當切換到目錄時,顯示該目錄下的.message隱藏文件的內容
xferlog_enable=YES 激活上傳和下載日誌
connect_from_port_20=YES 啟用FTP數據埠的連接請求
#chown_uploads=YES 是否具有上傳許可權. 用戶由chown_username參數指定。
#chown_username=whoever 指定擁有上傳文件許可權的用戶。此參數與chown_uploads聯用。
#xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES 使用標準的ftpd xferlog日誌格式
#idle_session_timeout=600 此設置將在用戶會話空閑10分鍾後被中斷
#data_connection_timeout=120 將在數據連接空閑2分鍾後被中斷
#ascii_upload_enable=YES 啟用上傳的ASCII傳輸方式
#ascii_download_enable=YES 啟用下載的ASCII傳輸方式
#ftpd_banner=Welcome to blah FTP service 設置用戶連接伺服器後顯示消息
#deny_email_enable=NO
此參數默認值為NO。當值為YES時,拒絕使用banned_email_file參數指定文件中所列出的e-mail地址用戶登錄。
#banned_email_file=/etc/vsftpd.banned_emails 指定包含拒絕的e-mail地址的文件.
#chroot_list_enable=YES 設置本地用戶登錄後不能切換到自家目錄以外的別的目錄
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd
設置PAM認證服務的配置文件名稱,該文件存放在/etc/pam.d/
userlist_enable=YES
此項配置/etc/vsftpd.user_list中指定的用戶也不能訪問伺服器,若添加userlist_deny=No,則僅僅/etc /vsftpd.user_list
文件中的用戶可以訪問,其他用戶都不可以訪問伺服器。如過 userlist_enable=NO,userlist_deny=YES,則指定使文件/etc/vsftpd.user_list中指定的用戶不可以訪問伺服器,其他本地用戶可以訪問伺服器。
listen=YES 指明VSFTPD以獨立運行方式啟動
tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers遠程訪問控制機制,默認值為YES
『肆』 linux配置ftp伺服器的過程
第一步:打開終端(快捷鍵是Ctrl+Alt+t),如果當前用戶不是root用戶,請輸入命令「su」,然後輸入root賬戶密碼即可;
第二步:輸入命令「apt-get update」,這一步是為了更新下載的數據源,如果不更新可能造成有幾個後面的軟體包無法下載;
第三步:輸入命令「apt-get install vsftpd」完成安裝vsftpd;
第四步:判斷vsftp是否安裝成功,輸入命令「service vsftpd restart」重啟vsftpd服務,如果他在運行狀態說明安裝成功;
第五步:新建「/home/uftp」目錄作為用戶主目錄,輸入命令「mkdir /home/uftp」回車 ,然後輸入命令「ls /home」查看home目錄下有uftp這個目錄嗎,如果有就是創建成功;
第六步:新建用戶uftp並且設置密碼,輸入命令「useradd -d /home/uftp -s /bin/bash uftp」
回車,然後再輸入命令「passwd uftp」回車,然後輸入兩次密碼就設置ok了
第七步:使用vi修改配置文件/etc/vsftpd.conf,輸入命令「vi /etc/vsftpd.conf」回車,
向文件中添加「userlist_deny=NO」」userlist_enable=YES」?, 「userlist_file=/etc/allowed_users」?,
「seccomp_sandbox=NO」,最後把文件中的「local_enable=YES」保存(如果提示無法保存,直接退出來,把讀寫和執行許可權給這個文件,具體操作為:輸入命令: 「chmod 777 /etc/vsftpd.conf」回車就可以了);
第八步:新建文件/etc/allowed_users,輸入命令「vi /etc/allowed_users」,打開後再這個文件內寫入「uftp」保存即可;《Linux就該這么學》
第九步:查看/etc/ftpusers文件(不能訪問ftp服務用戶清單)的內容,輸入命令「vi /etc/ftpusers」回車,如果裡面有uftp,就把他刪除;
第十步:安裝winscp軟體,進行遠程登錄訪問;下載直接在網路下載就行
『伍』 linux伺服器怎麼安裝ftp
1、檢查安裝vsftpd軟體使用如下命令#rpm -qa |grep vsftpd可以檢測出是否安裝了vsftpd軟體,
如果沒有安裝,使用YUM命令進行安裝。
2、啟動服務
使用vsftpd軟體,主要包括如下幾個命令:
啟動ftp命令#service vsftpd start
停止ftp命令#service vsftpd stop
重啟ftp命令#service vsftpd restart
3、vsftpd的配置
ftp的配置文件主要有三個,位於/etc/vsftpd/目錄下,分別是:
ftpusers 該文件用來指定那些用戶不能訪問ftp伺服器。
user_list 該文件用來指示的默認賬戶在默認情況下也不能訪問ftp
vsftpd.conf vsftpd的主配置文件
4、以匿名用戶為例,我們去掉配置文件vsftpd.conf 裡面以下
anon_upload_enable=YES
anon_mkdir_write_enable=YES
兩項前面的#號,就可以完成匿名用戶的配置,此時匿名用戶既可以登錄上傳、下載文件。記得修改配置文件後需要重啟服務。
5、非匿名賬戶的創建與使用
vsftpd服務與系統用戶是相互關聯的,例如我們創建一個名為test 的系統用戶,那麼此用戶在默認配置的情況下就可以實現登錄,如圖
登錄後在頁面創建名為「aa」的文件夾,同樣我們在伺服器test用戶 的home目錄里也可以看到相同的文件。
『陸』 linux怎麼搭建ftp伺服器
在Linux中ftp伺服器的全名叫 vsftpd,我們需要利用相關命令來開啟安裝ftp伺服器,然後再在vsftpd.conf中進行相關配置,下面我來介紹在Ubuntu中vsftpd安裝與配置增加用戶的方法。
(1)、首先用命令檢查是否安裝了vsftpd
vsftpd -version
如果未安裝用一下命令安裝
sudo apt-get install vsftpd
安裝完成後,再次輸入vsftpd -version命令查看是否安裝成功
(2)、新建一個文件夾用於FTP的工作目錄
mkdir /home/ftp
(3)、新建FTP用戶並設置密碼以及工作目錄
ftpname為你為該ftp創建的用戶名
sudo useradd -d /home/ftp -s /bin/bash ftpname
為新建的用戶設置密碼
passwd ftpname
【注釋:用cat etc/passwd可以查看當前系統用戶】
(4)、修改vsftpd配置文件 [email protected]
用命令打開vsftpd.conf
vi vsftpd.conf
設置屬性值
anonymous_enable=NO #禁止匿名訪問
local_enable=YES
write_enable =YES
保存返回
(5)、啟動vsftpd服務
service vsftpd start
(6)、在資源管理器,或者瀏覽器中ftp伺服器
輸入賬號,密碼登錄即可
『柒』 linux下搭建ftp伺服器
linux下搭建ftp伺服器
下面我就為大家整理了一些Linux認證復習備考資料。希望大家可以從中學習答題方法,讓自己的得到進步!最近為了方便目標板與PC機上LINUX之間的通訊,就在LINUX搭建了FTP,工作不難,寫個總結。主要經過以下幾個步驟:
1.檢查是否安裝了vsftpd伺服器
可以用rpm -q vsftpd命令來查看,若顯示"vsftpd-1.1.3-8",則說明系統已經安裝vsftpd伺服器,若沒有則可以在圖形環境下單擊"主菜單→系統設置→添加刪除應用程序"菜單項,在出現的"軟體包管理"對話框里確保選中"FTP伺服器"選項,然後單擊"更新"按鈕,按照屏幕提示插入第3張安裝光碟即可開始安裝。
2.啟動/重新啟動/停止vsftpd服務
從Red Hat Linux 9.0開始,vsftpd默認只採用standalone方式啟動vsftpd服務,方法是在終端命令窗口運行以下命令:
[root@ahpeng root] /etc/rc.d/init.d/vsftpd start
重新啟動vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart
關閉vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop
3.vsftpd的配置
在Red Hat Linux 9.0里的vsftpd共有3個配置文件,它們分別是:
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該文件里的用戶賬戶在默認情況下也不能訪問
FTP伺服器,僅當vsftpd .conf配置文件里啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。它是一個文本文件,我們可以用Kate、Vi等文本編輯工具對它進行修改,以此來自定義用戶登錄控制、用戶許可權控制、超時設置、伺服器功能選項、伺服器性能選項、伺服器響應消息等FTP伺服器的配置。
(1)用戶登錄控制
anonymous_enable=YES,允許匿名用戶登錄。
no_anon_password=YES,匿名用戶登錄時不需要輸入密碼。
local_enable=YES,允許本地用戶登錄。
deny_email_enable=YES,可以創建一個文件保存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單保存路徑(默認為/etc/vsftpd.banned_emails)。
(2)用戶許可權控制
write_enable=YES,開啟全局上傳許可權。
local_umask=022,本地用戶的上傳文件的umask設為022(系統默認是077,一般都可以改為022)。
anon_upload_enable=YES,允許匿名用戶具有上傳許可權,很明顯,必須啟用write_enable=YES,才
可以使用此項。同時我們還必須建立一個允許ftp用戶可以讀寫的目錄(前面說過,ftp是匿名用戶的映射用戶賬號)。
anon_mkdir_write_enable=YES,允許匿名用戶有創建目錄的權利。
chown_uploads=YES,啟用此項,匿名上傳文件的屬主用戶將改為別的用戶賬戶,注意,這里建議不要指定root賬號為匿名上傳文件的屬主用戶!
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主用戶賬號,此處的whoever自然要用合適的用戶賬號來代替。
chroot_list_enable=YES,可以用一個列表限定哪些本地用戶只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的用戶是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全用戶賬號,讓FTP伺服器用作完全隔離和沒有特權的獨立用戶。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,默認情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的'請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
(注意:啟用ascii_download_enable選項會讓惡意遠程用戶們在ASCⅡ模式下用"SIZE/big/file"這樣的指令大量消耗FTP伺服器的I/O資源。)
這些ASCⅡ模式的設置選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導致崩潰),而不會遭受拒絕服務攻擊的危險。
(3)用戶連接和超時選項
idle_session_timeout=600,可以設定默認的空閑超時時間,用戶超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定默認的數據連接超時時間。
(4)伺服器日誌和歡迎信息
dirmessage_enable=YES,允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容
ftpd_banner=Welcome to blah FTP service,可以自定義FTP用戶登錄到伺服器所看到的歡迎信息。
xferlog_enable=YES,啟用記錄上傳/下載活動日誌功能。
xferlog_file=/var/log/vsftpd.log,可以自定義日誌文件的保存路徑和文件名,默認是/var/log/vsftpd.log.
知道了上面各個選項的含義,你可以根據自己的需要進行配置,達部分的選項一般用不著改動,配置完了以後,確認vsftpd服務已經啟動後,我們可以在Windows主機的S命令窗口裡輸入"ftp Addres"(用實際的FTP伺服器IP地址或者域名代替Addres),注意用戶名、密碼都是ftp(ftp是匿名用戶的映射用戶賬號)。
如果登陸不上,可以試驗在LINUX下本地登陸看看,還有可以在LINUX登陸WINDOWS下的FTP,試驗能否登陸成功,如果可以,那很有可能登陸不上LINUX下的FTP的原因是LINUX的防火牆的原因,可以用rpm -q vsftpd命令來查看,如果防火牆開啟,可以用命令把其關閉,也可以在圖形界面下"主菜單"中的"system settings"中選擇"seurity level",安裝系統的時候如果沒有改動,默認是的seurity level是"Medium",你可以不改動該設置,選中下面"allow incomning"中的"FTP",當然你也可以設置seurity level為"NO firewall",這樣再在Windows下登陸LINUX的FTP,應該可以登陸了。
登陸後具體ftp下的操作就參考有關ftp的命令了,登陸後的路徑為/var/ftp/pub,把你所需要操作的文件可以放在該目錄下,我這里用付ftp主要是在下載linux編譯後的文件到板子上,上傳文件到LINUX上一般不用通過ftp,注意你在ftp下對文件進行一些操作的時候很可能被fail掉,注意根據情況設置文件的操作許可權。
;『捌』 linux怎麼搭建ftp伺服器
第一步:在 Ubuntu 中安裝 VSFTPD 伺服器
首先,我們需要更新系統安裝包列表,然後像下面這樣安裝 VSFTPD 二進制包:
$ sudo apt-get update
$ sudo apt-get install vsftpd
一旦安裝完成,初始情況下服務被禁用。因此,我們需要手動開啟服務,同時,啟動它使得在下次開機時能夠自動開啟服務:
------------- On SystemD -------------
# systemctl start vsftpd
# systemctl enable vsftpd
------------- On SysVInit -------------
# service vsftpd start
# chkconfig --level 35 vsftpd on
接下來,如果你在伺服器上啟用了 UFW 防火牆(默認情況下不啟用),那麼需要打開埠 20 和 21 —— FTP 守護進程正在監聽它們——從而才能允許從遠程機器訪問 FTP 服務,然後,像下面這樣添加新的防火牆規則:
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status
第二步:在 Ubuntu 中配置並保護 VSFTPD 伺服器
讓我們進行一些配置來設置和保護 FTP 伺服器。首先,我們像下面這樣創建一個原始配置文件 /etc/vsftpd/vsftpd.conf 的備份文件:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
接下來,打開 vsftpd 配置文件。
$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf
把下面的這些選項添加/改成所展示的值:
anonymous_enable=NO # 關閉匿名登錄
local_enable=YES # 允許本地用戶登錄
write_enable=YES # 啟用可以修改文件的 FTP 命令
local_umask=022 # 本地用戶創建文件的 umask 值
dirmessage_enable=YES # 當用戶第一次進入新目錄時顯示提示消息
xferlog_enable=YES # 一個存有詳細的上傳和下載信息的日誌文件
connect_from_port_20=YES # 在伺服器上針對 PORT 類型的連接使用埠 20(FTP 數據)
xferlog_std_format=YES # 保持標准日誌文件格式
listen=NO # 阻止 vsftpd 在獨立模式下運行
listen_ipv6=YES # vsftpd 將監聽 ipv6 而不是 IPv4,你可以根據你的網路情況設置
pam_service_name=vsftpd # vsftpd 將使用的 PAM 驗證設備的名字
userlist_enable=YES # 允許 vsftpd 載入用戶名字列表
tcp_wrappers=YES # 打開 tcp 包裝器
現在,配置 VSFTPD ,基於用戶列表文件/etc/vsftpd.userlist 來允許或拒絕用戶訪問 FTP。
注意,在默認情況下,如果通過userlist_enable=YES 啟用了用戶列表,且設置userlist_deny=YES 時,那麼,用戶列表文件/etc/vsftpd.userlist 中的用戶是不能登錄訪問的。
但是,選項userlist_deny=NO 則反轉了默認設置,這種情況下只有用戶名被明確列出在/etc/vsftpd.userlist 中的用戶才允許登錄到 FTP 伺服器。
userlist_enable=YES # vsftpd 將會從所給的用戶列表文件中載入用戶名字列表
userlist_file=/etc/vsftpd.userlist # 存儲用戶名字的列表
userlist_deny=NO
重要的是,當用戶登錄 FTP 伺服器以後,他們將進入 chrooted 環境,即當在 FTP 會話時,其 root 目錄將是其 home 目錄。
接下來,我們來看一看兩種可能的途徑來設置 chrooted(本地 root)目錄,正如下面所展示的。
這時,讓我們添加/修改/取消這兩個選項來將 FTP 用戶限制在其 home 目錄
chroot_local_user=YES
allow_writeable_chroot=YES
選項chroot_local_user=YES 意味著本地用戶將進入 chroot 環境,當登錄以後默認情況下是其 home 目錄。
並且我們要知道,默認情況下,出於安全原因,VSFTPD 不允許 chroot 目錄具有可寫許可權。然而,我們可以通過選項 allow_writeable_chroot=YES 來改變這個設置
保存文件然後關閉。現在我們需要重啟 VSFTPD 服務從而使上面的這些更改生效:
------------- On SystemD -------------
# systemctl restart vsftpd
------------- On SysVInit -------------
# service vsftpd restart
第三步:在 Ubuntu 上測試 VsFTP 伺服器
現在,我們通過使用下面展示的 useradd 命令創建一個 FTP 用戶來測試 FTP 伺服器:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik
$ sudo passwd aaronkilik
然後,我們需要像下面這樣使用 echo 命令和 tee 命令來明確地列出文件/etc/vsftpd.userlist 中的用戶 aaronkilik:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist
現在,是時候來測試上面的配置是否具有我們想要的功能了。我們首先測試匿名登錄;我們可以從下面的輸出中很清楚的看到,在這個 FTP 伺服器中是不允許匿名登錄的:
# ftp 192.168.56.102
Connected to 192.168.56.102 (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : anonymous
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.
接下來,我們將測試,如果用戶的名字沒有在文件/etc/vsftpd.userlist 中,是否能夠登錄。從下面的輸出中,我們看到,這是不可以的:
# ftp 192.168.56.102
Connected to 192.168.56.102 (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : user1
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.
現在,我們將進行最後一項測試,來確定列在文件/etc/vsftpd.userlist 文件中的用戶登錄以後,是否實際處於 home 目錄。從下面的輸出中可知,是這樣的:
# ftp 192.168.56.102
Connected to 192.168.56.102 (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
在 Ubuntu 中確認 FTP 登錄
警告:設置選項allow_writeable_chroot=YES 是很危險的,特別是如果用戶具有上傳許可權,或者可以 shell 訪問的時候,很可能會出現安全問題。只有當你確切的知道你在做什麼的時候,才可以使用這個選項。
我們需要注意,這些安全問題不僅會影響到 VSFTPD,也會影響讓本地用戶進入 chroot 環境的 FTP daemon。
因為這些原因,在下一步中,我將闡述一個更安全的方法,來幫助用戶設置一個非可寫本地 root 目錄。
第四步:在 Ubuntu 中配置 FTP 用戶的 Home 目錄
現在,再次打開 VSFTPD 配置文件。
$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf
然後像下面這樣用# 把不安全選項注釋了:
#allow_writeable_chroot=YES
接下來,為用戶創建一個替代的本地 root 目錄(aaronkilik,你的可能和這不一樣),然後設置目錄許可權,取消其他所有用戶對此目錄的寫入許可權:
$ sudo mkdir /home/aaronkilik/ftp
$ sudo chown nobody:nogroup /home/aaronkilik/ftp
$ sudo chmod a-w /home/aaronkilik/ftp
然後,在本地 root 目錄下創建一個具有合適許可權的目錄,用戶將在這兒存儲文件:
$ sudo mkdir /home/aaronkilik/ftp/files
$ sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files
$ sudo chmod -R 0770 /home/aaronkilik/ftp/files/
之後,將 VSFTPD 配置文件中的下面這些選項添加/修改為相應的值:
user_sub_token=$USER # 在本地 root 目錄中插入用戶名
local_root=/home/$USER/ftp # 定義各個用戶的本地 root 目錄
保存文件並關閉。然後重啟 VSFTPD 服務來使上面的設置生效:
------------- On SystemD -------------
# systemctl restart vsftpd
------------- On SysVInit -------------
# service vsftpd restart
現在,讓我們來最後檢查一下,確保用戶的本地 root 目錄是我們在他的 Home 目錄中創建的 FTP 目錄。
# ftp 192.168.56.102
Connected to 192.168.56.102 (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
建議你看下這篇文檔http://www.linuxprobe.com/ubuntu-ftp-service.html,我覺得挺詳細的
『玖』 如何在linux中安裝ftp伺服器
vsftpd是一款在Linux發行版中最受推崇的FTP伺服器程序。特點是小巧輕快,安全易用。並且是一個完全免費開放源碼的ftp軟體
方法/步驟
1、用在線安裝
yum install vsftpd pam* db4*-y
使用命令將vsftp配置為系統服務
chkconfig --level 35 vsftpd on
2、配置vsftpd服務的宿主
useradd vsftpdadmin -s /sbin/nologin -M
這個vsftpdadmin只是用來替換root的,並不需要登錄
3、建立ftp虛擬宿主帳戶
useradd vsftpuser -s /sbin/nologin -M
這ftpuser只個虛擬帳戶的宿主,本身是不用登錄的
4、配置vsftpd.conf 配置之前要先備份一下原來的
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES --> anonymous_enable=NO //不允許匿名用戶訪問,默認是允許。
chroot_list_enable=YES --> chroot_list_enable=YES //不允許FTP用戶離開自己主目錄
增加
#設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄里,將存放每個Vsftp虛擬用戶個性的配置文件,一個需要注意的地方就是這些配置文件名必須和虛擬用戶名相同。
user_config_dir=/etc/vsftpd/vconf/userlocal
#這一步非常重要,要記住這一步。一會要根據這個配置新建文件夾
#修改埠號
ftp_data_port=4040
reverse_lookup_enable=NO
pasv_enable=yes
pasv_min_port=48790
pasv_max_port=48800
listen_port=48796 #埠可以根據你自己實際情況配置,也可以用默認埠。但是為了安全考慮根據自己實際情況配置
5、建立虛擬用戶文件
mkdir /etc/vsftpd/vconf
touch /etc/vsftpd/vonf/vir_user
6、建立虛擬用戶
vi /etc/vsftpd/vonf/vir_user
virtualuser //用戶名
12345678 //密碼
7、生成資料庫
db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db
8、設置資料庫文件訪問許可權
chmod 600 /etc/vsftpd/vconf/vir_user
chmod 600 /etc/vsftpd/vconf/vir_user.db
9、修改/etc/pam.d/vsftpd
auth sufficient pam_userdb.so db=/etc/vsftpd/vconf/vir_user
account sufficient pam_userdb.so db=/etc/vsftpd/vconf/vir_user
(要想同時使用系統用戶和虛擬用戶,就需要把required改成sufficient)
10
根據第四步配置的user_config_dir=/etc/vsftpd/vconf/userlocal
新建userlocal文件夾
mkdir /etc/vsftpd/vconf/userlocal
11、根據第六步建立的用戶名建立一個文件
例如第六步建立的帳號是virtualuser,則新建一個virtualuser文件
touch /etc/vsftpd/conf/userlocal/virtualuser
12、編輯該用戶訪問的文件路徑
vi /etc/vsftpd/conf/userlocal/virtualuser
輸入如下
local_root= //需要指定的網站根目錄,例如所在文件夾為/www/
anonymous_enable=NO #禁止匿名用戶訪問
write_enable=YES #開啟寫許可權
local_umask=022 #上傳後文件的許可權掩碼
anon_upload_enable=NO #關閉匿名下載
anon_mkdir_write_enable=NO #關閉匿名創建文件夾
idle_session_timeout=60 #會話自動關閉時間 60是因分鍾
data_connection_timeout=120 #數據延遲時間
max_clients=10 #最大連接數
max_per_ip=5 #同一個ip同時允許5個IP聯機
local_max_rate=1048576 #實體用戶傳輸速度限制,單位B/s。0代表不限制
13、配置就此完成,重啟vsftpd服務:service vsftpd restart。
查看系統埠狀態:netstas -tulnp。如果能看到48796埠正在被vsftpd調用說明啟動成功。
如有不清楚的可以再繼續看看網路經驗。
『拾』 如何在linux 伺服器上安裝 ftp
目錄:
一、Redhat/CentOS安裝vsftp軟體
二、Ubuntu/Debian安裝vsftp軟體
一、Redhat/CentOS安裝vsftp軟體
1.更新yum源
首先需要更新系統的yum源,便捷工具下載地址:http://help.aliyun.com/manual?spm=0.0.0.0.zJ3dBU&helpId=1692
2.安裝vsftp
使用yum命令安裝vsftp
#yum install vsftpd -y
3.添加ftp帳號和目錄
先檢查一下nologin的位置,通常在/usr/sbin/nologin或者/sbin/nologin下。
使用下面的命令創建帳戶,該命令指定了/alidata/www/wwwroot為用戶pwftp的家目錄,您可以自己定義帳戶名和目錄:
#useradd -d /alidata/www/wwwroot -s /sbin/nologin pwftp
修改該帳戶密碼:
#passwd pwftp
修改指定目錄的許可權
#chown -R pwftp.pwftp /alidata/www/wwwroot
4.配置vsftp
編輯vsftp配置文件,命令如下:
#vi /etc/vsftpd/vsftpd.conf
將配置文件中」anonymous_enable=YES 「改為 「anonymous_enable=NO」
取消如下配置前的注釋符號:
local_enable=YES
write_enable=YES
chroot_local_user=YES
保存修改,按ESC鍵,輸入:wq
5.修改shell配置
vi編輯/etc/shells,如果該文件里沒有/usr/sbin/nologin或者/sbin/nologin(具體看當前系統配置)則追加進去
6.啟動vsftp服務並測試登錄
使用命令啟動vsftp服務:
#service vsftpd start
然後用帳號pwftp測試下是否可以登陸ftp。目錄是/alidata/www/wwwroot。
二、Ubuntu/Debian安裝vsftp軟體
1.更新軟體源
首先需要更新系統的軟體源,便捷工具下載地址:http://help.aliyun.com/manual?spm=0.0.0.0.zJ3dBU&helpId=1692
2.安裝vsftp
使用apt-get命令安裝vsftp
#apt-get install vsftpd -y
3.添加ftp帳號和目錄
先檢查一下nologin的位置,通常在/usr/sbin/nologin或者/sbin/nologin下。
使用下面的命令創建帳戶,該命令指定了/alidata/www/wwwroot為用戶pwftp的家目錄,您可以自己定義帳戶名和目錄:
#useradd -d /alidata/www/wwwroot -s /sbin/nologin pwftp
修改該帳戶密碼:
#passwd pwftp
修改指定目錄的許可權
#chown -R pwftp.pwftp /alidata/www/wwwroot
4.配置vsftp
編輯vsftp配置文件,命令如下:
#vi /etc/vsftpd.conf
將配置文件中」anonymous_enable=YES 「改為 「anonymous_enable=NO」
取消如下配置前的注釋符號:
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
保存退出
編輯/etc/vsftpd.chroot_list文件,將ftp的帳戶名添加進去,保存退出
5.修改shell配置
vi編輯/etc/shells,如果該文件里沒有/usr/sbin/nologin或者/sbin/nologin(具體看當前系統配置)則追加進去
6.重啟vsftp服務並測試登錄
使用命令啟動vsftp服務:
#service vsftpd restart
然後用帳號pwftp測試下是否可以登陸ftp。目錄是/alidata/www/wwwroot。