當前位置:編程學習大全網 - 源碼下載 - 怎樣用ubuntu14.04ftp架設文件***享服務器

怎樣用ubuntu14.04ftp架設文件***享服務器

FTP服務器的搭建,我要實現的需求是:

不允許匿名訪問,因為我的機器不想讓誰都能登錄上來,隨便獲取文件,

需要鎖定壹個目錄,因為在家裏,我需要給媳婦下載壹些電影 韓劇之類的東西,媳婦會來我機器下載,但是我不想讓他隨意操作我的東西。

萬壹刪除我的配置文件,我就慘了(吐槽壹下韓劇:媳婦問我,妳都沒看過韓劇怎麽知道它不好看呢,我說:我沒吃過屎 但是知道它壹定不好吃!)

另外,需要本機也能訪問,因為我要做壹些關於FTP的測試。

  不單獨建立FTP用戶,FTP也使用ubuntu桌面的用戶進行登錄和操作,

我還不希望FTP開始啟動。

好了 我們開始安裝,很簡單。

sudo apt-get install vsftpd

30秒內估計就能安裝完。

下面開始配置:

首先備份配置文件。

linuxidc@ubuntu:/etc/init$ cd /etc/

linuxidc@ubuntu:/etc$ sudo cp vsftpd.conf vsftpd.conf.old

接下來就是開始配置了,

咱們就針對需求來:

1. 不允許匿名訪問,因為我的機器不想讓誰都能登錄上來,隨便獲取文件,

配置如下:

23 anonymous_enable=NO

2.需要鎖定壹個目錄,因為在家裏,我需要給媳婦下載壹些電影 韓劇之類的東西,

 媳婦會來我機器下載,但是我不想讓他隨意操作我的東西。

 萬壹刪除我的配置文件,我就慘了

配置如下:

152 local_root=/home/linuxidc/公***的/FTP***享文件

備註:[FTP***享文件] 這個文件夾是我新建出來的

另外,需要本機也能訪問,因為我要做壹些關於FTP的測試。

配置如下:

26 local_enable=YES

  不單獨建立FTP用戶,FTP也使用ubuntu桌面的用戶進行登錄和操作,

配置如下:

120 #chroot_local_user=YES

121 chroot_list_enable=YES

122 # (default follows)

123 chroot_list_file=/etc/vsftpd.chroot_list

這裏需要/etc/vsftpd.chroot_list 這個文件,如果沒有請新建:

sudo gedit /etc/vsftpd.chroot_list

內容如下(例如我桌面的用戶名為linuxidc):

duoduo

其實就是把妳的用戶名寫進去

我還不希望FTP開始啟動。 壹會單獨說!

貼出我的配置文件。

# Example config file /etc/vsftpd.conf

#

# The default compiled in settings are fairly paranoid. This sample file

# loosens things up a bit, to make the ftp daemon more usable.

# Please see vsftpd.conf.5 for all compiled in defaults.

#

# READ THIS: This example file is NOT an exhaustive list of vsftpd options.

# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's

# capabilities.

#

#

# Run standalone? vsftpd can run either from an inetd or as a standalone

# daemon started from an initscript.

listen=YES

#

# Run standalone with IPv6?

# Like the listen parameter, except vsftpd will listen on an IPv6 socket

# instead of an IPv4 one. This parameter and the listen parameter are mutually

# exclusive.

#listen_ipv6=YES

#

# Allow anonymous FTP? (Disabled by default)

anonymous_enable=NO

#

# Uncomment this to allow local users to log in.

local_enable=YES

#

# Uncomment this to enable any form of FTP write command.

write_enable=YES

#

# Default umask for local users is 077. You may wish to change this to 022,

# if your users expect that (022 is used by most other ftpd's)

#local_umask=022

#

# Uncomment this to allow the anonymous FTP user to upload files. This only

# has an effect if the above global write enable is activated. Also, you will

# obviously need to create a directory writable by the FTP user.

#anon_upload_enable=YES

#

# Uncomment this if you want the anonymous FTP user to be able to create

# new directories.

#anon_mkdir_write_enable=YES

#

# Activate directory messages - messages given to remote users when they

# go into a certain directory.

dirmessage_enable=YES

#

# If enabled, vsftpd will display directory listings with the time

# in your local time zone. The default is to display GMT. The

# times returned by the MDTM FTP command are also affected by this

# option.

use_localtime=YES

#

# Activate logging of uploads/downloads.

xferlog_enable=YES

#

# Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES

#

# If you want, you can arrange for uploaded anonymous files to be owned by

# a different user. Note! Using "root" for uploaded files is not

# recommended!

#chown_uploads=YES

#chown_username=whoever

#

# You may override where the log file goes if you like. The default is shown

# below.

#xferlog_file=/var/log/vsftpd.log

#

# If you want, you can have your log file in standard ftpd xferlog format.

# Note that the default log file location is /var/log/xferlog in this case.

#xferlog_std_format=YES

#

# You may change the default value for timing out an idle session.

#idle_session_timeout=600

#

# You may change the default value for timing out a data connection.

#data_connection_timeout=120

#

# It is recommended that you define on your system a unique user which the

# ftp server can use as a totally isolated and unprivileged user.

#nopriv_user=ftpsecure

#

# Enable this and the server will recognise asynchronous ABOR requests. Not

# recommended for security (the code is non-trivial). Not enabling it,

# however, may confuse older FTP clients.

#async_abor_enable=YES

#

# By default the server will pretend to allow ASCII mode but in fact ignore

# the request. Turn on the below options to have the server actually do ASCII

# mangling on files when in ASCII mode.

# Beware that on some FTP servers, ASCII support allows a denial of service

# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd

# predicted this attack and has always been safe, reporting the size of the

# raw file.

# ASCII mangling is a horrible feature of the protocol.

#ascii_upload_enable=YES

#ascii_download_enable=YES

#

# You may fully customise the login banner string:

ftpd_banner=Welcome to linuxidc's FTP service.

#

# You may specify a file of disallowed anonymous e-mail addresses. Apparently

# useful for combatting certain DoS attacks.

#deny_email_enable=YES

# (default follows)

#banned_email_file=/etc/vsftpd.banned_emails

#

# You may restrict local users to their home directories. See the FAQ for

# the possible risks in this before using chroot_local_user or

# chroot_list_enable below.

#chroot_local_user=YES

#

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that

# the user does not have write access to the top level directory within the

# chroot)

#chroot_local_user=YES

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd.chroot_list

#

# You may activate the "-R" option to the builtin ls. This is disabled by

# default to avoid remote users being able to cause excessive I/O on large

# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume

# the presence of the "-R" option, so there is a strong case for enabling it.

#ls_recurse_enable=YES

#

# Customization

#

# Some of vsftpd's settings don't fit the filesystem layout by

# default.

#

# This option should be the name of a directory which is empty. Also, the

# directory should not be writable by the ftp user. This directory is used

# as a secure chroot() jail at times vsftpd does not require filesystem

# access.

secure_chroot_dir=/var/run/vsftpd/empty

#

# This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd

#

# This option specifies the location of the RSA certificate to use for SSL

# encrypted connections.

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

# This option specifies the location of the RSA key to use for SSL

# encrypted connections.

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

#

local_root=/home/linuxidc/公***的/FTP***享文件

現在可以重啟FTP了。

linuxidc@ubuntu:/etc$ sudo service vsftpd restart

vsftpd stop/waiting

vsftpd start/running, process 303

OK 看到這些 證明配置文件沒有問題,FTP啟動了

下面直接訪問FTP 看看:

linuxidc@ubuntu:/etc$ ftp 127.0.0.1

Connected to 127.0.0.1.

Welcome to linuxidc's FTP service.

Name (127.0.0.1:linuxidc): duoduo

Please specify the password.

Password:

OOPS: vsftpd: refusing to run with writable root inside chroot()

Login failed.

Service not available, remote server has closed connection

ftp>

居然報了壹個500的錯誤

vsftpd: refusing to run with writable root inside chroot()

。其實這裏是需要特殊說明的,原因出在這裏

120 #chroot_local_user=YES

121 chroot_list_enable=YES

122 # (default follows)

123 chroot_list_file=/etc/vsftpd.chroot_list

我們用

chroot_list_enable=YES 和 chroot_list_file=/etc/vsftpd.chroot_list配合使用,使得只有在vsftpd.chroot_list中配置的用戶才能登錄FTP。

對於這要的配置有壹個特殊的要求,就是vsftpd.chroot_list裏面配置的用戶,對於前面local_root配置的目錄不能有寫的權限!

也就是/home/linuxidc/公***的/FTP***享文件 這個文件夾 對於linuxidc這個用戶不能有寫的權限,

我們為了額操作方便可以這麽做:

sudo chown -R root:root /home/linuxidc/公***的/FTP***享文件/

這樣,linuxidc這個用戶對於/home/linuxidc/公***的/FTP***享文件沒有寫權限了,

現在重啟FTP 重新登錄看看:

linuxidc@ubuntu:/etc$ ftp 127.0.0.1

Connected to 127.0.0.1.

Welcome to linuxidc's FTP service.

Name (127.0.0.1:linuxidc): duoduo

Please specify the password.

Password:

Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

OK FTP 好了 可以登錄了

但是我剛才 sudo chown -R root:root /home/linuxidc/公***的/FTP***享文件/ 這個操作

還帶來了壹個麻煩。就是FTP***享文件在我桌面登錄時,不能任意復制粘貼操作文件了,但是我還要必須保持linuxidc用戶對[FTP***享文件]

這個文件夾不可寫。這該怎麽辦呢?

其實很簡單,

cd /home/linuxidc/公***的/FTP***享文件

sudo mkdir FTPFILES

sudo chown -R linuxidc:duoduo FTPFILES

這樣 就保持了 FTP***享文件 文件夾linuxidc用戶不可寫,但duoduo用戶用可以在桌面登錄時任意操作文件了,只不過此時的隨意範圍在FTPFILES文件夾範圍呢了。

這樣基本FTP服務基本搭建完成了。

對了 忘記了壹點。就是不讓FTP服務開機啟動。操作如下:

linuxidc@ubuntu:/etc/init$ cd /etc/init/

linuxidc@ubuntu:/etc/init$ sudo cp vsftpd.conf vsftpd.conf.old

編輯配置文件

sudo gedit /etc/init/vsftpd.conf

將#start on runlevel [2345] or net-device-up IFACE!=lo 修改為start on runlevel [345] 如下:

#start on runlevel [2345] or net-device-up IFACE!=lo

start on runlevel [345]

stop on runlevel [!2345]

這次重啟FTP 重啟系統 徹底完成。

  • 上一篇:什麽是面向對象的開發方法?面向對象開發方法的解釋。
  • 下一篇:2019新郎婚禮上對新娘的表白
  • copyright 2024編程學習大全網