linuxftpwput
linux 下FTP安裝及配置
一、FTP的安裝
1、檢測是否安裝了FTP :[root@localhost ~]# rpm -q vsftpd
如果安裝了會顯示版本信息:
[root@localhost ~]# vsftpd-2.0.5-16.el5_5.1
否則顯示:[root@localhost ~]# package vsftpd is not installed
2、如果沒安裝FTP,運行yum install vsftpd命令
具體的細節如下:(如果無法更新,你先配置能訪問互聯網,我有文檔叫 CentOS 在 VMware下,如何聯網到Internet的解決辦法 可以解決無法上網的問題)
[root@localhost ~]# yum install vsftpd
[root@localhost ~]#
3、完成ftp安裝後,將 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root這一行注釋掉
# root
4、執行以下命令
# setsebool -P ftpd_disable_trans=1
修改/etc/vsftpd/vsftpd.conf,在最後一行處添加local_root=/
5、重啟ftp進程 #service vsftpd restart
註:每次修改過ftp相關的配置文件,都需要重啟ftp進程來生效。
ftp伺服器就可以使用了。
*********************************************************************
二、vsftpd的配置文件說明:
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該文件里的用戶賬戶在默認情況下也不能訪問FTP伺服器,僅當vsftpd .conf配置文件里啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。來自定義用戶登錄控制、用戶許可權控制、超時設置、伺服器功能選項、伺服器性能選項、伺服器響應消息等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。
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
三、舉例建立一個名為test的賬戶並進行配置
根據實際情況對FTP進行配置後,下面舉例介紹建立一個FTP賬戶並進行簡單的配置:
1、創建一個賬號為test的賬戶:
#mkdir /tmp/test //首先創建好目錄
#adser -d /tmp/test -g ftp -s /sbin/nologin test //-s /sbin/nologin是讓其不能登陸系統,-d 是指定用戶目錄為/opt/srsman ,即該賬戶只能登陸ftp,卻不能用做登陸系統用。
#passwd test
Changing password for user beinan.//接下來會出現讓你設置新的密碼
New password:
Retype new password:
passwd: all authentication tokens updated successfully
創建賬戶成功!
2、限制用戶目錄,不得改變目錄到上級
修改/etc/vsftpd/vsftpd.conf
將這兩行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
注釋去掉
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
新增一個文件: /etc/vsftpd/chroot_list
內容寫需要限制的用戶名:
test
重新啟動vsftpd
# service vsftpd restart
3、最後為了防止伺服器由於斷電、重啟等現象發生,導致ftp進程在開機後未啟動,將其添加到開機啟動文件中:
(1)找到/etc/rc.local文件
(2)打開該文件,在最後一行添加:service vsftpd start
(3)保存,退出
4、通過在「我的電腦」中輸入ftp://192.168.179.30(填該ftp伺服器ip地址)進入ftp伺服器,輸入設置好的賬戶登陸即可。
5、CMD-》ftp 192.168.1.2
Cd /soft
Put c:\sss.log //這樣可以成功上傳, VSFTP不支持絕對目錄上傳,只能夠到當前目錄下上傳
B. linux下怎樣登錄ftp伺服器
1、首先,連接相應linux主機衡冊,進入到linux命令行狀態下,等待輸入shell指令。
C. Linux開啟FTP
1、安裝 vsftpd
2、設置 vsftpd 開機自啟動
3、啟動 FTP 服務
4、確認服務是否啟動
5、為 FTP 服務創建用戶,舉例創建admin
6、設置用戶密碼
7、創建 FTP 服務使用的文件目錄
8、修改目錄許可權
9、打開 vsftpd.conf 文件
按 i 切換至編輯模式
修改:
添加:
注釋:
按 Esc 後輸入 :wq 保存後退出
10、創建並編輯 chroot_list 文件
按 i 進入編輯模式,輸入用戶名,一個用戶名占據一行,例如:
設置完成後按 Esc 並輸入 :wq 保存後退出
11、重啟 FTP 服務
D. linux ftp伺服器拒絕連接
出現此問題的原因為:設置問題造成的。
解決的方法和詳細的操作步驟如下:
1、第一步,連接到相應的linux主機,進入linux命令行狀態,然後等待輸入shell命令,見下圖,轉到下面的步驟。
E. Linux之ftp命令使用方法及案例
Linux之ftp命令使用方法及案例
Example 1:登陸
[root@iZ25ja2kaemZ ~]# ftp 121.199.5.52
Connected to 121.199.5.52 (121.199.5.52).
220 Microsoft FTP Service
Name (121.199.5.52:root): tongsj
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ll
?Invalid command
ftp>
Example2:dir,cd ,quit 命令用法
ftp> dir ./app
227 Entering Passive Mode (121,199,5,52,128,234)
150 Opening ASCII mode data connection for /bin/ls.
total 0
drw-rw-rw- 1 user group 0 Nov 9 18:26 .
drw-rw-rw- 1 user group 0 Nov 9 18:26 ..
drw-rw-rw- 1 user group 0 Nov 9 18:24 Common
drw-rw-rw- 1 user group 0 Nov 9 18:24 Conf
drw-rw-rw- 1 user group 0 Nov 9 18:19 Lang
drw-rw-rw- 1 user group 0 Nov 9 18:23 Lib
drw-rw-rw- 1 user group 0 Nov 9 18:26 Runtime
drw-rw-rw- 1 user group 0 Nov 9 18:35 Tpl
226 Transfer complete.
ftp> cd base
250 Directory changed to /crms/Base
ftp> dir
227 Entering Passive Mode (121,199,5,52,128,235)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Nov 9 18:18 .
drw-rw-rw- 1 user group 0 Nov 9 18:18 ..
drw-rw-rw- 1 user group 0 Nov 9 18:12 Common
drw-rw-rw- 1 user group 0 Nov 9 18:13 Conf
drw-rw-rw- 1 user group 0 Nov 9 18:17 Extend
-rw-rw-rw- 1 user group 1854 Jan 18 2016 LICENSE.txt
drw-rw-rw- 1 user group 0 Nov 9 18:17 Lang
drw-rw-rw- 1 user group 0 Nov 9 18:17 Lib
-rw-rw-rw- 1 user group 5600 Jan 18 2016 README.txt
-rw-rw-rw- 1 user group 1568 Jan 18 2016 Thinkphp.php
drw-rw-rw- 1 user group 0 Nov 9 18:18 Tpl
-rw-rw-rw- 1 user group 7396 Jan 18 2016 logo.png
226 Transfer complete.
ftp> quie
?Invalid command
ftp> quit
221 Goodbye!
[root@iZ25ja2kaemZ ~]#
example3:幫助文件
ftp> help
Commands may be abbreviated. Commands are:
! debug mdir sendport site
$ dir mget put size
account disconnect mkdir pwd status
append exit mls quit struct
ascii form mode quote system
bell get modtime recv sunique
binary glob mput reget tenex
bye hash newer rstatus tick
case help nmap rhelp trace
cd idle nlist rename type
cp image ntrans reset user
chmod lcd open restart umask
close ls prompt rmdir verbose
cr macdef passive runique ?
delete mdelete proxy send
ftp> help dir
dir list contents of remote directory
ftp> help mdir
mdir list contents of multiple remote directories
ftp>
example4:重命名文件
ftp> dir
227 Entering Passive Mode (121,199,5,52,128,234)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Nov 9 18:46 .
drw-rw-rw- 1 user group 0 Nov 9 18:46 ..
drw-rw-rw- 1 user group 0 Nov 9 18:39 Install
drw-rw-rw- 1 user group 0 Nov 9 18:36 appImg
drw-rw-rw- 1 user group 0 Nov 11 11:08 css
drw-rw-rw- 1 user group 0 Nov 9 18:37 excelmodel
drw-rw-rw- 1 user group 0 Nov 9 18:46 file
drw-rw-rw- 1 user group 0 Nov 9 18:37 ico
drw-rw-rw- 1 user group 0 Nov 9 18:38 img
drw-rw-rw- 1 user group 0 Nov 11 11:11 js
-rw-rw-rw- 1 user group 3 Oct 25 15:56 ni.txt
drw-rw-rw- 1 user group 0 Nov 9 18:46 sound
drw-rw-rw- 1 user group 0 Nov 9 18:46 sql
226 Transfer complete.
ftp> rename ni.txt ss
350 File or directory exists, ready for destination name
250 RNTO command successful.
ftp> dir
227 Entering Passive Mode (121,199,5,52,128,235)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Nov 16 16:57 .
drw-rw-rw- 1 user group 0 Nov 16 16:57 ..
drw-rw-rw- 1 user group 0 Nov 9 18:39 Install
drw-rw-rw- 1 user group 0 Nov 9 18:36 appImg
drw-rw-rw- 1 user group 0 Nov 11 11:08 css
drw-rw-rw- 1 user group 0 Nov 9 18:37 excelmodel
drw-rw-rw- 1 user group 0 Nov 9 18:46 file
drw-rw-rw- 1 user group 0 Nov 9 18:37 ico
drw-rw-rw- 1 user group 0 Nov 9 18:38 img
drw-rw-rw- 1 user group 0 Nov 11 11:11 js
drw-rw-rw- 1 user group 0 Nov 9 18:46 sound
drw-rw-rw- 1 user group 0 Nov 9 18:46 sql
-rw-rw-rw- 1 user group 3 Oct 25 15:56 ss
226 Transfer complete.
example5 :格式 get [remote-file] [local-file],將文件從遠端主機中傳送至本地主機中,如要獲取伺服器上\rose\1.bmp,則 ftp> get /rose/1.bmp /tmp/1.bmp (回車),必須給出第二個參數,否則會復制失敗,登錄後執行:
ftp> get robots.txt /tmp/
local: /tmp/ remote: robots.txt
227 Entering Passive Mode (121,199,5,52,128,233)
150 Opening BINARY mode data connection for robots.txt (26 Bytes).
local: /tmp/: Is a directory
226 Transfer complete.
226 ABOR command successful.
ftp>
example 6:lcd 命令
ftp> lcd ..
Local directory now /
ftp> lcd /tmp/flower
Local directory now /tmp/flower
example 7: put命令
格式:put local-file [remote-file]
將本地一個文件傳送至遠端主機中.
如要把本地的1.bmp傳送到遠端主機e:\rose,並改名為333.bmp
ftp> put 1.bmp /rose/333.bmp (回車)
ftp> put /tmp/tt.txt ./nihaol.txt
local: /tmp/tt.txt remote: ./nihaol.txt
227 Entering Passive Mode (121,199,5,52,128,232)
150 Opening BINARY mode data connection for nihaol.txt.
226 Transfer complete.
5 bytes sent in 2.6e-05 secs (192.31 Kbytes/sec)
example 8: mput命令
格式:mput local-files
將本地主機中一批文件傳送至遠端主機.
如要把本地當前目錄下所有bmp文件上傳到伺服器e:\rose 下
ftp> cd /rose (回車)
ftp> mput *.bmp(回車)
注意:上傳文件都來自於主機的當前目錄下。比如,在/root/test下運行的ftp命令,則只有在/root/test下的文件linux才會 上傳到伺服器e:\rose 下
F. 如何在linux下開啟FTP服務
Linux下ftp服務可以通過搭建vsftpd服務來實現,以CentOS為例,首先查看系統中是否安裝了vsftpd,可以通過執行命令rpm -qa |grepvsftpd來查看是否安裝相應的包,如果沒有安裝那麼可以執行yum-yinstallvsftpd來安裝,安裝之後首先創建ftp用戶,比如ftp_test,命令如下:
useradd-s/sbin/nologin-d/home/ftp_testftp_test
目錄盡量不要選擇根目錄下,這里是/home/ftp_test,並且ftp_test這個目錄不要手動創建,否則許可權會有問題,執行命令的時候會自動創建,
現在可以看到上面的路徑是一個/,對於ftp用戶來說也就是根目錄了,只能在這個目錄下操作,而無法跳出這個目錄
以上就是vsftpd服務的基本搭建過程,實際使用時可以分配多個用戶
G. linux下ftp命令詳解
ftp(file transfer protocol)
功能說明:設置文件系統相關功能。
語法:ftp [-dignv][主機名稱或IP地址]
補充說明:FTP是ARPANet的標准文件傳輸協議,該網路就是現今Internet的前身。
參數: 《Linux就該這么學》
-d 詳細顯示指令執行過程,便於排錯或分析程序執行的情形。
-i 關閉互動模式,不詢問任何問題。
-g 關閉本地主機文件名稱支持特殊字元的擴充特性。
-n 不使用自動登陸。
-v 顯示指令執行過程。
1. 連接ftp伺服器
格式:ftp [hostname| ip-address]
a)在linux命令行下輸入:
ftp 192.168.1.1
b)伺服器詢問你用戶名和密碼,分別輸入用戶名和相應密碼,待認證通過即可。
c)也可以先輸入ftp
ftp>
d)然後在輸入要連接的IP
ftp>open 192.168.1.1
2. 下載文件
下載文件通常用get和mget這兩條命令。
a) get
格式:get [remote-file] [local-file]
將文件從遠端主機中傳送至本地主機中。
如要獲取遠程伺服器上/usr/your/1.htm,則
ftp> get /usr/your/1.htm 1.htm (回車)
b) mget
格式:mget [remote-files]
從遠端主機接收一批文件至本地主機。
如要獲取伺服器上/usr/your/下的所有文件,則
ftp> cd /usr/your/
ftp> mget *.* (回車)
此時每下載一個文件,都會有提示。如果要除掉提示,則在mget *.* 命令前先執行:prompt off
注意:文件都下載到了linux主機的當前目錄下。比如,在/usr/my下運行的ftp命令,則文件都下載到了/usr/my下。
3.上傳文件
a) put
格式:put local-file [remote-file]
將本地一個文件傳送至遠端主機中。
如要把本地的1.htm傳送到遠端主機/usr/your,並改名為2.htm
ftp> put 1.htm /usr/your/2.htm (回車)
b) mput
格式:mput local-files
將本地主機中一批文件傳送至遠端主機。
如要把本地當前目錄下所有html文件上傳到伺服器/usr/your/ 下
ftp> cd /usr/your (回車)
ftp> mput *.htm(回車)
H. linux ftp伺服器和window ftp伺服器有什麼區別
伺服器沒區別
區別在於伺服器裝載的操作系統,linux系統一般是大型公司企業的公用網路管理系統,安全性能高一些。操作也比較簡便,功能強大。