Ubuntu Server搭建FTP服务器(2) --本地用户FTP服务器架设
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu Server搭建FTP服务器(2) --本地用户FTP服务器架设
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Ubuntu Server搭建FTP服務器(2) --本地用戶FTP服務器架設
參考:ubuntu中文wiki百科,網址:wiki.ubuntu.org.cn環境:Ubuntu 9.04 Server+VSFTPD 2.0.7
slmagicbox@ubuntu904server:~$ uname -aLinux ubuntu904server 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 i686 GNU/Linux
slmagicbox@ubuntu904server:~$ dpkg -l? | grep vsftpd
ii? vsftpd??????????????????????????????????? 2.0.7-0ubuntu1??????????????????? The Very Secure FTP Daemon
原始配置文件/etc/vsftpd.conf:
本配置文件為安裝vsftpd后默認生成的,以“#”開頭為注釋項| ?# Example config file /etc/vsftpd.conf ?? ?listen=YES?????????????? #以standalone模式運行vsftpd ?? ?#listen_ipv6=YES ??? anonymous_enable=YES? #允許匿名用戶訪問 ?? ?#local_enable=YES ?? ?#write_enable=YES ?? ?#local_umask=022 ?? ?#anon_upload_enable=YES ?? ?#anon_mkdir_write_enable=YES ?? ?dirmessage_enable=YES??? #當用戶首次進入FTP服務器的目錄時,顯示該目錄下的message消息,默認為.message文件,可以用message_file來定義 ?? ?xferlog_enable=YES #啟用日志,默認路徑/var/log/vsftpd.log ?? ?connect_from_port_20=YES? #數據連接使用默認的ftp-data端口(20端口) ?? ?#chown_uploads=YES ?? ?#chown_username=whoever ?? ?#xferlog_file=/var/log/vsftpd.log ?? ?#xferlog_std_format=YES ?? ?#idle_session_timeout=600 ?? ?#data_connection_timeout=120 ?? ?#nopriv_user=ftpsecure ?? ?#async_abor_enable=YES ?? ?#ascii_upload_enable=YES ?? ?#ascii_download_enable=YES ?? ?#ftpd_banner=Welcome to blah FTP service. ?? ?#deny_email_enable=YES ?? ?#banned_email_file=/etc/vsftpd.banned_emails ?? ?# chroot_list_enable below. ?? ?#chroot_local_user=YES ?? ?#chroot_list_enable=YES ?? ?#chroot_list_file=/etc/vsftpd.chroot_list ?? ?#ls_recurse_enable=YES ?? ?# Debian customization ?? ?secure_chroot_dir=/var/run/vsftpd #忽略 ?? ?pam_service_name=vsftpd? #忽略 ?? ?rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #忽略 ?? ?rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #忽略 |
修改后功能:
1)不允許匿名,本地用戶可上傳???? anonymous_enable=NO? #注釋掉的話,默認為允許
???? anon_upload_enable=NO #anonymous_enable=YES時起作用,注釋掉的話,默認為允許,前提是全局上傳權限開啟(write_enable=YES)
???? anon_mkdir_write_enable=NO #anonymous_enable=YES時起作用,注釋掉的話,默認為允許,前提是全局上傳權限開啟(write_enable=YES)
???? local_enable=YES
???? write_enable=YES
???? local_umask=022 #默認為077
功能驗證:
1)匿名用戶無法登錄2)本地用戶登錄成功,并可瀏覽整個文件系統,ftp權限由系統權限來控制
3)在本地用戶主目錄下上傳一個文件,并且創建一個文件夾,觀察兩者權限。
???? slmagicbox@ubuntu904server:~$ ls -l
?????????? drwxr-xr-x 2 slmagicbox slmagicbox 4096 2009-05-11 16:43 test1 #文件夾權限為 777-022=744
?????????? -rw-r--r-- 1 slmagicbox slmagicbox??? 0 2009-05-11 16:43 test2#文件權限為 666-022=644
4) 添加一個本地用戶ftptest1,讓其可以ftp登錄
???? slmagicbox@ubuntu904server:~$ sudo useradd ftptest1 -m #創建一個新的本地用戶ftptest1,-m參數為創建該用戶home文件夾(/home/ftptest1),ftp用戶必須有home目錄,否則會報500 OOPS: cannot change directory:/home/ftptest1 的錯誤
???? slmagicbox@ubuntu904server:/home$ sudo passwd ftptest1? #為ftptest1用戶設置密碼
???? 輸入新的 UNIX 口令:
???? 重新輸入新的 UNIX 口令:
???? passwd: password updated successfully
??? slmagicbox@XXX:~$ ftp 192.168.0.111
?????? Connected to 192.168.0.111.
?????? 220 (vsFTPd 2.0.7)
?????? Name (192.168.0.111:slmagicbox): ftptest1
?????? 331 Please specify the password.
?????? Password:
?????? 230 Login successful.
?????? Remote system type is UNIX.
?????? Using binary mode to transfer files.
?????? ftp>????? #登錄成功
5)現在本地用戶可以ftp了,但是讓一個ftp用戶在你的服務器上到處逛,是不是感覺不放心呢?是否可以將ftp用戶限定在他們的home目錄下呢?這就要用到ch_root功能了。
???? 編輯配置文件/etc/vsftpd.conf:
???? chroot_local_user=YES
???? slmagicbox@ubuntu904server:~$ sudo /etc/init.d/vsftpd restart #重啟一下服務,讓配置更新
???? slmagicbox@FY-IT-Wangzh:~$ ftp 192.168.0.111
??????? Connected to 192.168.0.111.
??????? 220 (vsFTPd 2.0.7)
??????? Name (192.168.0.111:slmagicbox): ftptest1
??????? 331 Please specify the password.
??????? Password:
??????? 230 Login successful.
??????? Remote system type is UNIX.
??????? Using binary mode to transfer files.
??????? ftp> ls
??????? 200 PORT command successful. Consider using PASV.
??????? 150 Here comes the directory listing.
??????? 226 Directory send OK.
??????? ftp> cd /home
??????? 550 Failed to change directory.? #用戶被限定在自己的目錄下活動了
6)上面的效果是不是你想要的呢,但是管理員自己能不能有個特權呢,可以不被限制在home目錄下呢?
?????? 編輯配置文件/etc/vsftpd.conf:
?????? chroot_local_user=YES
?????? chroot_list_enable=YES?? #啟用chroot_list,列在該文件里的用戶排除在外,不限制在個人目錄下
?????? chroot_list_file=/etc/vsftpd.chroot_list? #定義chroot_list文件位置
?????? 創建并編輯/etc/vsftpd.chroot_list:
?????? slmagicbox@ubuntu904server:/etc$echo "slmagicbox" | sudo tee -a vsftpd.chroot_list #把你希望排除在外的用戶加入/etc/vsftpd.chroot_list
??????
?????? slmagicbox@ubuntu904server:~$ sudo /etc/init.d/vsftpd restart
7)? 僅靠local_enable=YES來控制本地用戶可以訪問ftp,使得服務器上的所有用戶都有權限來訪問ftp。你是不是希望可以控制,哪些用戶可以訪問,哪些用戶不可訪問?讓我們繼續?
?????? 編輯配置文件/etc/vsftpd.conf:
????? ? ? userlist_enable=YES?? #啟用ftp用戶列表
????????? userlist_deny=NO???? #不采用deny用戶列表方式。userlist_deny可以理解為在userlist_file中列出的用戶是被deny掉的,不允許訪問ftp的,這里設置為NO,即表示該列表中的用戶不是被deny掉的,是有權限訪問ftp的。可能有點搞,簡單點的理解就是userlist_deny設置是否采用黑名單,YES為采用;NO為不采用黑名單,即采用白名單。這里采用白名單,只有在userlist_file中列出的用戶才有權訪問ftp.
????????? userlist_file=/etc/vsftpd.user_list ? #定義userlist_file文件存放位置? ??
?????? 創建并編輯/etc/vsftpd.user_list:
????????? slmagicbox@ubuntu904server:~$ cd /etc/
????????? slmagicbox@ubuntu904server:/etc$ sudo touch vsftpd.user_list
????????? slmagicbox@ubuntu904server:/etc$ echo "slmagicbox" |sudo tee -a vsftpd.user_list
????????? slmagicbox@ubuntu904server:~$ sudo /etc/init.d/vsftpd restart
????? 看一下效果吧,應該只有slmagicbox可以訪問ftp。之后,把需要訪問ftp的用戶加入/etc/vsftpd.user_list就行了,這樣控制就簡單了,不遵守紀律的,管理員隨時可以把你請出去,別想用上ftp,嚯嚯!!
轉載于:https://blog.51cto.com/slmagicbox/157156
總結
以上是生活随笔為你收集整理的Ubuntu Server搭建FTP服务器(2) --本地用户FTP服务器架设的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看电影的说说 晒看电影说说心情短语207
- 下一篇: 喝酒的说说搞笑的句子186个