[-]
[+]
|
Changed |
bftpd.changes
|
|
[-]
[+]
|
Changed |
bftpd.spec
^
|
|
[-]
[+]
|
Deleted |
bftpd-2.1.tar.gz/redhat/bftpd-2.1.spec
^
|
@@ -1,54 +0,0 @@
-%define name bftpd
-%define version 2.1
-%define release 1
-%define prefix /usr
-
-Summary: A small, fast and easy-to-configure FTP server.
-Name: %{name}
-Version: %{version}
-Release: %{release}
-License: GPL
-Group: System Environment/Daemons
-Vendor: Jesse Smith <jessefrgsmith@yahoo.ca>
-URL: http://bftpd.sourceforge.net/
-Source0: http://bftpd.sourceforge.net/downloads/rpm/%{name}-%{version}.tar.gz
-BuildArch: i386
-#BuildRoot: /var/tmp/%{name}-root
-Provides: bftpd
-
-%description
-A very configurable small FTP server
-bftpd is a easy-to-configure and small FTP server that supports chroot
-without special directory preparation or configuration. Most FTP commands
-are supported.
-
-%prep
-%setup
-
-%build
-make
-
-%install
-make install
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%config(noreplace) %verify(not mtime) /etc/bftpd.conf
-%{prefix}/sbin/bftpd
-%{prefix}/share/man/man8/bftpd.8
-
-%changelog
-* Mon Jan 1 2007 Joe Klemmer <joe@webtrek.com>
-- updated the version number.
-* Mon Jan 9 2006 Joe Klemmer <joe@webtrek.com>
-- added defined variables to the top of the file.
-- set the config file in the %files section so it won't
- be over written on upgrades.
-- added a default attributes to the %files section.
-- redid the summery section to bring it in line with "rpm
- spec file standards" (an oxymoron if ever there was one).
-- changed the depricated "Copyright" into "License".
-
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/CHANGELOG
^
|
@@ -1,6 +1,161 @@
This file contains all major changes made during the development of bftpd.
The uppermost change is the newest one.
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 3.5
+ - Added explicit setting of sin_family to AF_INET to
+ avoid ambiguity and possible bind errors.
+ (Patch provided by Tony.)
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 3.4
+ - Added configuration file option TIMEZONE_FIX. By
+ default Bftpd tries to guess the time zone, working
+ around the C library. When running on a system where
+ the C library can correctly guess the time zone in
+ a chroot environment, set TIMEZONE_FIX="no" in the
+ bftpd.conf file.
+ - Added -v command line option which will cause
+ Bftpd to display the current version and exit.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 3.3
+ - Time stamps in the log file were not correct
+ after chrooting. Added time zone code to make
+ sure we can calculate the correct time without
+ access to system time zone info.
+ (Thanks to Paul for reporting this bug.)
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 3.2
+ - Added new value for SHOW_HIDDEN_FILES option in the
+ config file. The option can now be set to "yes",
+ "no" or "always". This allows admins to determine whether
+ clients can see hidden files if it is requested, never
+ or all the time, repectively. Please see the config file
+ comments for details.
+ - Made sure HIDE_GROUP variable will cause files belonging
+ to a given group to not be shown to the client.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 3.1
+ - Make sure default config disables anonymous login
+ by default.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 3.0
+ - Updated documentation to fix links. Thanks to Xiang for
+ pointing out the error.
+ - Added Slovak documentation, provided by Dusan.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.9
+ - Bftpd will attempt to create it's utmp directory
+ if that directory does not exist. Fixes issue on
+ Ubuntu where the direcotry is wiped out at each
+ reboot.
+ - The ROOTDIR option now works properly for
+ anonymous users.
+ Thanks to Paul for reporting this bug.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.8
+ - Added patch which will allow client to see hidden
+ files if the "-a" parameter is used in list commands.
+ Hidden files are only shown if SHOW_HIDDEN_FILES
+ is enabled in the config file.
+ Patch provded by Raster.
+ - Swapped out glob function for custom directory
+ search matching. Allows clients to see broken
+ symbolic links if "SHOW_NONREADABLE_FILES" is set
+ to "yes".
+ Patch supplied by Raster.
+ - Added patch to clean up zombies if several children
+ processes all die at the same time. We were cleaning up
+ just one child per signal before.
+ Patch supplied by Raster.
+ - Fixed typo in log error message.
+ - Made sure we can read user config file options
+ even with unusual compile flags.
+ - Fixed anonymous login.
+ - Anonymous login disabled by default in the config file.
+
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.7
+ - Added patch from Raster which returns more speicifc error
+ messages to the client when a file or directory cannot be
+ removed. This should avoid confusing some clients when the
+ user attempts to remove a directory.
+ - Added checks for increased security/stability and to remove
+ compiler warnings.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.6
+ - Removed some debugging information from the log file.
+ - Made certain that bandwidth log will not over-write itself
+ when multiple users are logged in.
+ - Bandwidth log file is flushed to avoid loss of data.
+ - Bftpd will write to bandwidth log even if client does
+ not disconnect cleanly.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.5
+ - Added better UTF support. Clients that check for this
+ will now enable UTF-8. For example, Filezilla.
+ - Made sure remote admin login was disabled. This shouldn't
+ have worked anyway, but disabled the feature to make sure.
+ - Added additional log file which tracks user bandwidth.
+ See the option in the config file called BANDWIDTH.
+ - Updated README file to contain notes on logging.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.4
+ - Fixed a possible security hole which would allow
+ attackers to perform a DoS attack against bftpd.
+ (Thanks to Dazhi for pointing out this problem.)
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.2.1 (aka 2.3)
+ - Bftpd should not attempt to close stdin, stdout and stderr
+ if they do not exist. Fixed this in main.c.
+ (Patch provided by Ivan A-R.)
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.2
+ - Bftpd does not exit when an incorrect password is given.
+ The server does drop connections in cases where logins are
+ specifically denied, full server or if an error appears in
+ the config file.
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.1.2
+ - Added option to not show files in a dir list
+ if the file is not readable. Thanks to Eric
+ Woltermann for sending in this patch.
+ By default non-readable files are not listed.
+ See the SHOW_NONREADABLE_FILES config option.
+ - Make the replace() function safer with
+ range checking to avoid buffer over-flow.
+ - Fixed calls to replace() function.
+ - Most string buffers now have a set size of
+ MAX_STRING_LENGTH, rather than some arbitraty size.
+ - Applied patch to allow user specific data to
+ be subsituted into the user MOTD file path.
+ The symbols %u and %h and be used in place of the
+ user's username and home directory in the MOTD_USER
+ config option.
+ Thanks to Eric Woltermann for submitting this patch.
+ - Bftpd now prompts for a password, even on anonymous
+ accounts to help increase compatiblity with some
+ web browsers.
+
+
+Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.1.1
+ - Fixed directory creation so that the proper
+ umask is used. thanks to Thiemo for pointing
+ out this problem.
+ - Fixed buffer under-size error in options.c
+ Thanks to Athan for reporting this bug.
+
+
Jesse Smith <jessefrgsmith@yahoo.ca> -> 2.1
- By default, the SITE command is now disabled
in the bftpd.conf file. This is to prevent
|
[-]
[+]
|
Deleted |
bftpd-3.5.tar.bz2/INSTALL
^
|
-(symlink to doc/en/bftpddoc-en.txt)
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/Makefile
^
|
@@ -1,5 +1,5 @@
# Generated automatically from Makefile.in by configure.
-VERSION=2.1
+VERSION=3.5
CC=gcc
INSTALL=/usr/bin/install -c
CFLAGS=-g -O2 -DHAVE_CONFIG_H -Wall -I. -DVERSION=\"$(VERSION)\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
@@ -31,10 +31,11 @@
$(INSTALL) -g 0 -m 644 -o 0 bftpd.8 $(DESTDIR)/$(mandir)/man8
[ -f $(DESTDIR)/etc/bftpd.conf ] || \
$(INSTALL) -g 0 -m 600 -o 0 bftpd.conf $(DESTDIR)/etc
- touch /var/log/bftpd.log
- chmod 644 /var/log/bftpd.log
- mkdir -p /var/run/bftpd
- chmod 755 /var/run/bftpd
+ mkdir -p $(DESTDIR)/var/log
+ touch $(DESTDIR)/var/log/bftpd.log
+ chmod 644 $(DESTDIR)/var/log/bftpd.log
+ mkdir -p $(DESTDIR)/var/run/bftpd
+ chmod 755 $(DESTDIR)/var/run/bftpd
clean distclean:
rm -f *~ $(OBJS) bftpd mksources.finished config.cache
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/Makefile.in
^
|
@@ -1,4 +1,4 @@
-VERSION=2.1
+VERSION=3.5
CC=@CC@
INSTALL=@INSTALL@
CFLAGS=@CFLAGS@ @DEFS@ -Wall -I. -DVERSION=\"$(VERSION)\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE @DEBUG@
@@ -30,10 +30,11 @@
$(INSTALL) -g 0 -m 644 -o 0 bftpd.8 $(DESTDIR)/$(mandir)/man8
[ -f $(DESTDIR)/etc/bftpd.conf ] || \
$(INSTALL) -g 0 -m 600 -o 0 bftpd.conf $(DESTDIR)/etc
- touch /var/log/bftpd.log
- chmod 644 /var/log/bftpd.log
- mkdir -p /var/run/bftpd
- chmod 755 /var/run/bftpd
+ mkdir -p $(DESTDIR)/var/log
+ touch $(DESTDIR)/var/log/bftpd.log
+ chmod 644 $(DESTDIR)/var/log/bftpd.log
+ mkdir -p $(DESTDIR)/var/run/bftpd
+ chmod 755 $(DESTDIR)/var/run/bftpd
clean distclean:
rm -f *~ $(OBJS) bftpd mksources.finished config.cache
|
[-]
[+]
|
Deleted |
bftpd-3.5.tar.bz2/README
^
|
-(symlink to doc/en/bftpddoc-en.txt)
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/bftpd.conf
^
|
@@ -2,7 +2,6 @@
#The given values are only examples, modify this file for your own needs.
global {
-
#If set to no, access is allowed.
#If set to yes, access is denied without giving a reason.
#If set to anything else, access is denied giving the content of this
@@ -94,8 +93,20 @@
# This option determines whether hidden files
# ( files that start with a "." )
# will be shown in a directory listing.
+ # If this option is set to "yes", the client will be
+ # able to see hidden files ONLY if they pass the "-a"
+ # option to the list command. For example "ls -a".
+ # If this option is set to "no", then hidden files are
+ # never shown, regardless of whether "-a" is used.
+ # Additionally, if we want the server to always send hidden
+ # files to the client, whether they request hidden files or
+ # not, set this to "always".
SHOW_HIDDEN_FILES="no"
+ # This option determines whether files not readable
+ # to the ftp user will be shown in a directory listing.
+ SHOW_NONREADABLE_FILES="no"
+
#When set to yes, this option makes the server allow data connections which
#don't go to the client who initiated them.
#This is needed for FXP.
@@ -113,6 +124,14 @@
#receive a 1 MB file when he has sent a 2 MB file.
RATIO="none"
+ # Use this option to track bandwidth usage. After each session, the server
+ # will log how much data was uploaded and downloaded for each user.
+ # This option should point to the directory where the log files will
+ # be saved.
+ # Each day gets its own log file, to make it easier to rotate logs.
+ # Please note, this directory must be created manually.
+ # BANDWIDTH="/var/log/bftpd"
+
#ROOTDIR specifies the root directory of the client. It defaults to %h
#(user's home directory). %u is replaced by the user name.
ROOTDIR="%h"
@@ -164,6 +183,7 @@
#Path to the message of the day, seen after login, relative to the root
#path of the user (see ROOTDIR).
+ # Use symbols %u and %h in place of user's username and home directory.
MOTD_USER="/.ftpmotd"
#If RESOLVE_UIDS is enabled, in directory lists the user and group names
@@ -270,11 +290,20 @@
# The location of the root directory can change when using DO_CHROOT.
# The current working directory (cwd) is passed to the script you run.
# POST_WRITE_SCRIPT="/bin/false"
+
+ # The GNU C library makes some assumptions about the local time zone
+ # when run in a chroot environment. The Bftpd server tries to work
+ # around these assumptions to give the correct time. If we are
+ # running in an environment which does not require the time zone
+ # fix, set TIMEZONE_FIX to "no".
+ # TIMEZONE_FIX="no"
}
user ftp {
#Any password fits.
ANONYMOUS_USER="yes"
+ DENY_LOGIN="Anonymous login disabled."
+ #ROOTDIR="/path/for/anonymous/user"
}
user anonymous {
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/bftpdutmp.c
^
|
@@ -1,6 +1,7 @@
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
+#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
@@ -14,6 +15,27 @@
FILE *bftpdutmp = NULL;
long bftpdutmp_offset = 0xFFFFFFFF;
+void bftpdutmp_create_dir(char *path_to_file)
+{
+ char *dir_name, *index;
+
+ if (! path_to_file) return;
+
+ dir_name = strdup(path_to_file);
+ if (! dir_name)
+ return;
+
+ index = strrchr(dir_name, '/');
+ if (index)
+ {
+ index[0] = '\0'; /* wipe out everything after folder name */
+ mkdir(dir_name, 0755);
+ }
+ free(dir_name);
+}
+
+
+
void bftpdutmp_init()
{
char *filename = strdup(config_getoption("PATH_BFTPDUTMP"));
@@ -23,14 +45,17 @@
if ((!strcasecmp(filename, "none")) || (!filename[0]))
return;
- /* First we have to create the file if it doesn't exist */
+ /* try to create the directory, if it does not exist yet */
+ bftpdutmp_create_dir(filename);
+
+ /* we have to create the file if it doesn't exist */
bftpdutmp = fopen(filename, "a");
if (bftpdutmp)
fclose(bftpdutmp);
/* Then we can open it for reading and writing */
if (!(bftpdutmp = fopen(filename, "r+"))) {
- bftpd_log("Could not open log file %s.", filename);
+ bftpd_log("Could not open log file %s.\n", filename);
control_printf(SL_FAILURE, "421-Could not open file %s\r\n"
"421 Server disabled for security reasons.", filename);
exit(1);
@@ -54,6 +79,8 @@
{
struct bftpdutmp ut, tmp;
long i;
+ int max_length;
+
if (!bftpdutmp)
return;
memset((void *) &ut, 0, sizeof(ut));
@@ -61,7 +88,9 @@
if (type) {
ut.bu_type = 1;
strncpy(ut.bu_name, user, sizeof(ut.bu_name));
- strncpy(ut.bu_host, remotehostname, sizeof(ut.bu_host));
+ max_length = sizeof(ut.bu_host);
+ strncpy(ut.bu_host, remotehostname, max_length);
+ ut.bu_host[max_length - 1] = '\0'; /* avoid non-null terminated string */
/* Determine offset of first user marked dead */
rewind(bftpdutmp);
i = 0;
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/commands.c
^
|
@@ -79,13 +79,13 @@
void control_printf(char success, char *format, ...)
{
- char buffer[256];
+ char buffer[MAX_STRING_LENGTH];
va_list val;
va_start(val, format);
vsnprintf(buffer, sizeof(buffer), format, val);
va_end(val);
fprintf(stderr, "%s\r\n", buffer);
- replace(buffer, "\r", "");
+ replace(buffer, "\r", "", MAX_STRING_LENGTH);
bftpd_statuslog(3, success, "%s", buffer);
}
@@ -203,18 +203,23 @@
return;
}
mystrncpy(user, username, sizeof(user) - 1);
- userinfo_set = 1; /* Dirty! */
+ userinfo_set = 1; /* Dirty! */
alias = (char *) config_getoption("ALIAS");
- userinfo_set = 0;
+ userinfo_set = 0;
if (alias[0] != '\0')
mystrncpy(user, alias, sizeof(user) - 1);
- init_userinfo();
+ init_userinfo();
+ userinfo_set = 1; /* just in case we missed it */
#ifdef DEBUG
bftpd_log("Trying to log in as %s.\n", user);
#endif
expand_groups();
if (!strcasecmp(config_getoption("ANONYMOUS_USER"), "yes"))
- bftpd_login("");
+ {
+ state = STATE_USER;
+ control_printf(SL_SUCCESS, "331 Password please.");
+ /* bftpd_login(""); */
+ }
else {
state = STATE_USER;
control_printf(SL_SUCCESS, "331 Password please.");
@@ -229,8 +234,10 @@
}
if (bftpd_login(password)) {
bftpd_log("Login as user '%s' failed.\n", user);
- control_printf(SL_FAILURE, "421 Login incorrect.");
- exit(0);
+ control_printf(SL_FAILURE, "530 Login incorrect.");
+ // exit(0);
+ state = STATE_CONNECTED;
+ return;
}
}
@@ -437,6 +444,8 @@
char str[256];
fd_set rfds;
struct timeval tv;
+ char *result;
+
if (selectbefore) {
tv.tv_sec = 0;
tv.tv_usec = 0;
@@ -445,8 +454,9 @@
if (!select(fileno(stdin) + 1, &rfds, NULL, NULL, &tv))
return 0;
}
- fgets(str, sizeof(str), stdin);
- if (strstr(str, "ABOR")) {
+
+ result = fgets(str, sizeof(str), stdin);
+ if ( (result) && (strstr(str, "ABOR")) ) {
control_printf(SL_SUCCESS, "426 Transfer aborted.");
close(file);
close(sock);
@@ -536,6 +546,7 @@
unsigned long get_value;
int change_buffer_size = FALSE;
int stdin_fileno;
+ int write_result;
#ifdef HAVE_ZLIB_H
gzFile my_zip_file = NULL;
#endif
@@ -688,6 +699,7 @@
run_script(post_write_script, mapped);
bftpdutmp_end();
+ // Update_Send_Recv(user, bytes_sent, bytes_recvd);
exit(0);
}
if (FD_ISSET(stdin_fileno, &rfds)) {
@@ -723,7 +735,11 @@
gzwrite( my_zip_file, buffer, i );
#endif
if(! attempt_gzip)
- write(fd, buffer, i);
+ {
+ write_result = write(fd, buffer, i);
+ if (write_result == -1)
+ break;
+ }
/* Check to see if our bandwidth usage should change. -- Jesse */
if (change_buffer_size)
@@ -766,6 +782,7 @@
if (mapped)
free(mapped);
+ // Update_Send_Recv(user, bytes_sent, bytes_recvd);
}
void command_stor(char *filename)
@@ -1215,7 +1232,7 @@
if (xfertype == TYPE_ASCII) {
buffer[i] = '\0';
- i += replace(buffer, "\n", "\r\n");
+ i += replace(buffer, "\n", "\r\n", xfer_bufsize);
}
send_status = send(sock, buffer, i, 0);
// check for dropped connection
@@ -1258,14 +1275,26 @@
control_printf(SL_SUCCESS, "226 File transmission successful.");
bftpd_log("File transmission of '%s' successful.\n", filename);
if (mapped) free(mapped);
+ // Update_Send_Recv(user, bytes_sent, bytes_recvd);
}
void do_dirlist(char *dirname, char verbose)
{
+ int show_hidden = FALSE;
FILE *datastream;
+
if (dirname[0] != '\0') {
- /* skip arguments */
- if (dirname[0] == '-') {
+ /* check for show hidden files flag */
+ if ( (dirname[0] == '-' ) && (dirname[1] == 'a') )
+ {
+ show_hidden = TRUE;
+ while ((dirname[0] != ' ') && (dirname[0] != '\0'))
+ dirname++;
+ if (dirname[0] != '\0')
+ dirname++;
+ }
+ /* skip other arguments */
+ else if (dirname[0] == '-') {
while ((dirname[0] != ' ') && (dirname[0] != '\0'))
dirname++;
if (dirname[0] != '\0')
@@ -1274,17 +1303,17 @@
}
if (dataconn())
return;
- alarm(0);
+ alarm(0);
datastream = fdopen(sock, "w");
if (dirname[0] == '\0')
- dirlist("*", datastream, verbose);
+ dirlist("*", datastream, verbose, show_hidden);
else {
char *mapped = bftpd_cwd_mappath(dirname);
- dirlist(mapped, datastream, verbose);
+ dirlist(mapped, datastream, verbose, show_hidden);
free(mapped);
}
fclose(datastream);
- alarm(control_timeout);
+ alarm(control_timeout);
control_printf(SL_SUCCESS, "226 Directory list has been submitted.");
}
@@ -1342,17 +1371,41 @@
void command_dele(char *filename)
{
+ struct stat sbuf;
char *mapped = bftpd_cwd_mappath(filename);
if (pre_write_script)
run_script(pre_write_script, mapped);
+ /*
if (unlink(mapped)) {
bftpd_log("Error: '%s' while trying to delete file '%s'.\n",
strerror(errno), filename);
+ */
+ if ( lstat(mapped, &sbuf) == -1 ) {
control_printf(SL_FAILURE, "451 Error: %s.", strerror(errno));
} else {
+ /*
bftpd_log("Deleted file '%s'.\n", filename);
control_printf(SL_SUCCESS, "200 OK");
+ */
+ if (S_ISDIR(sbuf.st_mode))
+ {
+ bftpd_log("Error: '%s' while trying to delete folder '%s' with DELE.\n", strerror(errno), filename);
+ control_printf(SL_FAILURE, "550 %s: Is a directory", filename);
+ }
+ else
+ {
+ if (unlink(mapped))
+ {
+ bftpd_log("Error: '%s' while trying to delete file '%s'.\n", strerror(errno), filename);
+ control_printf(SL_FAILURE, "451 Error: %s.", strerror(errno));
+ }
+ else
+ {
+ bftpd_log("Deleted file '%s'.\n", filename);
+ control_printf(SL_SUCCESS, "200 OK");
+ }
+ }
}
if (post_write_script)
@@ -1368,7 +1421,7 @@
if (pre_write_script)
run_script(pre_write_script, mapped);
- if (mkdir(mapped, 0755)) {
+ if (mkdir(mapped, 0777)) {
bftpd_log("Error: '%s' while trying to create directory '%s'.\n",
strerror(errno), dirname);
control_printf(SL_FAILURE, "451 Error: %s.", strerror(errno));
@@ -1390,8 +1443,21 @@
run_script(pre_write_script, mapped);
if (rmdir(mapped)) {
+ /*
bftpd_log("Error: '%s' while trying to remove directory '%s'.\n", strerror(errno), dirname);
control_printf(SL_FAILURE, "451 Error: %s.", strerror(errno));
+ */
+ if (errno == ENOTEMPTY)
+ {
+ bftpd_log("Error: '%s' while trying to remove directory '%s': not empty.\n", strerror(errno), dirname);
+ control_printf(SL_FAILURE, "550 %s: Directory not empty", dirname);
+ }
+ else
+ {
+ bftpd_log("Error: '%s' while trying to remove directory '%s'.\n", strerror(errno), dirname);
+ control_printf(SL_FAILURE, "451 Error: %s.", strerror(errno));
+ }
+
} else {
bftpd_log("Removed directory '%s'.\n", dirname);
control_printf(SL_SUCCESS, "250 OK");
@@ -1472,6 +1538,7 @@
control_printf(SL_SUCCESS, "221 %s", config_getoption("QUIT_MSG"));
/* Make sure we log user out. -- Jesse <slicer69@hotmail.com> */
bftpdutmp_end();
+ // Update_Send_Recv(user, bytes_sent, bytes_recvd);
exit(0);
}
@@ -1680,6 +1747,7 @@
{"XRMD", "<sp> pathname", command_rmd, STATE_AUTHENTICATED, 1},
{"RMD", "<sp> pathname", command_rmd, STATE_AUTHENTICATED, 0},
{"NOOP", "(no operation)", command_noop, STATE_AUTHENTICATED, 0},
+ {"OPTS", "<sp> string <sp> val", command_opts, STATE_AUTHENTICATED, 0},
{"RNFR", "<sp> pathname", command_rnfr, STATE_AUTHENTICATED, 0},
{"RNTO", "<sp> pathname", command_rnto, STATE_RENAME, 0},
{"REST", "<sp> byte-count", command_rest, STATE_AUTHENTICATED, 1},
@@ -1688,9 +1756,9 @@
{"HELP", "[<sp> command]", command_help, STATE_AUTHENTICATED, 0},
{"STAT", "<sp> pathname", command_stat, STATE_AUTHENTICATED, 0},
{"SITE", "<sp> string", command_site, STATE_AUTHENTICATED, 0},
- {"FEAT", "(returns list of extensions)", command_feat, STATE_AUTHENTICATED, 0},
+ {"FEAT", "(returns list of extensions)", command_feat, STATE_AUTHENTICATED, 1},
/* {"AUTH", "<sp> authtype", command_auth, STATE_CONNECTED, 0},
-*/ {"ADMIN_LOGIN", "(admin)", command_adminlogin, STATE_CONNECTED, 0},
+ {"ADMIN_LOGIN", "(admin)", command_adminlogin, STATE_CONNECTED, 0},*/
{"MGET", "<sp> pathname", command_mget, STATE_AUTHENTICATED, 0},
{"MPUT", "<sp> pathname", command_mput, STATE_AUTHENTICATED, 0},
{NULL, NULL, NULL, 0, 0}
@@ -1703,9 +1771,19 @@
for (i = 0; commands[i].name; i++)
if (commands[i].showinfeat)
control_printf(SL_SUCCESS, " %s", commands[i].name);
+ control_printf(SL_SUCCESS, " UTF8");
control_printf(SL_SUCCESS, "211 End");
}
+void command_opts(char *params)
+{
+ if (! strcasecmp(params, "utf8 on") )
+ control_printf(SL_SUCCESS, "200 UTF8 ON");
+ else
+ control_printf(SL_SUCCESS, "550 %s not implemented", params);
+}
+
+
void command_help(char *params)
{
int i;
@@ -1838,3 +1916,9 @@
return TRUE;
}
+
+void Force_Update_Sent_Recv_Log()
+{
+ Update_Send_Recv(user, bytes_sent, bytes_recvd);
+}
+
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/commands.h
^
|
@@ -67,6 +67,7 @@
void command_quit(char *);
void command_help(char *);
void command_stat(char *);
+void command_opts(char *);
void command_feat(char *);
struct command {
@@ -84,5 +85,7 @@
and FALSE on failure. */
int run_script(char *script, char *path);
+void Force_Update_Sent_Recv_Log();
+
#endif
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/config.status
^
|
@@ -2,7 +2,7 @@
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
-# on host localhost.localdomain:
+# on host hp-laptop:
#
# ./configure
#
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/dirlist.c
^
|
@@ -40,7 +40,8 @@
#include <pwd.h>
#include <grp.h>
#include <errno.h>
-#include <glob.h>
+/* #include <glob.h> */
+#include <fnmatch.h>
#include "cwd.h"
#include "options.h"
@@ -48,6 +49,7 @@
#include "login.h"
#include "dirlist.h"
+
struct hidegroup *hidegroups = NULL;
void add_to_hidegroups(int gid)
@@ -188,25 +190,43 @@
fprintf(client, "%s\r\n", filename_index);
}
-void dirlist(char *name, FILE * client, char verbose)
+void dirlist(char *name, FILE * client, char verbose, int show_hidden)
{
- DIR *directory;
- char *local_cwd = NULL;
- int i;
+ DIR *directory = NULL;
+ FILE *can_see_file;
+ int show_nonreadable_files = FALSE;
int show_hidden_files = FALSE;
- glob_t globbuf;
+ int skip_file, file_is_hidden;
+ char *local_cwd = NULL;
+ char *pattern = NULL, *short_pattern;
+ /* int i; */
+ struct dirent *dir_entry;
+ /* glob_t globbuf; */
- if (! strcasecmp( config_getoption("SHOW_HIDDEN_FILES"), "yes") )
+ if ( (show_hidden) &&
+ (! strcasecmp( config_getoption("SHOW_HIDDEN_FILES"), "yes") ) )
show_hidden_files = TRUE;
+ /* check for always show hidden */
+ if (! strcasecmp( config_getoption("SHOW_HIDDEN_FILES"), "always") )
+ show_hidden_files = TRUE;
+
+ if (! strcasecmp( config_getoption("SHOW_NONREADABLE_FILES"), "yes") )
+ show_nonreadable_files = TRUE;
+
if ((strstr(name, "/.")) && strchr(name, '*'))
return; /* DoS protection */
- if ((directory = opendir(name)))
- {
- closedir(directory);
- local_cwd = bftpd_cwd_getcwd();
- chdir(name);
+ if ((directory = opendir(name)))
+ {
+ closedir(directory);
+ local_cwd = bftpd_cwd_getcwd();
+ chdir(name);
+ }
+ else
+ pattern = name;
+
+ /*
glob("*", 0, NULL, &globbuf);
if (show_hidden_files)
glob(".*", GLOB_APPEND, NULL, &globbuf);
@@ -221,11 +241,63 @@
else
glob(name, 0, NULL, &globbuf);
}
+ */
+ /*
for (i = 0; i < globbuf.gl_pathc; i++)
- dirlist_one_file(globbuf.gl_pathv[i], client, verbose);
+ {
+ if (! show_nonreadable_files)
+ {
+ if ( (can_see_file = fopen(globbuf.gl_pathv[i], "r") ) == NULL)
+ continue;
+ else
+ fclose(can_see_file);
+ }
+ dirlist_one_file(globbuf.gl_pathv[i], client, verbose);
+ }
+
globfree(&globbuf);
+ */
+ directory = opendir(".");
+ if (directory)
+ {
+ dir_entry = readdir(directory);
+ while (dir_entry)
+ {
+ can_see_file = fopen(dir_entry->d_name, "r");
+ if (can_see_file)
+ fclose(can_see_file);
+ file_is_hidden = (dir_entry->d_name[0] == '.') ? TRUE : FALSE;
+ skip_file = TRUE;
+
+ if ( (! file_is_hidden) || (show_hidden_files) )
+ {
+ if ( (can_see_file) || (show_nonreadable_files) )
+ {
+ if (pattern)
+ {
+ /* strip leading path */
+ short_pattern = strrchr(pattern, '/');
+ if (short_pattern)
+ short_pattern++;
+ else
+ short_pattern = pattern;
+ skip_file = fnmatch(short_pattern, dir_entry->d_name,
+ FNM_NOESCAPE);
+ }
+ else
+ skip_file = FALSE;
+ }
+ }
+ if (! skip_file)
+ dirlist_one_file(dir_entry->d_name, client, verbose);
+
+ dir_entry = readdir(directory);
+ }
+ closedir(directory);
+ } /* unable to open directory */
+
if (local_cwd) {
chdir(local_cwd);
free(local_cwd);
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/dirlist.h
^
|
@@ -9,6 +9,6 @@
void hidegroups_init();
void hidegroups_end();
void bftpd_stat(char *name, FILE *client);
-void dirlist(char *name, FILE *client, char verbose);
+void dirlist(char *name, FILE *client, char verbose, int show_hidden);
#endif
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/en/bftpd-tutorial.html
^
|
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <title>Bftpd Tutorial</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta name="description" content="Bftpd tutorial. How to setup a ftp server with bftpd." />
+ <meta name="keywords" content="ftp,server,bftp,bftpd,tutorial,easy,setup,configuration" />
+ <meta name="author" content="Daniel Zilli" />
+</head>
+<body>
+
+<div align="center"><h1>Bftpd Tutorial by Daniel Zilli</h1>If you need setup a FTP server, you came to the right place.</div>
+
+<br />
+<br />
+
+<p>
+ <ul>
+ <li><a href="#toc1">0.1. Introdution</a></li>
+ <li><a href="#toc2">0.2. Installation</a></li>
+ <li><a href="#toc3">0.3. Configuring</a></li>
+ <li><a href="#toc4">0.4. Running</a></li>
+ <li><a href="#toc5">0.5. Things that others tutorials don't say to you</a></li>
+ <li><a href="#toc6">0.6. The End</a></li>
+ <li><a href="#toc7">0.7. Credits</a></li>
+ <li><a href="#toc8">0.8. Change Log</a></li>
+ </ul>
+</p>
+
+<hr noshade="noshade" size="1">
+
+<a name="toc1"></a>
+<p><h2>0.1. Introdution</h2>
+Here you will learn how to setup a secure, simple and efficient FTP server. Of course I am talking about Bftpd, this great software maintained by Jesse Smith. This peace of art is all I need to make my FTP server run in a sweet way, and hope that the same happens to you. This document will not teach you how FTP works, here it is assumed that you know how things work and just want to setup a FTP server using the Bftpd, but if you are new, don't panic, I will explain every step in detail.</p>
+
+
+<a name="toc2"></a>
+<h2>0.2. Installation</h2>
+<p>The first thing you need is the package itself (of course!). Some distributions already have the package, so my advice is for you to
+look first if your distribution has the package. If your distro doesn't have it or you don't know or you want the fast way, let's compile, for ourselves the program. Compiling this software is fast and easy. But before compile let me say that Jesse provide two packages to us, the source package and the RPM package, so if your distribuition use the RPM packager manager, your chances to have the package ready to you is very big, but don't worry, the RPM instalation we will see later. Now let's have fun!</p>
+
+ <p><strong>Note-1:</strong> I will assume that you are working in the linux console.<br />
+ <strong>Note-2:</strong> Replacing 2.x by the correct version number.<br />
+ <strong>Note-3:</strong> Be root to avoid any problem of permissions.<br />
+ <strong>Note-4:</strong> The commands you need type are in <em>italic</em>.<br />
+ <strong>Note-5:</strong> You have to copy bftpd.conf from the source directory to /etc manually if you are <b>upgrading</b> from a previous version, as 'make install' does not overwrite your existing configuration.</p>
+
+<p>
+Bftpd, has two trees of development. The stable and the development one. Here I will use the stable version. <b>One note:</b> The word
+"development" in the Bftpd world, doesn't mean "no test", "let's see what happens" or "I am playing with the code". Even the development version is very stable and ready to use, so if you want use go ahead.</p>
+
+<br />
+<b>Download</b>
+
+<p>First, choice a place to put the source file.
+To make the download please visit this page the Bftpd website and go to the download section
+<a href="http://bftpd.sourceforge.net/download.html">http://bftpd.sourceforge.net/download.html</a>
+and choose the "bftpd package source" for "The latest stable version of bftpd is 2.x".</p>
+
+<br />
+<b>Compile</b>
+
+<p>After you download the source is time to extract the content. To make this, go to the direcoty you saved your bftpd source and type: </p>
+<pre><em>tar xzf bftpd-2.x.tar.gz</em></pre>
+
+<p>Good. Now that the content of the package is avalible to us, let's get into the recently created directory.</p>
+<pre><em>cd bftpd-2.x</em></pre>
+
+<p>Now we are inside the source directory, you can see around. But we don't have time to lose so let's compile this now. This is made with three stpes.</p>
+
+<strong>Step 1 - Configure the source to be compile</strong>
+<p><em>./configure --prefix=/usr</em></p>
+
+<strong>Step 2 - Compiling the source</strong>
+<p><em>make</em></p>
+
+<strong>Step 3 - Installing the program</strong>
+<p><em>make install</em></p>
+
+<strong>Sumary</strong>
+<p>Just to keep a track for what we did until now:</p>
+<pre>
+ ./configure --prefix=usr
+ make
+ make install
+</pre>
+
+ <p><strong>Note-6:</strong> If you want to use the 'tar.gz on-the-fly' feature of Bftpd, you must grab the source code of the program "pax" and extract it into a subdirectory of the Bftpd source directory. Then, instead of doing "./configure", do "./configure --enable-pax=pax-sourcedir --enable-libz". You must also have the library libz and its header file, /usr/include/zlib.h.</p>
+
+<br />
+<strong>RPM</strong>
+
+<p>So, if your distribution is a RPM based, congratulations because a RPM file is waiting for your download in the same place where you got the sources. Just choose the package "bftpd RPM package" and go download !
+
+
+<strong>Installing RPM</strong>
+
+<p>To install a RPM file is very easy, just type:</p>
+
+<p><em>rpm -ivh bftpd-2.x-1.i386.rpm</em></p>
+
+<p>Congratulations!! If everything went well, you have the bftpd installed in your sytem.</p>
+
+
+<a name="toc3"></a>
+<h2>0.3. Configuring</h2>
+<p>Before running the server, is time to configure it. Now is the key point, but don't have any secret here. All configurations options are controlled from the <i>bftpd.conf</i> file, that reside at /etc. In a first sight, you don't need change anything, but know what is really happening is always a good thing. The bftpd.conf is a very explained file, all the variables are explained in detail, so it is
+easy to understand. If you want to know how my bftpd.conf is configured, take a look:</p>
+
+<pre> global {
+ DENY_LOGIN="no"
+ PORT="21"
+ PASSIVE_PORTS="0"
+ DATAPORT20="no"
+ ADMIN_PASS="x"
+ PATH_BFTPDUTMP="/var/run/bftpd/bftpdutmp"
+ XFER_BUFSIZE="2048"
+ CHANGE_BUFSIZE="no"
+ XFER_DELAY="0"
+ SHOW_HIDDEN_FILES="no"
+ SHOW_NONREADABLE_FILES="no"
+ ALLOW_FXP="no"
+ CONTROL_TIMEOUT="300"
+ DATA_TIMEOUT="30"
+ RATIO="none"
+ ROOTDIR="%h"
+ UMASK="022"
+ LOGFILE="/var/log/bftpd.log"
+ HELLO_STRING="ftp at %i ready."
+ AUTO_CHDIR="/"
+ AUTH="PASSWD"
+ RESOLVE_CLIENT_IP="no"
+ MOTD_GLOBAL="/etc/ftpmotd"
+ MOTD_USER="/.ftpmotd"
+ RESOLVE_UIDS="yes"
+ DO_CHROOT="yes"
+ LOG_WTMP="yes"
+ BIND_TO_ADDR="any"
+ PATH_FTPUSERS="/etc/ftpusers"
+ AUTH_ETCSHELLS="no"
+ ALLOWCOMMAND_DELE="no"
+ ALLOWCOMMAND_STOR="yes"
+ ALLOWCOMMAND_SITE="no"
+ HIDE_GROUP=""
+ QUIT_MSG="See you later..."
+ USERLIMIT_GLOBAL="0"
+ USERLIMIT_SINGLEUSER="0"
+ USERLIMIT_HOST="0"
+ GZ_UPLOAD="no"
+ GZ_DOWNLOAD="no"
+ }
+
+ user ftp {
+ #Any password fits.
+ ANONYMOUS_USER="yes"
+ }
+
+ user anonymous {
+ #If the client wants anonymous, ftp is taken instead.
+ ALIAS="ftp"
+ }
+
+ user root {
+ DENY_LOGIN="Root login not allowed."
+ }
+</pre>
+
+<a name="toc4"></a>
+<h2>0.4. Running</h2>
+<p>Our Bftpd is now installed and configured. So, now we need prepare Bftpd to start, and we can do this in two ways. Inetd or by script.
+I spoke Greek now ! :-) Don't worry, is not Greek is Free Software!</p>
+
+<p>If you want inetd mode, add the following to your /etc/inetd.conf:</p>
+
+<pre>ftp stream tcp nowait root /usr/sbin/bftpd bftpd</pre>
+
+<p>But, If you want inetd mode with xinetd, add the following to your
+ /etc/xinetd.conf:</p>
+
+<pre> service ftp
+ {
+ disable = no
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/bftpd
+ log_on_success += HOST PID
+ log_on_failure += HOST
+ nice = 10
+ }
+</pre>
+
+<p>In this mode, the program inetd will take care in start and stop the bftpd.</p>
+
+<p>But to be honest, I prefer the standalone mode. For me, seen that I have more control. Here is the command to execute in standalone mode:</p>
+
+<p>/usr/sbin/bftpd -d</p>
+
+<p>Executing the above command in the prompt you will have the Bftpd working. But isn't comfortable. Because every time that we
+want the server start, we need to execute that command. Ok, you can put the command in some file or script to have it automaticly start, but to stop or restart you need kill the command and start by hand again. So to avoid all this and made my life easier I have this little script that do all the work for me. </p>
+
+<pre> ---------------
+ #!/bin/bash
+
+ case "$1" in
+ 'start')
+ echo "Starting bftpd Server"
+ /usr/sbin/bftpd -d
+ ;;
+ 'stop')
+ echo "Stopping bftpd Server"
+ killall bftpd
+ ;;
+ 'restart')
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ esac
+ ---------------
+</pre>
+
+<p>You have to make this script executable and put it in your /etc/rc.d or /etc/init.d</p>
+
+<p>That's all! Now you have your Bftpd configured and working.</p>
+<p>Congratulations !</p>
+
+<a name="toc5"></a>
+<h2>0.5. Things that others tutorials don't say to you</h2>
+<p>All the information above is enough to start using a FTP server if you are a intermediate/advanced user, but for the beginners that will
+follow exactly every step here, there are some items that we need leave very clear.</p>
+
+<b>Firewall:</b> It's very important you don't forget the rules to allow FTP traffic pass through your firewall. Usually the follow rules
+is enough:
+
+ <blockquote>
+ <i>IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT</i>
+ </blockquote>
+
+<p>But this is only an example. PLEASE STUDY IPTABLES, YOU WILL ALWAYS NEED IT.</p>
+
+<p><b>User account:</b> Ok...you now have your FTP server, but how can I access? Simple! Just create a normal user account in your Linux system. When we create the user account the home directory is created too. So when the user access our FTP, she/he will enter with the login and password, if everything goes well, the user will fall into your home directory (this can be setup to a different place at bftpd.conf).</p>
+
+<p><b>Ip or Domain:</b> If you going to make available your FTP to the world, you don't need have a domain, just a valid IP. To use your domain to access FTP, you must have the DNS configurated...and this is another story.</p>
+
+
+<a name="toc6"></a>
+<h2>0.6. The End</h2>
+<p>I think is that ! I hope in some way I helped anyone. Bftpd is very simple to use, no secrets. But if you have any doubt, please email me <a href="mailto:zilli.daniel@gmail.com">zilli.daniel@gmail.com</a> or visit the <a href="http://bftpd.sf.net/">bftpd.sf.net</a> website and contact Jesse Smith, bftd's maintainer.</p>
+
+<a name="toc7"></a>
+<h2>0.7. Credits</h2>
+<p>Author: Daniel Zilli <a href="mailto:zilli.daniel@gmail.com">zilli.daniel@gmail.com</a></p>
+<p>Thanks to: Jesse Smith <a href="mailto:jessefrgsmith@yahoo.ca">jessefrgsmith@yahoo.ca</a> (current maintainer) and
+Max-Wilhelm Bruker <a href="mailto:brukie@gmx.net">brukie@gmx.net</a> (original developer of bftpd).</p>
+
+
+<a name="toc8"></a>
+<h2>0.8. Change Log</h2>
+
+<pre> Version 19 August 2007
+ - Intial release.
+ Version 18 April 2008
+ - I am back !
+ - Change from HMTL to XHTML document.
+ - Fix a lot of typos.
+ - Make the text more clear.
+</pre>
+
+
+<div align="center"><p>This is text is under GNU Free Documentation License version 1.2.</p></div>
+
+</body>
+</html>
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/doc/en/bftpddoc-en-5.html
^
|
@@ -5,11 +5,13 @@
<TITLE>bftpd documentation: Credits</TITLE>
<LINK HREF="bftpddoc-en-4.html" REL=previous>
<LINK HREF="bftpddoc-en.html#toc5" REL=contents>
+ <LINK href="bftpddoc-en-6.html" REL="next">
</HEAD>
<BODY>
-Next
+<a href="bftpddoc-en-6.html">Next</a>
<A HREF="bftpddoc-en-4.html">Previous</A>
<A HREF="bftpddoc-en.html#toc5">Contents</A>
+
<HR>
<H2><A NAME="s5">5.</A> <A HREF="bftpddoc-en.html#toc5">Credits</A></H2>
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/doc/en/bftpddoc-en-6.html
^
|
@@ -4,7 +4,7 @@
</head>
<body>
Next
-<A HREF="bftpddoc-en-4.html">Previous</A>
+<A HREF="bftpddoc-en-5.html">Previous</A>
<A HREF="bftpddoc-en.html#toc5">Contents</A>
<br><br><br>
<h2>Config options for the bftpd configuration file</h2><br>
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/doc/en/bftpddoc-en.html
^
|
@@ -53,6 +53,11 @@
<LI><A NAME="toc5.3">5.3</A> <A HREF="bftpddoc-en-5.html#ss5.3">Documentation contributions</A>
<LI><A NAME="toc5.4">5.4</A> <A HREF="bftpddoc-en-5.html#ss5.4">Others</A>
</UL>
+
+<p>
+<H2><a name="toc6">6.</a> <a href="bftpddoc-en-6.html">Configuration Options Explained</a></h2>
+
+
<HR>
<A HREF="bftpddoc-en-1.html">Next</A>
Previous
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk
^
|
+(directory)
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpd.8
^
|
@@ -0,0 +1,34 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH BFTPD 8 "Marec 1, 2003"
+.SH MENO
+bftpd \- B FTP Daemon
+.SH ZHRNUTIE
+.B bftpd
+.RB [ -c
+.IR confpath |
+.RB -n ]
+.RB [ -d | -D | -i ]
+.SH POPIS
+\fBbftpd\fP je velmi konfigurovatelni FTP server, ktory pouziva chroot bez
+specialeho nastavovania ci prav a prirav priecinkov.
+.SH NASTAVENIA
+.TP
+.B \-c
+Nastavi vychodiskovu cestu pre konfiguracny subor (normalne /etc/bftpd.conf).
+.BR
+.TP
+.B \-n
+Nepouzije konfiguracny subor; miesto toho pouzije vsetky vychodiskove hodnoty.
+Toto je vhodne pre minimalisticku konfiguraciu.
+.BR
+.TP
+.B \-d
+Start bftpd v daemon mode (bez inetd).
+.BR
+.TP
+.B \-D
+Start bftpd v daemon mode bez spustenia ho vo vlastnom vlakne, takze sa da zabit deamon s Ctrl+C.
+.BR
+.TP
+.B \-i
+Start bftpd v inetd mode. Toto je vychodiskove.
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk-1.html
^
|
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <TITLE>bftpd dokumentácian: Inštrukcie</TITLE>
+ <LINK HREF="bftpddoc-sk-2.html" REL=dalšie>
+
+ <LINK HREF="bftpddoc-sk.html#toc1" REL=obsah>
+</HEAD>
+<BODY>
+<A HREF="bftpddoc-sk-2.html">Dalšie</A>
+Predchadzajúce
+<A HREF="bftpddoc-sk.html#toc1">Obsah</A>
+<HR>
+<H2><A NAME="s1">1.</A> <A HREF="bftpddoc-sk.html#toc1">Inštrukcie</A> </H2>
+
+<P>bftpd je FTP server pre Linux, BSD/OS, FreeBSD, Solaris, DG-UX a Tru64. (Ja neviem, či sa dá ešte spustiť na iných systémov. Prosím, pošlite mi mail, ak to máte vyskušané). Môže bežať buť s inetd alebo samostatné.</P>
+<P>Vyznačuje sa rýchlou a minimálnou konfigurateľnosťou. Pre každú voľbu môžete urobiť vychodiskové nastavenia a tieto nastavenia môžete špeciálne zmeniť pre každého uživateľa, či priečinku - špecifické nastavenia.</P>
+<P>Obsiahnuté vlastnosti bftpd:
+<UL>
+<LI>Jednoduchá konfigurácia</LI>
+<LI>Rýchlosť</LI>
+<LI>Podpora pre väčšinu RFC FTP príkazov</LI>
+<LI>tar.gz kompresia/archivacia za behu</LI>
+<LI>Bezpečnosť s chroot bez špecialných nastavení</LI>
+<LI>Nie je potreba súburov (sh, ls...) v chroot prostredít</LI>
+<LI>Prihlasenie pre wtmp a logovací súbor a systemoví log</LI>
+<LI>PAM a passwd/shadow podpora</LI>
+<LI>Podpora pre SITE CHOWN/CHMOD</LI>
+</UL>
+</P>
+<HR>
+<A HREF="bftpddoc-sk-2.html">Dalšia</A>
+Predchadzajúca
+<A HREF="bftpddoc-sk.html#toc1">Obsah</A>
+</BODY>
+</HTML>
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk-2.html
^
|
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <TITLE>bftpd documentation: Installation</TITLE>
+ <LINK HREF="bftpddoc-sk-3.html" REL=dalšie>
+ <LINK HREF="bftpddoc-sk-1.html" REL=predchadzajúce>
+ <LINK HREF="bftpddoc-sk.html#toc2" REL=obsah>
+</HEAD>
+<BODY>
+<A HREF="bftpddoc-sk-3.html">dalšie</A>
+<A HREF="bftpddoc-sk-1.html">predchadzajúce</A>
+<A HREF="bftpddoc-sk.html#toc2">obsah</A>
+<HR>
+<H2><A NAME="s2">2.</A> <A HREF="bftpddoc-sk.html#toc2">Inštalácia</A></H2>
+
+<H2><A NAME="ss2.1">2.1</A> <A HREF="bftpddoc-sk.html#toc2.1">Preklad</A>
+ </H2>
+
+<P>Najskôr musíš vykonať nasledujúce príkazy (x.x.x nahraď číslom verzie tvojej inštalácie):
+<BLOCKQUOTE><CODE>
+<PRE>
+tar xzf bftpd-x.x.x.tar.gz
+cd bftpd-x.x.x
+./configure
+make
+make install
+
+</PRE>
+</CODE></BLOCKQUOTE>
+
+Poznámka: Ty musíš manuálne skopírovať bftpd.conf zo zdrojového priečinku do /etc, pokiaľ ty neaktualizuješ predchadzajúcu verziu. 'make install' neprepíše vašu existujúcu konfiguráciu.</P>
+<P>Poznámka: Keď ty chceš použiť 'tar.gz on-the-fly' črtu bftpd, musíš ty
+zobrať zdrojový kód programu "pax" a rozbaliť do vnútra
+podpriečinku zdrojového priečinku bftpd. Potom, miesto
+"./configure", urob "./configure --enable-pax=pax-sourcedir --enable-libz".
+Taktiež musíš mať tiež knižnicu libz a jej hlavičkové súbory /usr/include/zlib.h.</P>
+<H2><A NAME="ss2.2">2.2</A> <A HREF="bftpddoc-sk.html#toc2.2">Spúštanie servera</A>
+</H2>
+
+<P>bftpd spústiš buď nezavísle alebo v inetd móde.
+<DL>
+<DT><B>Pokiaľ chcete v inetd mode</B><DD><P>Pridaj nasledovné do tvojho /etc/inetd.conf:
+<BLOCKQUOTE><CODE>
+<PRE>
+ftp stream tcp nowait root /usr/sbin/bftpd bftpd
+</PRE>
+</CODE></BLOCKQUOTE>
+
+Výšli inetd HUP alebo reštartní tvoj systém. Tvoj FTP server
+by mal potom pracovať.</P>
+<DT><B>Ak chcete inetd mód s xinetd</B><DD><P>Pridaj nasledovné do tvojho /etc/xinetd.conf:
+<BLOCKQUOTE><CODE>
+<PRE>
+service ftp
+{
+ disable = no
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/bftpd
+ log_on_success += HOST PID
+ log_on_failure += HOST
+ nice = 10
+}
+</PRE>
+</CODE></BLOCKQUOTE>
+
+(prispel JackRipper)</P>
+<DT><B>Ak chcete nezavislom móde:</B><DD><P>Vykonaj v OS ako root príkaz
+<BLOCKQUOTE><CODE>
+<PRE>
+/usr/sbin/bftpd -d
+</PRE>
+</CODE></BLOCKQUOTE>
+
+na spústenie.</P>
+</DL>
+</P>
+<HR>
+<A HREF="bftpddoc-sk-3.html">Dalšie</A>
+<A HREF="bftpddoc-sk-1.html">Predchadzajúce</A>
+<A HREF="bftpddoc-sk.html#toc2">Obsah</A>
+</BODY>
+</HTML>
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk-3.html
^
|
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <TITLE>bftpd documentation: Configuration</TITLE>
+ <LINK HREF="bftpddoc-sk-4.html" REL=dalšie>
+ <LINK HREF="bftpddoc-sk-2.html" REL=predchadzajúce>
+ <LINK HREF="bftpddoc-sk.html#toc3" REL=obsah>
+</HEAD>
+<BODY>
+<A HREF="bftpddoc-sk-4.html">Dalšie</A>
+<A HREF="bftpddoc-sk-2.html">Predchadzajúce</A>
+<A HREF="bftpddoc-sk.html#toc3">Obsah</A>
+<HR>
+<H2><A NAME="s3">3.</A> <A HREF="bftpddoc-sk.html#toc3">Konfigurácia</A></H2>
+
+<H2><A NAME="ss3.1">3.1</A> <A HREF="bftpddoc-sk.html#toc3.1">Uživatelský manažment</A>
+</H2>
+
+<P>Vy môžete organizovať uživateľov jednoduchým upraveným /etc/passwd, a ak váš system podporuje, tak aj súborom /etc/shadow. Ktorykoľvek skutočný uživateľ uvedený v /etc/passwd sa môže so svojím nastavením heslom, pripojiť na FTP server, pokia vyhovuje istým konfiguračným krité riam. Anonymného uživateľa je možné zrušiť s premenou ANONYMOUS_USER. PAM je tiež podporovaný.</P>
+<H2><A NAME="ss3.2">3.2</A> <A HREF="bftpddoc-sk.html#toc3.2">Konfiguračný súbor</A>
+</H2>
+
+<H3>Globalné štruktúry</H3>
+
+<P>v "global" štruktúre, môžeš priradiť hodnoty jednotlivým konfiguračným voľbám. Syntax je nasledovná:
+<BLOCKQUOTE><CODE>
+<PRE>
+global {
+ meno1="hodnota1"
+ meno2="hodnota2"
+}
+</PRE>
+</CODE></BLOCKQUOTE>
+</P>
+<H3>Úživateľské štruktúry</H3>
+
+<P>Toto sú uživateľské štruktúry, v ktorej môžete nahradiť globalné nastavenia pre jednotlivých uživateľov. Príklad:
+<BLOCKQUOTE><CODE>
+<PRE>
+global {
+ meno1="hodnota1"
+ meno2="hodnota2"
+}
+user foo {
+ meno1="hodnota3"
+}
+</PRE>
+</CODE></BLOCKQUOTE>
+
+Keď je uživateľ prihlasený, meno1 bude rovny hodnota1. Ak je prihlasený iný uživateľ, meno1 bude rovné hodnota1. meno2 bude vždy rovný hodnota2.</P>
+<H3>Skupinová štruktúra</H3>
+
+<P>Tiež môžeš definovať nastavenia pre skupiny uživateľov. Toto by bolo pre jedneho uživateľa, ale vy môžete definovať tiež viac ako jedneho uživateľa v skupine. Vy môžete do skupiny definovať aj inú skupinu, ale ju musíťe definovať najskôr so znakom @. Príklad:
+<BLOCKQUOTE><CODE>
+<PRE>
+group foo,bar,@baz {
+ meno1="hodnota1"
+}
+</PRE>
+</CODE></BLOCKQUOTE>
+
+Tieto nastavenia pôsobia na uživateľa foor a bar a na každého, kto je v skupine baz. Vedľajšie členstvo v skupine stačí.</P>
+<H3>Priečinková štruktúra</H3>
+
+<P>Vy môžete nastaviť voľby, ktoré oplyvňujú uživateľov len v určitom adresáre alebo v nejakom podadresáre v ňom, čiže aj rekurzívne v definovanom adresári. Všimnite si, že môžete použiť tieto štruktúry vo<EM>vnútry</EM> globalných, uživatelských a skupinových štruktúrach. Takto vy môžete tiež nastaviť adresár - špecialné nastavenia pre jednotlivých uživateľov. Príklad:
+<BLOCKQUOTE><CODE>
+<PRE>
+global {
+ meno1="hodnota1"
+ directory "/foo" {
+ meno1="hodnota2"
+ }
+}
+user bar {
+ directory "/foo" {
+ meno1="hodnota3"
+ }
+}
+</PRE>
+</CODE></BLOCKQUOTE>
+
+V tomto príklade, meno1 bude mať hodnotu3, keď uživateľ bar, bude v priečinku /foo. hodnota2 to bude, ak bude v adresári /foo. V iných prípade to bude hodnota1.</P>
+<P>Na vysvetlenie dvojíc mená/hodnoty je vybavený bftp príkladovým konfiguračným súborom (pokiaľ ste neaktualizovaly, tak je tento súbor už skopirovaný do /etc vásho systému). Modifikujte si ho podľa vašej potreby. Predvoľby by mali byť v poriadku.</P>
+<HR>
+<A HREF="bftpddoc-sk-4.html">Ďalšia</A>
+<A HREF="bftpddoc-sk-2.html">Predchadzajúca</A>
+<A HREF="bftpddoc-sk.html#toc3">Obsah</A>
+</BODY>
+</HTML>
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk-4.html
^
|
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <TITLE>bftpd dokumentácia: FAQ</TITLE>
+ <LINK HREF="bftpddoc-sk-5.html" REL=next>
+ <LINK HREF="bftpddoc-sk-3.html" REL=previous>
+ <LINK HREF="bftpddoc-sk.html#toc4" REL=contents>
+</HEAD>
+<BODY>
+<A HREF="bftpddoc-sk-5.html">Ďalšia</A>
+<A HREF="bftpddoc-sk-3.html">Prdchadzajúca</A>
+<A HREF="bftpddoc-sk.html#toc4">Obsah</A>
+<HR>
+<H2><A NAME="s4">4.</A> <A HREF="bftpddoc-sk.html#toc4">FAQ</A></H2>
+
+<H2><A NAME="ss4.1">4.1</A> <A HREF="bftpddoc-sk.html#toc4.1">Problémy s prekladom</A>
+</H2>
+
+<H3>Nemôžem preložit bftpd</H3>
+
+<P>Dajte mi vedieť. Prosím povedte mi, akú architekturu a OS použivate a dajte mi kompletný výstup kompilácie (configure a make). Ja nedostávam veľa mailov, tak skúsim odpovedať na Vaše otázky. Pokiaľ neodpovedám, tak som určite na vašu poštu zabudol, tak mi to prosím pošlite ešte raz :)</P>
+<H3>Sú tam neznáme upozornenia</H3>
+
+<P>Je pravdepodobné, že kompilovanie bftp na danej flatforme nemám otestované, kľudne Vám môže <EM>dať</EM> nejaké upozornenia. Dokonca to môže preloži úspešne a bez havárie. Prosím povedzte, aké nejasné upozornenia môžu zapričíniť problémy prekladaču.</P>
+<H3>Hovorí mi "I can't use wtmp"</H3>
+
+<P>Ty máš pravdepodobne spustený Solaris. Nemám prístup k počitaču Solaris, takže som nebol na ňom schopný odskúšať wtmp funkcie. Ak ty dostáváš tieto upozonenia, tak nevieš, čo je to wtmp a nemám zaujem, ti inak ti pomôcť.</P>
+<H2><A NAME="ss4.2">4.2</A> <A HREF="bftpddoc-sk.html#toc4.2">Problém, keď sa ho pokúsim spustiť</A>
+</H2>
+
+<H3>Ja dostanem také upozornenie "Could not get peer IP address."</H3>
+
+<P>Ty si naštartovat bftpd z konzoly. Pokiaľ ho chceš spustiť samostatné, musíš ho použiť s voľbou "-d". Keď ho chceš nastaviť ako inetd server, pozri hore. Ty ho môžeš testovať s použitím:
+<BLOCKQUOTE><CODE>
+<PRE>
+hostname:~$ ftp localhost
+</PRE>
+</CODE></BLOCKQUOTE>
+</P>
+<H3>Dostánem také upozornenie "Bind failed: Address already in use."</H3>
+
+<P>Táto chyba znamená, že už iný proces obsadil tento port, hoci vy chcete, aby bftp behal na ňom. Vy môžet tento port nastaviť v bftp.conf s nastavením portu v globálnej štruktúre. Vychodiskový je 21. Ak nemôžete zmeniť, tak ste pravdepodobne zabudli vypnúť váš povôdný FTP server. Pozri v /etc/inetd.conf a v "ps auxwww | grep ftp".</P>
+<H2><A NAME="ss4.3">4.3</A> <A HREF="bftpddoc-sk.html#toc4.3">Problémy s FTP behom.</A>
+</H2>
+
+<H3>Dostanem takú chybu "500 Unknown command: 'foo'"</H3>
+
+<P>Váš učastnik poslal serveru príkaz, ktorému nerozumie. Toto je vaša chyba, pokiaľ nemáte zapísane skutočne príkazy. Prosim skontrolujte typografické chyby a pošlite my chybu, ak ste si isty, pokiaľ je tá chyba naozaj skutočna.</P>
+<H3>Ukončenie terminalového sedenia s chybou 421 </H3>
+
+<P>Ak sa pokúsite prihlásiť s chybným heslom, tak bftpd ukonči spojenie. Ak sa už predtým objavila chyba, alebo chyba prišla pred prihlasením, tak je to určite bug. Prosím povedzte mi o tom.</P>
+<H2><A NAME="ss4.4">4.4</A> <A HREF="bftpddoc-sk.html#toc4.4">Rôzne</A>
+</H2>
+
+<H3>Ako urobí počas behu kompresiu?</H3>
+
+<P>Povedzte, či máte priečinok nazvaný foo. Pokiaľ tam nie je súbor foo.tar.gz, vy môžete RETR tento súbor cez FTP a on bude obsahovať priečinok foo, tar-gzipovaný. Vy môžete RETR nasledujúce súbory:
+<UL>
+<LI>dirname.tar</LI>
+<LI>filename.gz</LI>
+</UL>
+
+Ak chcete použivať tieto, tak musíte ich preložiť s bftpd ( pozrí inštálačnu sekciu).</P>
+<H3>Moje nastavenia pre anonymného uživateľa neexistujú.</H3>
+
+<P>Pokiaľ máte štruktúru s názvom ALIAS=... v ňom, tak nesmieš doňho vložiť dalšie nastavenia. Miesto toho ju zapísať do štruktúry ukazujúceho aliasom.</P>
+<H3>Kde je taká malá dokumentácia?</H3>
+
+<P>Na to je odpoveť jednodúcha, niekto napíše niečo :)<BR>
+Ja neviem už toho viac niečo zapísať, pokiaľ keď vy máte lepšiu predstavu zlepšiť dokumentáciu, <EM>prosím</EM> povedzte mi. Rovnáko to platí pre preklad dokumentácie. Ak chcete niečo prispieť, urobte to, ale dbajte na typografické chyby a gramatiku.</P>
+<HR>
+<A HREF="bftpddoc-sk-5.html">Ďalšia</A>
+<A HREF="bftpddoc-sk-3.html">Predchadzajúca</A>
+<A HREF="bftpddoc-sk.html#toc4">Obsah</A>
+</BODY>
+</HTML>
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk-5.html
^
|
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <TITLE>bftpd documentation: Autori</TITLE>
+ <LINK HREF="bftpddoc-sk-4.html" REL=predchadzajúce>
+ <LINK HREF="bftpddoc-sk.html#toc5" REL=obsah>
+</HEAD>
+<BODY>
+<A HREF="bftpddoc-sk-6.html">Dalšie</A>
+<A HREF="bftpddoc-sk-4.html">Predchadzajúe</A>
+<A HREF="bftpddoc-sk.html#toc5">Obsah</A>
+<HR>
+<H2><A NAME="s5">5.</A> <A HREF="bftpddoc-sk.html#toc5">Autori</A></H2>
+
+<H2><A NAME="ss5.1">5.1</A> <A HREF="bftpddoc-sk.html#toc5.1">Testovanie prenositeľnosti</A>
+</H2>
+
+<P>
+<UL>
+<LI>David L. Nicol (david@kasey.umkc.edu) testoval bftpd na Tru64.</LI>
+<LI>JackRipper (vic@altoona.net) testoval bftpd na BSD/OS a DG-UX.</LI>
+<LI>Christian Beyerlein (christian@beyerlein.de) testoval bftpd na FreeBSD a Solaris.</LI>
+<LI>Ľudia z #linux (IRCNet) testovali bftpd na rôzných operačných systémov.</LI>
+</UL>
+</P>
+<H2><A NAME="ss5.2">5.2</A> <A HREF="bftpddoc-sk.html#toc5.2">Návrhy, zbierka bugov & príspevky kódu</A>
+</H2>
+
+<P>
+<UL>
+<LI>Josh Woodcock (josh@hamparts.com) dal nejaké rady o Solaris 8.</LI>
+<LI>Floh (floh@maflohsoft.de) navrhol podporu ASCII módu.</LI>
+<LI>Erik Hensema (erik@hensema.xs4all.nl) zriadil pre Linux 2.4.0 netfilter bug, ktorý ovplyvnil bftpd.</LI>
+<LI>Heiko Rother (rother@cmsnet.de) navrhol veľa vecí (pozri changelog).</LI>
+<LI>Christophe Bailleux (cb@grolier.fr) milujúco našiel problémy v priečinkovom zozname katalógu. On tiež veľa veci navrhol a prispel svojím kódom.</LI>
+<LI>Jonathan Heusser (jonathanheusser@gyml.unibas.ch) vytvoril bug pre pretečenie.</LI>
+<LI>Christian Beyerlein (christian@beyerlein.de) navrhol vytvoriť uživateľské aliasy.</LI>
+<LI>Elmusafir (jslmarti@campus.cem.itesm.mx) nahlásil na StarOffice problémy v stabilnej verzie 1.0.8.</LI>
+<LI>Alex Madden (alexm@immstudios.com) and Daniel Mack (daniel.mack@nextra.de) nahlásili kompatitibilitu v Solaris v stabilnej verzie 1.0.8.</LI>
+<LI>Daniel Mack (daniel.mack@nextra.de) príspel veľkým bugom (pozri changelog).</LI>
+<LI>Jesse Smith (jessefrgsmith@yahoo.ca) prídal sporné bugy.</LI>
+</UL>
+</P>
+<H2><A NAME="ss5.3">5.3</A> <A HREF="bftpddoc-sk.html#toc5.3">Dokumentáčne príspevky</A>
+</H2>
+
+<P>
+<UL>
+<LI>Radek Michalski (radek@end.p-s.com.pl) preložil dokumetáciu bftpd do Polščiny a prispel novým textom.</LI>
+</UL>
+</P>
+<H2><A NAME="ss5.4">5.4</A> <A HREF="bftpddoc-sk.html#toc5.4">Iné</A>
+</H2>
+
+<P>
+<UL>
+<LI>Niektoré myšlienky o štruktúre kodu a prenositeľnosti boli vzaté zo betaftpd vytvoreného Steinar H. Gunderson. Ale to bolo len niekoľko riadkov!</LI>
+</UL>
+</P>
+<HR>
+<A HREF="bftpddoc-sk-6.html">Dalšie</A>
+<A HREF="bftpddoc-sk-4.html">Predchadzajúca</A>
+<A HREF="bftpddoc-sk.html#toc5">Obsah</A>
+</BODY>
+</HTML>
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk-6.html
^
|
@@ -0,0 +1,474 @@
+<html>
+<head>
+ <title>Config file options for bftpd.</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+Dalšie
+<A HREF="bftpddoc-sk-4.html">Predchadzajúce</A>
+<A HREF="bftpddoc-sk.html#toc5">Obsah</A>
+<br><br><br>
+<h2>Konfiguračné voľby pre configuračný súbor bftpd</h2><br>
+Nižšie je zoznám volieb pre bftpd server. Tieto voľby a ich hodnoty môžu byť uložené v konfiguračnom súbore.
+Východiskový konfiguračný súbor je umiestnený v /etc/bftpd.conf.
+Všimnite si, že všetky hodnoty musia byť zadavané v uvodzovkách.
+Napríklad, nasledujúce je správne:<br>
+<br>
+<b>PORT="21"</b><br>
+<br>
+Ale toto, <b>nie</b> je správne:<br>
+<br>
+<b>PORT=21</b><br>
+<br>
+Taktiež malá poznámka k tomu, že voľba je vždy veľkými pismenami.<br>
+<br><br>
+Konfiguračný súbor bftpd.conf ma dve hlavné časti.
+Prvá časť je <b>global</b> (globálna).
+V nej sú implicitné hodnoty, ktoré používa server.
+Druhá časť je <b>users</b> (uživateľská).
+Tá by mala byť vždy na konci súboru bftpd.conf.
+Uživaťeľská časť prepisuje globálne premenny pre špecifických uživateľov.
+Napr. vychodiskovo je nastavené v súbore bftpd.conf DENY_LOGIN na "no", ktorý úmožni sa všetkým uživateľom sa prihlásiť.
+Táto hodnota je v globálnej sekcie.
+Ale štandárne je DENY_LOGIN vypnúte pre uživateľa <i>root</i> v uživateľskej sekcie.
+Toto použitie vedie k zákazu príhlasenia uživateľa <i>root</i> k vášmu bftpd serveru.<br>
+<br><br>
+Teraz bez dalšieho zdržania si pozríte podporované voľby pre bftpd server.
+Tie budú predstavené pod menom premeny, stručný opis a jeho možnosti.<br>
+<br><br>
+<b>Meno:</b> DENY_LOGIN<br>
+<br>
+<b>Popis:</b> Nastavením tohto príkazu buď zakážete alebo povolíte prihlásenie.
+Je odporučané hlavné použiť pre prístup uživateľa root.<br>
+<br>
+<b>Hodnoty:</b><br>
+"no" - povolí sa prihlásiť<br>
+"yes" - zakáže uživateľovi sa prihlásiť.<br>
+"<i>Prihlásenie je odoporeté.</i>" -
+Odoprie prihlásenie a vypíše prečo.<br>
+<br><br>
+
+<b>Meno:</b> PORT<br>
+<br>
+<b>Popis:</b> Toto nastavenie nastaví číslo portu, na ktorom čaká na vstupné pripojenia na bftpd.
+Toto je len možné nastaviť, ak je bftpd spústeni ako deamón.<br>
+<br>
+<b>Hodnoty:</b><br>
+"21" - vychodisková<br>
+<br><br>
+
+<b>Meno:</b> PASSIVE_PORTS<br>
+<br>
+<b>Popis:</b>
+bftpd môžeš nechať prinútiť, aby počúval na špecialnom rozsahu portov v pasívnom móde.
+Pasívny mód známena, že účastník otvorí datové spojenie, ale server zostane pasivný.
+Táto voľba je veľmi vhodná na použitie na firewallovú konfiguráciu.
+Odeliš hodnoty s "," alebo ",". bftpd ich búde sa skúšať spájiť na jeden z týchto portov v zostupnom poradí, ako to vy presne určíte.<br>
+<br>
+<b>Hodnoty:</b><br>
+"0" - (nula) vychodiskové<br>
+"10000-20000" - nastavenie od 10,000 do 20,000<br>
+"15000-20000, 25000-30000" - unastavené od 15,000 do 20,000 a od 25,000 do 30,000.<br>
+<br><br>
+
+<b>Meno:</b> DATAPORT20<br>
+<br>
+<b>Popis:</b>
+Iba ak váše datové spojenie priebeha cez port 20, môžte tu dať "yes".
+Vy budete pravdepodobné toto potrebovať, ak máte slabý firewall, ktorý obmedzuje pakety odchadzajúce z portov vyšších ako 1024.
+Všimnite si, že toto môže byť bezpečnostná diera, pretože server nebude môcť dobré pracovať z pravámi roota.
+Ak súhlasite, zvolte "yes"<br><br>
+<b>Hodnoty:</b><br>
+"no" - Vychodiskové. Toto je odporučané z bezpečnostných dôvodov.<br>
+"yes" - povoli datový port 20. Odporučané jedine s firewall, ktorý obmedzuje odchadzajúce spojenia nad 1024.<br>
+<br><br>
+
+<b>Meno:</b> ADMIN_PASS<br>
+<br>
+<b>Popis:</b> Heslo, ktoré bude použivať systemový administrator na monitorovania a správu bftpd servera.
+Administratorské spojenie ešte nie je v tomto čase hotové.
+Malo by zostať ako "x".<br>
+<br>
+<b>Hodnoty:</b><br>
+"x" - vychodiskové a odporučané.<br>
+<br><br>
+
+<b>Meno:</b> INITIAL_CHROOT<br>
+<br>
+<b>Popis:</b>
+S touto voľbou môžete popísať celé vaše FTP okolie vrátane chroot.
+Okrem bezpečnosti, vám toto umožnuje vytvoriť použivateľov, ktorý neexistujú v systéme.
+Dodatočne môžete pre ne vytvoriť položky pre ich priečinky so súbormi.
+Vy môžete dokonca vytvoriť symlink pre ich uživateľský domovský priečinok ( to znamená nastavenie DO_CHROOT=no, aby uživatelia mohli pristupovať na disk.
+Všimnite si, že potrebujete nasledovné súbory, vo vašom počiatočnom chroot priečinku: /etc/passwd, /etc/shadow, /etc/group. NA GNU systémoch potrebujete NSS knižnice v /lib.<br>
+<br>
+<b>Hodnoty:</b>
+Táto voľba je vychodiskovo zablokovaná.
+Mali by ste zadať existujúcu cestu k spústiteľným súborom, ak si prajete tradičnú inštaláciu, bezpečné ftp spojenie.<br>
+<br><br>
+
+<b>Meno:</b> PATH_BFTPDUTMP<br>
+<br>
+<b>Popis:</b> Do súboru bftpdutmp vám dovolí zapísovať všetky prihlásenia a odhlásenia.
+Toto je schopné pracovať s obmedzeným počtom aktuálne prihlaseních uživateľov na počítač.
+Ak si čeláte, aby ftpd server bežal bez týchto bezpečnostných funkcií, ponechaj reťazec prázny.<br>
+<br>
+<b>Hodnoty:</b><br>
+"/var/run/bftpd/bftpdutmp" - vychodiskový<br>
+"" - disable the log file.<br>
+<br><br>
+
+<b>Meno:</b> XFER_BUFSIZE<br>
+<br>
+<b>Popis:</b> Táto voľba obmedzuje veľkosť vyrovnavácej pamäte počas prenosu súborov..
+Pokiaľ máš veľmi rýchlu sieť ( rýchly znamená 100 Mbit/s alebo viac), malo by byť na niečo také alebo niečo podobné XFER_BUFSIZE=64000.
+Prenos z localhost na localhost má prenosovú rýchlosť približne 15MB/s s XFER_BUFSIZE=2048 a rýchlosť 20MB/s s XFER_BUFSIZE=64000.
+Mal by si si dať menšiu hodnotu, ak máš pomalých (dialup) učastníkov. Tato voľba by mala byť použita pre (hrube) spomalenie prenosovej rýchlosti.
+Nastaviť na veľmi nízku hodnotu môže veľmi spomaliť prenosovú rýchlosť.<br>
+<br
+<b>Hodnoty:</b><br>
+"2048" - vychodiskové<br>
+<br><br>
+
+<b>Meno:</b> XFER_DELAY<br>
+<br>
+<b>Popis:</b>
+Táto voľba vám dovolí pridať oneskorenie ( v milisekundach) k času medzi odoslaným posledným a nasledujúcim paketom.
+Toto je vhodne, ak máte úzku priepusnosť a platí to pre každého účastnika. Škrtiaci efekt pre DATA prenos neplatí pre kontrolné pripojenia.
+Hodnota 0 znamená, že tam neprida meškanie.
+A hodnota asi tak 500000 ( päťsto tisíc) by malo meškanie asi tak pol sekundy.
+Týmto nastavením by ste sa mali vyvarovať oneskorovaniu datové spojenie.<br>
+<br>
+<b>Hodnoty:</b><br>
+"0" - vychodiskové (žiadne oneskorenie)<br>
+<br><br>
+
+<b>Meno:</b> ALLOW_FXP<br>
+<br>
+<b>Popis:</b>
+Pokiaľ je nastavené na "yes", tak dovolí datové spojenia aj nepovolením účastnikom.
+Toto je potrebné pre FXP.
+Táto voľba je odporučaná byť zablokovaná.<br>
+<br>
+<b>Hodnoty:</b><br>
+"no" - vychodiskové (odporučané)<br>
+"yes" - dovolí spojenie tretím účastníkom.<br>
+<br><br>
+
+<b>Meno:</b> CONTROL_TIMEOUT<br>
+<br>
+<b>Popis:</b> Táto voľba nastaví účastnikový, koľko minút môže byť v spojení bez vysielania nejakéj riadiacej inštrukcie.
+Táto hodnota udáva počet sekund, koľko sekúnd má čakať bftpd na príkaz pred ukončením spojenia.<br>
+<br>
+<b>Hodnoty:</b><br>
+"300" - vychodiskové (čaká päť minút)<br>
+<br><br>
+
+<b>Meno:</b> DATA_TIMEOUT<br>
+<br>
+<b>Popis:</b>Množstvo času, koľko času nemusí účastník pracovať v priebehu prenosu súboru.
+Tá je daná v sekundách.
+Táto voľba je obyčajné nastavená na desať, alebo pod 60.
+Pri nej by si mal brať v úvahe pomalé dialup spojenie.
+Na ich skoré vyčerpanie odchodu z prípojenia.
+Hodnota môže byť to pre ne veľmi malá.<br>
+<br>
+<b>Hodnoty:</b><br>
+"30" - vychodiskové (čaká dridsať sekund)<br>
+<br><br>
+
+<b>Meno:</b> RATIO<br>
+<br>
+<b>Popis:</b>
+Nastaví pomer, ak chcete, aby pred tým než stiahni nejaký súbor, najpr poslal nejaké súbory.
+Formát tohto nastavenia je "<i>upload</i>/<i>download</i>".
+Napríklad, "2/1" nastaví uživateľovy, než predtým než stiahne 1 MB, musí najskôr poslať 2 MB dát.<br>
+<br>
+<b>Hodnoty:</b><br>
+"none" - predvolené. Neobmedzené stahovanie.<br>
+"2/1" - dovolí stiahnuť 1MB pre každe 2MB odoslané na server.<br>
+<br><br>
+
+<b>Meno:</b> ROOTDIR<br>
+<br>
+<b>Popis:</b>
+Špecifikuje koreňový priečinok pre klienta. Východiskovo je "%h" ( uživateľský domovský priečinok).
+"%u" je nahradené uživateľským menom.
+To je vyhodné, ak máte podriadené zložky na použivanie pre bftpd.
+Napríklad,
+/var/ftp/<i>username</i>/<br>
+Táto voľba by mala byť pravdepodobné nastavená na špecialnú hodnotu u anonymného uživateľov.
+Tie sú špecifikované na konci zoznamu.<br>
+<br>
+<b>Hodnoty:</b><br>
+"%h" - (vychodiskové) domovský priečinok prihlaseného uživateľa.<br>
+"%u" - tento symbol bude nahradený použivateľskym menom.<br>
+<br><br>
+
+<b>Meno:</b> UMASK<br>
+<br>
+<b>Popis:</b>
+Umask pre vytvorené priečinky a súbory v domovskom priečinku uživateľa.<br>
+<br>
+<b>Hodnoty:</b><br>
+"022" - (vychodiskové) Nové súbory sú vytvorené s právami 755.<br>
+<br><br>
+
+<b>Meno:</b> LOGFILE<br>
+<br>
+<b>Popis:</b> Cestá k súboru, do ktorého sa bude ukladať všeobecné logovacie informácie.
+To zahrňuje prijate a odoslané súbory, pokusy o prihlásenia a odhlásenia.
+Je možné nastaviť aj do systemového logu, zadaním "syslog"<br>
+<br>
+<b>Hodnoty:</b><br>
+"/var/log/bftpd.log" - vychodiskové<br>
+"syslog" -odošlé dáta do systemového logu.<br>
+"" - neukláda logovacie informácie do súboru.<br>
+<br><br>
+
+<b>Meno:</b> HELLO_STRING<br>
+<br>
+<b>Popis:</b>
+Táto voľba nastaví, ako má bftpd pozdraviť prihlasených uživateľov.
+Vy môžete použiť reťazec, ktorý bude len jednom riadku.
+Tiež môžeš použiť tri špeciálne symboly (%h, %i, %v).
+Symbol %h je nahradený menom servera, %i je nahradené jeho IP adresou a %v zobrazí číslo verzie bftpd.<br>
+<br>
+Poznámka: Ak použijete symbol "%h" a vy inicializujete vlastný CHROOT, potom musíte /etc/hosts a /etc/host.conf súbory skopírovať do CHROOT umiestnenia.<br>
+<br>
+<b>Hodnoty:</b><br>
+"bftpd %v at %i ready." - vychodiskové (Zobrazí verziu a IP adresu servera)<br>
+"Welcome to bftpd at %h" - Zobrazi uvítaciu spávu so serverovým menom.<br>
+<br><br>
+
+<b>Meno:</b> AUTO_CHDIR<br>
+<br>
+<b>Popis:</b> Táto voľba povie bftpd serveru, v ktorom adresáry by mal štartovať.
+Cesta k adresáru je relatívna k chroot umiestneniu.<br>
+<br>
+<b>Hodnoty:</b><br>
+"/" - (default) ide do root priečinku v aktuálnom prostredí .<br>
+"/ftp" - start v ftp priečinku<br>
+<br><br>
+
+<b>Meno:</b> AUTH<br>
+<br>
+<b>Popis:</b> Toto nastavenie hovorí bftpd, aký typ hesla má na autorizáciu použiť.
+Aktuálne sú PAM a štandarné hesla využíte.<br>
+<br>
+<b>Hodnoty:</b><br>
+"PASSWD" - (vychodiskové) používa zakladné kľuče na overenie.<br>
+"PAM" - používa PAM overenie.<br>
+<br><br>
+
+<b>Meno:</b> FILE_AUTH<br>
+<br>
+<b>Popis:</b> Táto voľba, ak je nastavená, hovorí bftpd, že má ignorovať premenu <b>AUTH</b> a používať pre príhlasenie úživateľov čistý textový súbor.
+Hodnota by mala ukazovať na umiestnenie textového súboru, čitateľného pre bftpd.
+Pozri časť hodnoty pre format súboru.
+bftpd bude prehľadávať textový súbor podľa priradeného uživateľského mena.
+Ak ho <i>najde</i>, porovná heslo podľa hesla v súbore.<br>
+Upozornenie:Táto voľba by sa mala použivať veľmi opatrne a len v situaciách, kde si prajete obísť vaše bezpečnostné zabezpečenie.<br>
+<br>
+<b>Hodnoty:</b><br>
+Text by mal mať nasledujúcu formu:<br>
+<i>uživateľ heslo skupina domovský_priečinok</i><br>
+<br>
+Kde učastnícke meno a heslo musí byť poslané účastníkovi na porovnanie. Inak bude príhlasenie odmietnuté.
+Skupina by mala byť pre uživateľa regulérna a domovský priečinok je pre účastnika chroot.<Br>
+john secret users /home/john<br>
+jane mypassword users /home/jane/ftp<br>
+<br><br>
+<b>Meno:</b> RESOLVE_CLIENT_IP<br>
+<br>
+<b>Popis:</b>
+Zápnite túto voľbu, ak chcete učastnikovú IP adresu previesť na hostname.
+Poznamka: Zvíši to mimoriadne systemové nároky a nemôže pracovať, ak váš DNS server nebol spávne nainštalovaný.
+Účastníci bez platnej DNS názvu mu bude dlho trvať, kým sa pripojení.<br>
+<br>
+<b>Hodnoty:</b><br>
+"no" - predvolené a odporučané<br>
+"yes" - zmeni klienta na host name, ak je to možné<br>
+<br><br>
+
+<b>Meno:</b> MOTD_GLOBAL<br>
+<br>
+<b>Popis:</b>
+Táto voľba bftpd hovorí, kde je "správa dňa" uložená. Obsah tohto súboru (ak existuje) sa pošle klientovi predtým, než sa prihlasí.<br>
+<br>
+<b>Hodnoty:</b>
+"/etc/ftpmotd" - vychodiskové<br>
+<br><br>
+
+<b>Meno:</b> MOTD_USER<br>
+<br>
+<b>Popis:</b>Cesta k súboru "správa dňa".
+Obsah tohto súboru (ak existuje) sa pošle klientovi po úspešnom prihlasí.
+Táto cesta je relatívna k uživateľskému root priečinku.<br>
+<br>
+<b>Hodnoty:</b><br>
+"/.ftpmotd" - vychodiskové<br>
+<br><br>
+
+<b>Meno:</b> RESOLVE_UIDS<br>
+<br>
+<b>Popis:</b> Ak je táto voľba aktívna, použivatelia a mená skupin su zobrazené vo výpisoch priečinkov, miesto čistých uživateľských/skupinových ID čisiel.
+Táto voľba môže spomaliť veľké výpisy priečinkov.<br>
+<br>
+<b>Hodnoty:</b><br>
+"yes" - (vychodiskové) zobrazí uživateľské a skupinové meno.<br>
+"no" - zobrazí uživateľské a skupinové čislo.<br>
+<br><br>
+
+<b>Meno:</b> DO_CHROOT<br>
+<br>
+<b>Popis:</b> Ak je táto voľba aktívna ("yes"), klient nemôže prístupovať k nejakému priečinku mimo chroot umiestnenia.
+Zablokovanie týmto reťazcom ("no") sa pokladá za serioznu bezpečnostnú dieru.<br>
+<br>
+<b>Hodnoty:</b><br>
+"yes" - (vychodiskové) odporúčané, spristupní iba domovské priečinky uživateľov.<br>
+"no" - (not recommended) toto nastavenie spristupní ostatným uživateľom hocijaký adresár na serveri.<br>
+<br><br>
+
+<b>Meno:</b> LOG_WTMP<br>
+<br>
+<b>Popis:</b>
+Zapnutím povolíte zalogovať každé príhlasenie do wtmp. Toto môže byť užitočné pre kontrolné bezpečnostné vypisy.<br>
+<br>
+<b>Hodnoty:</b><br>
+"yes" - (vychodiskové) Odošle prihlasovácie informácie do wtmp.<br>
+"no" - Neloguje do wtmp.<br>
+<br><br>
+
+<b>Meno:</b> BIND_TO_ADDR<br>
+<br>
+<b>Popis:</b>
+Ak by ste radi bftpd spojili do jedného špecifického sieťového rozhrania, hodnotou je IP adresa. Požitím hodnoty "any" použije prvé využité sieťové rozhranie.
+Táto voľba pracuje iba v deamon móde.<br>
+<br>
+<b>Hodnoty:</b><br>
+"any" - (vychodiskové) Použije prvé využité sieťové rozhranie.<br>
+"<i>tvoja IP adresa</i>" - skúsi sa spojiť k špecifickej adrese.<br>
+<br><br>
+
+<b>Meno:</b> PATH_FTPUSERS<br>
+<br>
+<b>Popis:</b>
+Toto nastavenie udáva cestu k súboru (ftpusers), ktorý obsahuje zoznam uživateľov, ktorý sa nemôžu prihlásiť k serveru.
+Ak chcete, aby sa mohol <i>ktokoľvek</i> prihlásiť, zadávajte tu názov neexistujúceho súboru.<br>
+<br>
+<b>Hodnoty:</b><br>
+"/etc/ftpusers" - vychodiskové<br>
+<br><br>
+
+<b>Meno:</b> AUTH_ETCSHELLS<br>
+<br>
+<b>Popis:</b>
+Zapnútim zakážete uživateľa, ktorý ma shell, ktorý nie je uvedený v /etc/shells.<br>
+<br>
+<b>Hodnoty:</b><br>
+"no" - (vychodiskové) dovoliť hocikomu sa prihlásiť<br>
+"yes" - zakážete uživateľa, ktorýho shell, nenájde v /etc/shells<br>
+<br><br>
+
+<b>Meno:</b> ALLOWCOMMAND_<br>
+<br>
+<b>Popis:</b>
+S položkou ALLOWCOMMAND_<i>XXXX</i> môžete vypnúť príkaz <i>XXXX</i>.
+Napríklad, ak chcete zakázať uživateľom vymazanie súborov, urobíte
+ALLOWCOMMAND_DELE="no"
+Vy môžete taktiež vypnúť príkaz pre špecifických uživateľov napisaním potrebných riadkov do použivateľskej štruktúre na konci konfiguračného zoznamu.
+Prosím, pozri si časť hodnoty pre niektoré príklady.<br>
+<br>
+<b>Hodnoty:</b><br>
+ALLOWCOMMAND_DELE="no" - zabráni uživateľom vymazanie alebo prepísanie súboru<br>
+ALLOWCOMMAND_STOR="yes" - dovolí uživateľom ukládať súbory na server<br>
+ALLOWCOMMAND_SITE="yes" - dovolí uživateľom príkaz pre umiestnenie<br>
+ALLOWCOMMAND_RETR="no" - zabráni uživateľom sťahovanie súborov<br>
+<br><br>
+
+<b>Meno:</b> HIDE_GROUP<br>
+<br>
+<b>Popis:</b>
+Súbory, ktoré patria týmto skupinam (čiarkou oddelené) sú skryté v zoznáme LIST/NLST. Ténto príkaz vám pomôže s bezpečnosťou na systémoch, kde bftpd má prístup k systemovým súborom.<br>
+<br>
+<b>Hodnoty:</b><br>
+"" - (prázny reťazec) vychodiskové. Neskrýva žiaden súbor.<br>
+"root" - skryje všetky súbory patriace skupine root.<br>
+<br><br>
+
+<b>Meno:</b> QUIT_MSG<br>
+<br>
+<b>Popis:</b>
+Ak uživateľ pošle príkaz "quit", tak táto správa sa mu pošle.<br>
+<br>
+<b>Hodnoty:</b><br>
+"See you later..." - vychodiskové.<br>
+Hocijaká správa môže byť v uvodzovkách, pokiaľ je na jednom riadku v konfiguračnom súbore.<br>
+<br><br>
+
+<b>Meno:</b> USERLIMIT_GLOBAL<br>
+<b>Popis:</b>
+Počet uživateľov, koľky môžu byť naraz prihlasený. Ak je nastavené na 0, môže sa pripojiť nekonečný počet uživateľov. Toto nie je odporučané, pre vytvorenie Dos útokov, aj keď sú účastnici zabytí po krátkom čase.<br>
+<br>
+<b>Hodnoty:</b><br>
+"0" - (nula) vychodiskové. Toto nie je odporučané.<br>
+Na väčšine malých serverov, by mal byť pod dvadsať ("20"), ale viac ako päť (5).<br>
+<br><br>
+
+<b>Meno:</b> USERLIMIT_SINGLEUSER<br>
+<br>
+<b>Popis:</b><br>
+Táto premenna kontroluje, koľko krát môže byť prihlasený jeden uživateľ v jednom čase. Toto vám dovolí mať veľký počet pripojení limit ( pozri hore) a napriek tomu zabráni jedným uživateľom mať veľa pripojení.<br>
+<br>
+<b>Hodnoty:</b><br>
+"0" - (nula) vychodiskové. Dovoľuje nekonečný počet pripojený od uživateľa.<br>
+<br><br>
+
+<b>Meno:</b> USERLIMIT_HOST<br>
+<br>
+<b>Popis:</b>
+Táto premená určuje, koľko použivateľov sa smú prípojiť z tej istej IP adresy. Táto voľba zabráni jednému uživateľovi (alebo stroji) brebrať všetky voľné pripojenia.
+Ak chcete dovoliť nelimitujúce pripojenia, nastav túto voľbu ako "0".
+<br><br>
+<b>Hodnoty:</b><br>
+"0" - (zero) je vychodiskové, dovolí nelimitujúce pripojenia z tej istej IP adresy.<br>
+<br><br>
+
+<b>Meno:</b> GZ_UPLOAD<br>
+<br>
+<b>Popis:</b>
+Táto voľba donúti súbory priebežne kompromitovať v priebehu nahravania na server. A ".gz" príponu bude mať v zozname.
+Toto je obyčajne vypnuté ("no"),ale môže byť užitočné pre servery s menším uložním priestorom.
+Nastavením na "yes" zaktivuješ túto voľbu.<br>
+<br>
+NA použie tejto voľby, musí býť bftpd na toto použitie nakonfigurovaný<br>
+"./configure --enable-libz" <i>miesto</i> spustenia "make".<br>
+<br>
+<b>Hodnoty:</b><br>
+"no" - vychodiskové (odporučané vo väčšine nastavení)<br>
+"yes" - donúti súborý priebežne kompromitovať v priebehu nahravania na server.<br>
+<br><br>
+
+<b>Meno:</b> GZ_DOWNLOAD<br>
+<br>
+<b>Popis:</b>
+Táto voľba donúti súborý priebežne dekompromitovať v priebehu stahovania zo serveru. A ".gz" koncovka bude mať v zozname.
+Súbory s koncovkou ".gz" sa budú rozbaľovať, keď sa budú posielať k uživateľovi.
+Táto voľba by mala byť obyčajne vypnuté ("no"),ale môže byť užitočné pre servery s množstvom kompromitovaných suborov. Nastavením na "yes" aktivuješ túto voľbu.<br>
+<br>
+NA použie tejto voľby, musí býť bftpd na toto použitie nakonfigurovaný<br>
+"./configure --enable-libz" <i>miesto</i> spústenia "make".<br>
+<br>
+<b>Hodnoty:</b><br>
+"no" - vychodiskové (odporučané vo väčšine nastavení)<br>
+"yes" - Donúti súborý priebežne dekompromitovať v priebehu stahovania zo serveru.<br>
+<br><br>
+<br><br><br>
+Dalšie
+<A HREF="bftpddoc-sk-5.html">Predchadzajúce</A>
+<A HREF="bftpddoc-sk.html#toc5">Obsah</A>
+
+</body>
+</html>
+
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk.html
^
|
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <TITLE>bftpd dokumentácia</TITLE>
+ <LINK HREF="bftpddoc-sk-1.html" REL=next>
+
+
+</HEAD>
+<BODY>
+<A HREF="bftpddoc-sk-1.html">Ďalšie</A>
+Predchadzajúce
+Obsah
+<HR>
+<H1>bftpd dokumentácia</H1>
+
+<H2>Napísal Max-Wilhelm Bruker <CODE><brukie@gmx.net</CODE>></H2>
+<HR>
+<EM>Táto dokumentácie je dokumentácia pre bftpd FTP server.</EM>
+<HR>
+<P>
+<H2><A NAME="toc1">1.</A> <A HREF="bftpddoc-sk-1.html">Inštrukcie</A></H2>
+
+<P>
+<H2><A NAME="toc2">2.</A> <A HREF="bftpddoc-sk-2.html">Inštalácia</A></H2>
+
+<UL>
+<LI><A NAME="toc2.1">2.1</A> <A HREF="bftpddoc-sk-2.html#ss2.1">Kompilácia</A>
+<LI><A NAME="toc2.2">2.2</A> <A HREF="bftpddoc-sk-2.html#ss2.2">Spústenie servera</A>
+</UL>
+<P>
+<H2><A NAME="toc3">3.</A> <A HREF="bftpddoc-sk-3.html">Konfigurácia</A></H2>
+
+<UL>
+<LI><A NAME="toc3.1">3.1</A> <A HREF="bftpddoc-sk-3.html#ss3.1">Uživatelský manažment</A>
+<LI><A NAME="toc3.2">3.2</A> <A HREF="bftpddoc-sk-3.html#ss3.2">Konfiguračný súbor</A>
+</UL>
+<P>
+<H2><A NAME="toc4">4.</A> <A HREF="bftpddoc-sk-4.html">FAQ</A></H2>
+
+<UL>
+<LI><A NAME="toc4.1">4.1</A> <A HREF="bftpddoc-sk-4.html#ss4.1">Problémy s prekladom</A>
+<LI><A NAME="toc4.2">4.2</A> <A HREF="bftpddoc-sk-4.html#ss4.2">Problems s skušaní spustiť to</A>
+<LI><A NAME="toc4.3">4.3</A> <A HREF="bftpddoc-sk-4.html#ss4.3">Problems v priebehu FTP spojenia</A>
+<LI><A NAME="toc4.4">4.4</A> <A HREF="bftpddoc-sk-4.html#ss4.4">Rôzne</A>
+</UL>
+<P>
+<H2><A NAME="toc5">5.</A> <A HREF="bftpddoc-sk-5.html">Autory</A></H2>
+
+<UL>
+<LI><A NAME="toc5.1">5.1</A> <A HREF="bftpddoc-sk-5.html#ss5.1">Testovanie prenositeľnosti</A>
+<LI><A NAME="toc5.2">5.2</A> <A HREF="bftpddoc-sk-5.html#ss5.2">Návrhy, zbierka bugov & dokumentačne príspevky</A>
+<LI><A NAME="toc5.3">5.3</A> <A HREF="bftpddoc-sk-5.html#ss5.3">Dokumentačne príspevky</A>
+<LI><A NAME="toc5.4">5.4</A> <A HREF="bftpddoc-sk-5.html#ss5.4">Iné</A>
+</UL>
+
+<H2><A NAME="toc6">6.</A> <A HREF="bftpddoc-sk-6.html">Konfiguračné voľby</A></H2>
+<HR>
+<A HREF="bftpddoc-sk-1.html">Dalšie</A>
+Predchadzajúce
+Obsah
+</BODY>
+</HTML>
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/doc/sk/bftpddoc-sk.txt
^
|
@@ -0,0 +1,875 @@
+ dokumentácia bftpd jazyk slovenský
+ bftpd dokumentácia
+
+ Napísal Max-Wilhelm Bruker <brukie@gmx.net|>
+
+------------------------------------------------------------------------
+/Táto dokumentácie je dokumentácia pre bftpd FTP server./
+------------------------------------------------------------------------
+
+ 1. Inštrukcie
+
+
+ 2. Inštalácia
+
+ * 2.1 Kompilácia
+ * 2.2 Spústenie Servera
+
+
+ 3. Konfigurácia
+
+ * 3.1 Uživatelský manažment
+ * 3.2 Konfiguračný súbor
+
+
+ 4. FAQ
+
+ * 4.1 Problémy s prekladom
+ * 4.2 Problems s skušaní spustiť to
+ * 4.3 Problems v priebehu FTP spojenia
+ * 4.4 Rôzne
+
+
+ 5. Autory
+
+ * 5.1 Testovanie prenositeľnosti
+ * 5.2 Návrhy, zbierka bugov & dokumentačne príspevky
+ * 5.3 Dokumentačne príspevky
+ * 5.4 Iné
+
+
+ 6. Konfiguračné voľby
+
+------------------------------------------------------------------------
+
+ 1. Inštrukcie
+
+ bftpd je FTP server pre Linux, BSD/OS, FreeBSD, Solaris, DG-UX a Tru64.
+ (Ja neviem, či sa dá ešte spustiť na iných systémov. Prosím, pošlite mi
+ mail, ak to máte vyskušané). Môže bežať buť s inetd alebo samostatné.
+
+ Vyznačuje sa rýchlou a minimálnou konfigurateľnosťou. Pre každú voľbu
+ môžete urobiť vychodiskové nastavenia a tieto nastavenia môžete
+ špeciálne zmeniť pre každého uživateľa, či priečinku - špecifické
+ nastavenia.
+
+ Obsiahnuté vlastnosti bftpd:
+
+ * Jednoduchá konfigurácia
+ * Rýchlosť
+ * Podpora pre väčšinu RFC FTP príkazov
+ * tar.gz kompresia/archivacia za behu
+ * Bezpečnosť s chroot bez špecialných nastavení
+ * Nie je potreba súburov (sh, ls...) v chroot prostredít
+ * Prihlasenie pre wtmp a logovací súbor a systemoví log
+ * PAM a passwd/shadow podpora
+ * Podpora pre SITE CHOWN/CHMOD
+
+
+------------------------------------------------------------------------
+
+
+ 2. Inštalácia <bftpddoc-sk.html#toc2>
+
+
+ 2.1 Preklad <bftpddoc-sk.html#toc2.1>
+
+ Najskôr musíš vykonať nasledujúce príkazy (x.x.x nahraď číslom verzie
+ tvojej inštalácie):
+
+ tar xzf bftpd-x.x.x.tar.gz
+ cd bftpd-x.x.x
+ ./configure
+ make
+ make install
+
+
+ Poznámka: Ty musíš manuálne skopírovať bftpd.conf zo zdrojového
+ priečinku do /etc, pokiaľ ty neaktualizuješ predchadzajúcu verziu. 'make
+ install' neprepíše vašu existujúcu konfiguráciu.
+
+ Poznámka: Keď ty chceš použiť 'tar.gz on-the-fly' črtu bftpd, musíš ty
+ zobrať zdrojový kód programu "pax" a rozbaliť do vnútra podpriečinku
+ zdrojového priečinku bftpd. Potom, miesto "./configure", urob
+ "./configure --enable-pax=pax-sourcedir --enable-libz". Taktiež musíš
+ mať tiež knižnicu libz a jej hlavičkové súbory /usr/include/zlib.h.
+
+
+ 2.2 Spúštanie servera <bftpddoc-sk.html#toc2.2>
+
+ bftpd spústiš buď nezavísle alebo v inetd móde.
+
+ * Pokiaľ chcete v inetd mode *
+
+ Pridaj nasledovné do tvojho /etc/inetd.conf:
+
+ ftp stream tcp nowait root /usr/sbin/bftpd bftpd
+
+ Výšli inetd HUP alebo reštartní tvoj systém. Tvoj FTP server by mal
+ potom pracovať.
+
+ * Ak chcete inetd mód s xinetd *
+
+ Pridaj nasledovné do tvojho /etc/xinetd.conf:
+
+ service ftp
+ {
+ disable = no
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/bftpd
+ log_on_success += HOST PID
+ log_on_failure += HOST
+ nice = 10
+ }
+
+ (prispel JackRipper)
+
+ * Ak chcete nezavislom móde: *
+
+ Vykonaj v OS ako root príkaz
+
+ /usr/sbin/bftpd -d
+
+ na spústenie.
+
+------------------------------------------------------------------------
+
+ 3. Konfigurácia
+
+
+ 3.1 Uživateľské nastavenia
+
+ Vy môžete organizovať uživateľov jednoduchým upraveným /etc/passwd, a ak
+ váš system podporuje, tak aj súborom /etc/shadow. Ktorykoľvek skutočný
+ uživateľ uvedený v /etc/passwd sa môže so svojím nastavením heslom,
+ pripojiť na FTP server, pokia vyhovuje istým konfiguračným krité riam.
+ Anonymného uživateľa je možné zrušiť s premenou ANONYMOUS_USER. PAM je
+ tiež podporovaný.
+
+
+ 3.2 Konfiguračný súbor
+
+ Globalné štruktúry
+
+ V "global" štruktúre, môžeš priradiť hodnoty jednotlivým konfiguračným
+ voľbám. Syntax je nasledovná:
+
+
+ global {
+ meno1="hodnota1"
+ meno2="hodnota2"
+ }
+
+
+ Úživateľské štruktúry
+
+ Toto sú uživateľské štruktúry, v ktorej môžete nahradiť globalné
+ nastavenia pre jednotlivých uživateľov. Príklad:
+
+
+ global {
+ meno1="hodnota1"
+ meno2="hodnota2"
+ }
+ user foo {
+ meno1="hodnota3"
+ }
+
+ Keď je uživateľ prihlasený, meno1 bude rovny hodnota1. Ak je prihlasený
+ iný uživateľ, meno1 bude rovné hodnota1. meno2 bude vždy rovný hodnota2.
+
+
+ Skupinová štruktúra
+
+ Tiež môžeš definovať nastavenia pre skupiny uživateľov. Toto by bolo pre
+ jedneho uživateľa, ale vy môžete definovať tiež viac ako jedneho
+ uživateľa v skupine. Vy môžete do skupiny definovať aj inú skupinu, ale
+ ju musíťe definovať najskôr so znakom @. Príklad:
+
+ group foo,bar,@baz {
+ meno1="hodnota1"
+ }
+
+ Tieto nastavenia pôsobia na uživateľa foor a bar a na každého, kto je v
+ skupine baz. Vedľajšie členstvo v skupine stačí.
+
+
+ Priečinková štruktúra
+
+ Vy môžete nastaviť voľby, ktoré oplyvňujú uživateľov len v určitom
+ adresáre alebo v nejakom podadresáre v ňom, čiže aj rekurzívne v
+ definovanom adresári. Všimnite si, že môžete použiť tieto štruktúry
+ vo/vnútry/ globalných, uživatelských a skupinových štruktúrach. Takto vy
+ môžete tiež nastaviť adresár - špecialné nastavenia pre jednotlivých
+ uživateľov. Príklad:
+
+ | |
+
+ global {
+ meno1="hodnota1"
+ directory "/foo" {
+ meno1="hodnota2"
+ }
+ }
+ user bar {
+ directory "/foo" {
+ meno1="hodnota3"
+ }
+ }
+
+ V tomto príklade, meno1 bude mať hodnotu3, keď uživateľ bar, bude v
+ priečinku /foo. hodnota2 to bude, ak bude v adresári /foo. V iných
+ prípade to bude hodnota1.
+
+ Na vysvetlenie dvojíc mená/hodnoty je vybavený bftp príkladovým
+ konfiguračným súborom (pokiaľ ste neaktualizovaly, tak je tento súbor už
+ skopirovaný do /etc vásho systému). Modifikujte si ho podľa vašej
+ potreby. Predvoľby by mali byť v poriadku.
+
+------------------------------------------------------------------------
+
+ 4. FAQ
+
+
+ 4.1 Problémy s prekladom
+
+
+ Nemôžem preložit bftpd
+
+ Dajte mi vedieť. Prosím povedte mi, akú architekturu a OS použivate a
+ dajte mi kompletný výstup kompilácie (configure a make). Ja nedostávam
+ veľa mailov, tak skúsim odpovedať na Vaše otázky. Pokiaľ neodpovedám,
+ tak som určite na vašu poštu zabudol, tak mi to prosím pošlite ešte raz :)
+
+
+ Sú tam neznáme upozornenia
+
+ Je pravdepodobné, že kompilovanie bftp na danej flatforme nemám
+ otestované, kľudne Vám môže /dať/ nejaké upozornenia. Dokonca to môže
+ preloži úspešne a bez havárie. Prosím povedzte, aké nejasné upozornenia
+ môžu zapričíniť problémy prekladaču.
+
+
+ Hovorí mi "I can't use wtmp"
+
+ Ty máš pravdepodobne spustený Solaris. Nemám prístup k počitaču Solaris,
+ takže som nebol na ňom schopný odskúšať wtmp funkcie. Ak ty dostáváš
+ tieto upozonenia, tak nevieš, čo je to wtmp a nemám zaujem, ti inak ti
+ pomôcť.
+
+
+ 4.2 Problém, keď sa ho pokúsim spustiť
+
+
+ Ja dostanem také upozornenie "Could not get peer IP address."
+
+ Ty si naštartovat bftpd z konzoly. Pokiaľ ho chceš spustiť samostatné,
+ musíš ho použiť s voľbou "-d". Keď ho chceš nastaviť ako inetd server,
+ pozri hore. Ty ho môžeš testovať s použitím:
+
+ hostname:~$ ftp localhost
+
+
+ Dostánem také upozornenie "Bind failed: Address already in use."
+
+ Táto chyba znamená, že už iný proces obsadil tento port, hoci vy chcete,
+ aby bftp behal na ňom. Vy môžet tento port nastaviť v bftp.conf s
+ nastavením portu v globálnej štruktúre. Vychodiskový je 21. Ak nemôžete
+ zmeniť, tak ste pravdepodobne zabudli vypnúť váš povôdný FTP server.
+ Pozri v /etc/inetd.conf a v "ps auxwww | grep ftp".
+
+
+ 4.3 Problémy s FTP behom.
+
+
+ Dostanem takú chybu "500 Unknown command: 'foo'"
+
+ Váš učastnik poslal serveru príkaz, ktorému nerozumie. Toto je vaša
+ chyba, pokiaľ nemáte zapísane skutočne príkazy. Prosim skontrolujte
+ typografické chyby a pošlite my chybu, ak ste si isty, pokiaľ je tá
+ chyba naozaj skutočna.
+
+
+ Ukončenie terminalového sedenia s chybou 421
+
+ Ak sa pokúsite prihlásiť s chybným heslom, tak bftpd ukonči spojenie. Ak
+ sa už predtým objavila chyba, alebo chyba prišla pred prihlasením, tak
+ je to určite bug. Prosím povedzte mi o tom.
+
+
+ 4.4 Rôzne
+
+
+ Ako urobí počas behu kompresiu?
+
+ Povedzte, či máte priečinok nazvaný foo. Pokiaľ tam nie je súbor
+ v foo.tar.gz, vy môžete RETR tento súbor cez FTP a on bude obsahovať
+ priečinok foo, tar-gzipovaný. Vy môžete RETR nasledujúce súbory:
+
+ * dirname.tar
+ * filename.gz
+
+ Ak chcete použivať tieto, tak musíte ich preložiť s bftpd ( pozrí
+ inštálačnu sekciu).
+
+
+ Moje nastavenia pre anonymného uživateľa neexistujú.
+
+ Pokiaľ máte štruktúru s názvom ALIAS=... v ňom, tak nesmieš doňho vložiť
+ dalšie nastavenia. Miesto toho ju zapísať do štruktúry ukazujúceho aliasom.
+
+
+ Kde je taká malá dokumentácia?
+
+ Na to je odpoveť jednodúcha, niekto napíše niečo :)
+ Ja neviem už toho viac niečo zapísať, pokiaľ keď vy máte lepšiu
+ predstavu zlepšiť dokumentáciu, /prosím/ povedzte mi. Rovnáko to platí
+ pre preklad dokumentácie. Ak chcete niečo prispieť, urobte to, ale
+ dbajte na typografické chyby a gramatiku.
+
+------------------------------------------------------------------------
+
+ 5. Autori
+
+
+ 5.1 Testovanie prenositeľnosti
+
+ * David L. Nicol (david@kasey.umkc.edu) testoval bftpd na Tru64.
+ * JackRipper (vic@altoona.net) testoval bftpd na BSD/OS a DG-UX.
+ * Christian Beyerlein (christian@beyerlein.de) testoval bftpd na
+ FreeBSD a Solaris.
+ * Ľudia z #linux (IRCNet) testovali bftpd na rôzných operačných
+ systémov.
+
+
+ 5.2 Návrhy, zbierka bugov & príspevky kódu
+
+ * Josh Woodcock (josh@hamparts.com) dal nejaké rady o Solaris 8.
+ * Floh (floh@maflohsoft.de) navrhol podporu ASCII módu.
+ * Erik Hensema (erik@hensema.xs4all.nl) zriadil pre Linux 2.4.0
+ netfilter bug, ktorý ovplyvnil bftpd.
+ * Heiko Rother (rother@cmsnet.de) navrhol veľa vecí (pozri changelog).
+ * Christophe Bailleux (cb@grolier.fr) milujúco našiel problémy v
+ priečinkovom zozname katalógu. On tiež veľa veci navrhol a prispel
+ svojím kódom.
+ * Jonathan Heusser (jonathanheusser@gyml.unibas.ch) vytvoril bug pre
+ pretečenie.
+ * Christian Beyerlein (christian@beyerlein.de) navrhol vytvoriť
+ uživateľské aliasy.
+ * Elmusafir (jslmarti@campus.cem.itesm.mx) nahlásil na StarOffice
+ problémy v stabilnej verzie 1.0.8.
+ * Alex Madden (alexm@immstudios.com) and Daniel Mack
+ (daniel.mack@nextra.de) nahlásili kompatitibilitu v Solaris v
+ stabilnej verzie 1.0.8.
+ * Daniel Mack (daniel.mack@nextra.de) príspel veľkým bugom (pozri
+ changelog).
+ * Jesse Smith (jessefrgsmith@yahoo.ca) prídal sporné bugy.
+
+
+ 5.3 Dokumentáčne príspevky
+
+ * Radek Michalski (radek@end.p-s.com.pl) preložil dokumetáciu bftpd
+ do Polščiny a prispel novým textom.
+
+
+ 5.4 Iné
+
+ * Niektoré myšlienky o štruktúre kodu a prenositeľnosti boli vzaté
+ zo betaftpd vytvoreného Steinar H. Gunderson. Ale to bolo len
+ niekoľko riadkov!
+
+------------------------------------------------------------------------
+
+ Konfiguračné voľby pre configuračný súbor bftpd
+
+
+ Nižšie je zoznám volieb pre bftpd server. Tieto voľby a ich hodnoty môžu
+ byť uložené v konfiguračnom súbore. Východiskový konfiguračný súbor je
+ umiestnený v /etc/bftpd.conf. Všimnite si, že všetky hodnoty musia byť
+ zadavané v uvodzovkách. Napríklad, nasledujúce je správne:
+
+ *PORT="21"*
+
+ Ale toto, *nie* je správne:
+
+ *PORT=21*
+
+ Taktiež malá poznámka k tomu, že voľba je vždy veľkými pismenami.
+
+
+ Konfiguračný súbor bftpd.conf ma dve hlavné časti. Prvá časť je *global*
+ (globálna). V nej sú implicitné hodnoty, ktoré používa server. Druhá
+ časť je *users* (uživateľská). Tá by mala byť vždy na konci súboru
+ bftpd.conf. Uživaťeľská časť prepisuje globálne premenny pre
+ špecifických uživateľov. Napr. vychodiskovo je nastavené v súbore
+ bftpd.conf DENY_LOGIN na "no", ktorý úmožni sa všetkým uživateľom sa
+ prihlásiť. Táto hodnota je v globálnej sekcie. Ale štandárne je
+ DENY_LOGIN vypnúte pre uživateľa /root/ v uživateľskej sekcie. Toto
+ použitie vedie k zákazu príhlasenia uživateľa /root/ k vášmu bftpd serveru.
+
+
+ Teraz bez dalšieho zdržania si pozríte podporované voľby pre bftpd
+ server. Tie budú predstavené pod menom premeny, stručný opis a jeho
+ možnosti.
+
+
+ *Meno:* DENY_LOGIN
+
+ *Popis:* Nastavením tohto príkazu buď zakážete alebo povolíte
+ prihlásenie. Je odporučané hlavné použiť pre prístup uživateľa root.
+
+ *Hodnoty:*
+ "no" - povolí sa prihlásiť
+ "yes" - zakáže uživateľovi sa prihlásiť.
+ "/Prihlásenie je odoporeté./" - Odoprie prihlásenie a vypíše prečo.
+
+
+ *Meno:* PORT
+
+ *Popis:* Toto nastavenie nastaví číslo portu, na ktorom čaká na vstupné
+ pripojenia na bftpd. Toto je len možné nastaviť, ak je bftpd spústeni
+ ako deamón.
+
+ *Hodnoty:*
+ "21" - vychodisková
+
+
+ *Meno:* PASSIVE_PORTS
+
+ *Popis:* bftpd môžeš nechať prinútiť, aby počúval na špecialnom rozsahu
+ portov v pasívnom móde. Pasívny mód známena, že účastník otvorí datové
+ spojenie, ale server zostane pasivný. Táto voľba je veľmi vhodná na
+ použitie na firewallovú konfiguráciu. Odeliš hodnoty s "," alebo ",".
+ bftpd ich búde sa skúšať spájiť na jeden z týchto portov v zostupnom
+ poradí, ako to vy presne určíte.
+
+ *Hodnoty:*
+ "0" - (nula) vychodiskové
+ "10000-20000" - nastavenie od 10,000 do 20,000
+ "15000-20000, 25000-30000" - unastavené od 15,000 do 20,000 a od 25,000
+ do 30,000.
+
+
+ *Meno:* DATAPORT20
+
+ *Popis:* Iba ak váše datové spojenie priebeha cez port 20, môžte tu dať
+ "yes". Vy budete pravdepodobné toto potrebovať, ak máte slabý firewall,
+ ktorý obmedzuje pakety odchadzajúce z portov vyšších ako 1024. Všimnite
+ si, že toto môže byť bezpečnostná diera, pretože server nebude môcť
+ dobré pracovať z pravámi roota. Ak súhlasite, zvolte "yes"
+
+ *Hodnoty:*
+ "no" - Vychodiskové. Toto je odporučané z bezpečnostných dôvodov.
+ "yes" - povoli datový port 20. Odporučané jedine s firewall, ktorý
+ obmedzuje odchadzajúce spojenia nad 1024.
+
+
+ *Meno:* ADMIN_PASS
+
+ *Popis:* Heslo, ktoré bude použivať systemový administrator na
+ monitorovania a správu bftpd servera. Administratorské spojenie ešte nie
+ je v tomto čase hotové. Malo by zostať ako "x".
+
+ *Hodnoty:*
+ "x" - vychodiskové a odporučané.
+
+
+ *Meno:* INITIAL_CHROOT
+
+ *Popis:* S touto voľbou môžete popísať celé vaše FTP okolie vrátane
+ chroot. Okrem bezpečnosti, vám toto umožnuje vytvoriť použivateľov,
+ ktorý neexistujú v systéme. Dodatočne môžete pre ne vytvoriť položky pre
+ ich priečinky so súbormi. Vy môžete dokonca vytvoriť symlink pre ich
+ uživateľský domovský priečinok ( to znamená nastavenie DO_CHROOT=no, aby
+ uživatelia mohli pristupovať na disk. Všimnite si, že potrebujete
+ nasledovné súbory, vo vašom počiatočnom chroot priečinku: /etc/passwd,
+ /etc/shadow, /etc/group. NA GNU systémoch potrebujete NSS knižnice v /lib.
+
+ *Hodnoty:* Táto voľba je vychodiskovo zablokovaná. Mali by ste zadať
+ existujúcu cestu k spústiteľným súborom, ak si prajete tradičnú
+ inštaláciu, bezpečné ftp spojenie.
+
+
+ *Meno:* PATH_BFTPDUTMP
+
+ *Popis:* Do súboru bftpdutmp vám dovolí zapísovať všetky prihlásenia a
+ odhlásenia. Toto je schopné pracovať s obmedzeným počtom aktuálne
+ prihlaseních uživateľov na počítač. Ak si čeláte, aby ftpd server bežal
+ bez týchto bezpečnostných funkcií, ponechaj reťazec prázny.
+
+ *Hodnoty:*
+ "/var/run/bftpd/bftpdutmp" - vychodiskový
+ "" - disable the log file.
+
+
+ *Meno:* XFER_BUFSIZE
+
+ *Popis:* Táto voľba obmedzuje veľkosť vyrovnavácej pamäte počas prenosu
+ súborov.. Pokiaľ máš veľmi rýchlu sieť ( rýchly znamená 100 Mbit/s alebo
+ viac), malo by byť na niečo také alebo niečo podobné XFER_BUFSIZE=64000.
+ Prenos z localhost na localhost má prenosovú rýchlosť približne 15MB/s s
+ XFER_BUFSIZE=2048 a rýchlosť 20MB/s s XFER_BUFSIZE=64000. Mal by si si
+ dať menšiu hodnotu, ak máš pomalých (dialup) učastníkov. Tato voľba by
+ mala byť použita pre (hrube) spomalenie prenosovej rýchlosti. Nastaviť
+ na veľmi nízku hodnotu môže veľmi spomaliť prenosovú rýchlosť.
+
+ *Hodnoty:*
+ "2048" - vychodiskové
+
+
+ *Meno:* XFER_DELAY
+
+ *Popis:* Táto voľba vám dovolí pridať oneskorenie ( v milisekundach) k
+ času medzi odoslaným posledným a nasledujúcim paketom. Toto je vhodne,
+ ak máte úzku priepusnosť a platí to pre každého účastnika. Škrtiaci
+ efekt pre DATA prenos neplatí pre kontrolné pripojenia. Hodnota 0
+ znamená, že tam neprida meškanie. A hodnota asi tak 500000 ( päťsto
+ tisíc) by malo meškanie asi tak pol sekundy. Týmto nastavením by ste sa
+ mali vyvarovať oneskorovaniu datové spojenie.
+
+ *Hodnoty:*
+ "0" - vychodiskové (žiadne oneskorenie)
+
+
+ *Meno:* ALLOW_FXP
+
+ *Popis:* Pokiaľ je nastavené na "yes", tak dovolí datové spojenia aj
+ nepovolením účastnikom. Toto je potrebné pre FXP. Táto voľba je
+ odporučaná byť zablokovaná.
+
+ *Hodnoty:*
+ "no" - vychodiskové (odporučané)
+ "yes" - dovolí spojenie tretím účastníkom.
+
+
+ *Meno:* CONTROL_TIMEOUT
+
+ *Popis:* Táto voľba nastaví účastnikový, koľko minút môže byť v spojení
+ bez vysielania nejakéj riadiacej inštrukcie. Táto hodnota udáva počet
+ sekund, koľko sekúnd má čakať bftpd na príkaz pred ukončením spojenia.
+
+ *Hodnoty:*
+ "300" - vychodiskové (čaká päť minút)
+
+
+ *Meno:* DATA_TIMEOUT
+
+ *Popis:*Množstvo času, koľko času nemusí účastník pracovať v priebehu
+ prenosu súboru. Tá je daná v sekundách. Táto voľba je obyčajné nastavená
+ na desať, alebo pod 60. Pri nej by si mal brať v úvahe pomalé dialup
+ spojenie. Na ich skoré vyčerpanie odchodu z prípojenia. Hodnota môže byť
+ to pre ne veľmi malá.
+
+ *Hodnoty:*
+ "30" - vychodiskové (čaká dridsať sekund)
+
+
+ *Meno:* RATIO
+
+ *Popis:* Nastaví pomer, ak chcete, aby pred tým než stiahni nejaký
+ súbor, najpr poslal nejaké súbory. Formát tohto nastavenia je
+ "/upload///download/". Napríklad, "2/1" nastaví uživateľovy, než predtým
+ než stiahne 1 MB, musí najskôr poslať 2 MB dát.
+
+ *Hodnoty:*
+ "none" - predvolené. Neobmedzené stahovanie.
+ "2/1" - dovolí stiahnuť 1MB pre každe 2MB odoslané na server.
+
+
+ *Meno:* ROOTDIR
+
+ *Popis:* Špecifikuje koreňový priečinok pre klienta. Východiskovo je
+ "%h" ( uživateľský domovský priečinok). "%u" je nahradené uživateľským
+ menom. To je vyhodné, ak máte podriadené zložky na použivanie pre bftpd.
+ Napríklad, /var/ftp//username//
+ Táto voľba by mala byť pravdepodobné nastavená na špecialnú hodnotu u
+ anonymného uživateľov. Tie sú špecifikované na konci zoznamu.
+
+ *Hodnoty:*
+ "%h" - (vychodiskové) domovský priečinok prihlaseného uživateľa.
+ "%u" - tento symbol bude nahradený použivateľskym menom.
+
+
+ *Meno:* UMASK
+
+ *Popis:* Umask pre vytvorené priečinky a súbory v domovskom priečinku
+ uživateľa.
+
+ *Hodnoty:*
+ "022" - (vychodiskové) Nové súbory sú vytvorené s právami 755.
+
+
+ *Meno:* LOGFILE
+
+ *Popis:* Cestá k súboru, do ktorého sa bude ukladať všeobecné logovacie
+ informácie. To zahrňuje prijate a odoslané súbory, pokusy o prihlásenia
+ a odhlásenia. Je možné nastaviť aj do systemového logu, zadaním "syslog"
+
+ *Hodnoty:*
+ "/var/log/bftpd.log" - vychodiskové
+ "syslog" -odošlé dáta do systemového logu.
+ "" - neukláda logovacie informácie do súboru.
+
+
+ *Meno:* HELLO_STRING
+
+ *Popis:* Táto voľba nastaví, ako má bftpd pozdraviť prihlasených
+ uživateľov. Vy môžete použiť reťazec, ktorý bude len jednom riadku. Tiež
+ môžeš použiť tri špeciálne symboly (%h, %i, %v). Symbol %h je nahradený
+ menom servera, %i je nahradené jeho IP adresou a %v zobrazí číslo verzie
+ bftpd.
+
+ Poznámka: Ak použijete symbol "%h" a vy inicializujete vlastný CHROOT,
+ potom musíte /etc/hosts a /etc/host.conf súbory skopírovať do CHROOT
+ umiestnenia.
+
+ *Hodnoty:*
+ "bftpd %v at %i ready." - vychodiskové (Zobrazí verziu a IP adresu servera)
+ "Welcome to bftpd at %h" - Zobrazi uvítaciu spávu so serverovým menom.
+
+
+ *Meno:* AUTO_CHDIR
+
+ *Popis:* Táto voľba povie bftpd serveru, v ktorom adresáry by mal
+ štartovať. Cesta k adresáru je relatívna k chroot umiestneniu.
+
+ *Hodnoty:*
+ "/" - (default) ide do root priečinku v aktuálnom prostredí .
+ "/ftp" - start v ftp priečinku
+
+
+ *Meno:* AUTH
+
+ *Popis:* Toto nastavenie hovorí bftpd, aký typ hesla má na autorizáciu
+ použiť. Aktuálne sú PAM a štandarné hesla využíte.
+
+ *Hodnoty:*
+ "PASSWD" - (vychodiskové) používa zakladné kľuče na overenie.
+ "PAM" - používa PAM overenie.
+
+
+ *Meno:* FILE_AUTH
+
+ *Popis:* Táto voľba, ak je nastavená, hovorí bftpd, že má ignorovať
+ premenu *AUTH* a používať pre príhlasenie úživateľov čistý textový
+ súbor. Hodnota by mala ukazovať na umiestnenie textového súboru,
+ čitateľného pre bftpd. Pozri časť hodnoty pre format súboru. bftpd bude
+ prehľadávať textový súbor podľa priradeného uživateľského mena. Ak ho
+ /najde/, porovná heslo podľa hesla v súbore.
+ Upozornenie:Táto voľba by sa mala použivať veľmi opatrne a len v
+ situaciách, kde si prajete obísť vaše bezpečnostné zabezpečenie.
+
+ *Hodnoty:*
+ Text by mal mať nasledujúcu formu:
+ /uživateľ heslo skupina domovský_priečinok/
+
+ Kde učastnícke meno a heslo musí byť poslané účastníkovi na porovnanie.
+ Inak bude príhlasenie odmietnuté. Skupina by mala byť pre uživateľa
+ regulérna a domovský priečinok je pre účastnika chroot.
+ john secret users /home/john
+ jane mypassword users /home/jane/ftp
+
+
+ *Meno:* RESOLVE_CLIENT_IP
+
+ *Popis:* Zápnite túto voľbu, ak chcete učastnikovú IP adresu previesť na
+ hostname. Poznamka: Zvíši to mimoriadne systemové nároky a nemôže
+ pracovať, ak váš DNS server nebol spávne nainštalovaný. Účastníci bez
+ platnej DNS názvu mu bude dlho trvať, kým sa pripojení.
+
+ *Hodnoty:*
+ "no" - predvolené a odporučané
+ "yes" - zmeni klienta na host name, ak je to možné
+
+
+ *Meno:* MOTD_GLOBAL
+
+ *Popis:* Táto voľba bftpd hovorí, kde je "správa dňa" uložená. Obsah
+ tohto súboru (ak existuje) sa pošle klientovi predtým, než sa prihlasí.
+
+ *Hodnoty:* "/etc/ftpmotd" - vychodiskové
+
+
+ *Meno:* MOTD_USER
+
+ *Popis:*Cesta k súboru "správa dňa". Obsah tohto súboru (ak existuje) sa
+ pošle klientovi po úspešnom prihlasí. Táto cesta je relatívna k
+ uživateľskému root priečinku.
+
+ *Hodnoty:*
+ "/.ftpmotd" - vychodiskové
+
+
+ *Meno:* RESOLVE_UIDS
+
+ *Popis:* Ak je táto voľba aktívna, použivatelia a mená skupin su
+ zobrazené vo výpisoch priečinkov, miesto čistých
+ uživateľských/skupinových ID čisiel. Táto voľba môže spomaliť veľké
+ výpisy priečinkov.
+
+ *Hodnoty:*
+ "yes" - (vychodiskové) zobrazí uživateľské a skupinové meno.
+ "no" - zobrazí uživateľské a skupinové čislo.
+
+
+ *Meno:* DO_CHROOT
+
+ *Popis:* Ak je táto voľba aktívna ("yes"), klient nemôže prístupovať k
+ nejakému priečinku mimo chroot umiestnenia. Zablokovanie týmto reťazcom
+ ("no") sa pokladá za serioznu bezpečnostnú dieru.
+
+ *Hodnoty:*
+ "yes" - (vychodiskové) odporúčané, spristupní iba domovské priečinky
+ uživateľov.
+ "no" - (not recommended) toto nastavenie spristupní ostatným uživateľom
+ hocijaký adresár na serveri.
+
+
+ *Meno:* LOG_WTMP
+
+ *Popis:* Zapnutím povolíte zalogovať každé príhlasenie do wtmp. Toto
+ môže byť užitočné pre kontrolné bezpečnostné vypisy.
+
+ *Hodnoty:*
+ "yes" - (vychodiskové) Odošle prihlasovácie informácie do wtmp.
+ "no" - Neloguje do wtmp.
+
+
+ *Meno:* BIND_TO_ADDR
+
+ *Popis:* Ak by ste radi bftpd spojili do jedného špecifického sieťového
+ rozhrania, hodnotou je IP adresa. Požitím hodnoty "any" použije prvé
+ využité sieťové rozhranie. Táto voľba pracuje iba v deamon móde.
+
+ *Hodnoty:*
+ "any" - (vychodiskové) Použije prvé využité sieťové rozhranie.
+ "/tvoja IP adresa/" - skúsi sa spojiť k špecifickej adrese.
+
+
+ *Meno:* PATH_FTPUSERS
+
+ *Popis:* Toto nastavenie udáva cestu k súboru (ftpusers), ktorý obsahuje
+ zoznam uživateľov, ktorý sa nemôžu prihlásiť k serveru. Ak chcete, aby
+ sa mohol /ktokoľvek/ prihlásiť, zadávajte tu názov neexistujúceho súboru.
+
+ *Hodnoty:*
+ "/etc/ftpusers" - vychodiskové
+
+
+ *Meno:* AUTH_ETCSHELLS
+
+ *Popis:* Zapnútim zakážete uživateľa, ktorý ma shell, ktorý nie je
+ uvedený v /etc/shells.
+
+ *Hodnoty:*
+ "no" - (vychodiskové) dovoliť hocikomu sa prihlásiť
+ "yes" - zakážete uživateľa, ktorýho shell, nenájde v /etc/shells
+
+
+ *Meno:* ALLOWCOMMAND_
+
+ *Popis:* S položkou ALLOWCOMMAND_/XXXX/ môžete vypnúť príkaz /XXXX/.
+ Napríklad, ak chcete zakázať uživateľom vymazanie súborov, urobíte
+ ALLOWCOMMAND_DELE="no" Vy môžete taktiež vypnúť príkaz pre špecifických
+ uživateľov napisaním potrebných riadkov do použivateľskej štruktúre na
+ konci konfiguračného zoznamu. Prosím, pozri si časť hodnoty pre niektoré
+ príklady.
+
+ *Hodnoty:*
+ ALLOWCOMMAND_DELE="no" - zabráni uživateľom vymazanie alebo prepísanie
+ súboru
+ ALLOWCOMMAND_STOR="yes" - dovolí uživateľom ukládať súbory na server
+ ALLOWCOMMAND_SITE="yes" - dovolí uživateľom príkaz pre umiestnenie
+ ALLOWCOMMAND_RETR="no" - zabráni uživateľom sťahovanie súborov
+
+
+ *Meno:* HIDE_GROUP
+
+ *Popis:* Súbory, ktoré patria týmto skupinam (čiarkou oddelené) sú
+ skryté v zoznáme LIST/NLST. Ténto príkaz vám pomôže s bezpečnosťou na
+ systémoch, kde bftpd má prístup k systemovým súborom.
+
+ *Hodnoty:*
+ "" - (prázny reťazec) vychodiskové. Neskrýva žiaden súbor.
+ "root" - skryje všetky súbory patriace skupine root.
+
+
+ *Meno:* QUIT_MSG
+
+ *Popis:* Ak uživateľ pošle príkaz "quit", tak táto správa sa mu pošle.
+
+ *Hodnoty:*
+ "See you later..." - vychodiskové.
+ Hocijaká správa môže byť v uvodzovkách, pokiaľ je na jednom riadku v
+ konfiguračnom súbore.
+
+
+ *Meno:* USERLIMIT_GLOBAL
+ *Popis:* Počet uživateľov, koľky môžu byť naraz prihlasený. Ak je
+ nastavené na 0, môže sa pripojiť nekonečný počet uživateľov. Toto nie je
+ odporučané, pre vytvorenie Dos útokov, aj keď sú účastnici zabytí po
+ krátkom čase.
+
+ *Hodnoty:*
+ "0" - (nula) vychodiskové. Toto nie je odporučané.
+ Na väčšine malých serverov, by mal byť pod dvadsať ("20"), ale viac ako
+ päť (5).
+
+
+ *Meno:* USERLIMIT_SINGLEUSER
+
+ *Popis:*
+ Táto premenna kontroluje, koľko krát môže byť prihlasený jeden uživateľ
+ v jednom čase. Toto vám dovolí mať veľký počet pripojení limit ( pozri
+ hore) a napriek tomu zabráni jedným uživateľom mať veľa pripojení.
+
+ *Hodnoty:*
+ "0" - (nula) vychodiskové. Dovoľuje nekonečný počet pripojený od uživateľa.
+
+
+ *Meno:* USERLIMIT_HOST
+
+ *Popis:* Táto premená určuje, koľko použivateľov sa smú prípojiť z tej
+ istej IP adresy. Táto voľba zabráni jednému uživateľovi (alebo stroji)
+ brebrať všetky voľné pripojenia. Ak chcete dovoliť nelimitujúce
+ pripojenia, nastav túto voľbu ako "0".
+
+ *Hodnoty:*
+ "0" - (zero) je vychodiskové, dovolí nelimitujúce pripojenia z tej istej
+ IP adresy.
+
+
+ *Meno:* GZ_UPLOAD
+
+ *Popis:* Táto voľba donúti súbory priebežne kompromitovať v priebehu
+ nahravania na server. A ".gz" príponu bude mať v zozname. Toto je
+ obyčajne vypnuté ("no"),ale môže byť užitočné pre servery s menším
+ uložním priestorom. Nastavením na "yes" zaktivuješ túto voľbu.
+
+ NA použie tejto voľby, musí býť bftpd na toto použitie nakonfigurovaný
+ "./configure --enable-libz" /miesto/ spustenia "make".
+
+ *Hodnoty:*
+ "no" - vychodiskové (odporučané vo väčšine nastavení)
+ "yes" - donúti súborý priebežne kompromitovať v priebehu nahravania na
+ server.
+
+
+ *Meno:* GZ_DOWNLOAD
+
+ *Popis:* Táto voľba donúti súborý priebežne dekompromitovať v priebehu
+ stahovania zo serveru. A ".gz" koncovka bude mať v zozname. Súbory s
+ koncovkou ".gz" sa budú rozbaľovať, keď sa budú posielať k uživateľovi.
+ Táto voľba by mala byť obyčajne vypnuté ("no"),ale môže byť užitočné pre
+ servery s množstvom kompromitovaných suborov. Nastavením na "yes"
+ aktivuješ túto voľbu.
+
+ NA použie tejto voľby, musí býť bftpd na toto použitie nakonfigurovaný
+ "./configure --enable-libz" /miesto/ spústenia "make".
+
+ *Hodnoty:*
+ "no" - vychodiskové (odporučané vo väčšine nastavení)
+ "yes" - Donúti súborý priebežne dekompromitovať v priebehu stahovania zo
+ serveru.
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/logging.c
^
|
@@ -21,9 +21,10 @@
#include "mystring.h"
FILE *logfile = NULL;
+FILE *send_receive_file = NULL;
FILE *statuslog = NULL;
FILE *statuslogforreading = NULL;
-
+int time_zone_difference = 0;
char log_syslog = 0;
void log_init()
@@ -79,8 +80,11 @@
if (logfile) {
fseek(logfile, 0, SEEK_END);
time(&t);
- strcpy(timestr, (char *) ctime(&t));
- timestr[strlen(timestr) - 1] = '\0';
+ t = Adjust_Clock(t);
+ strcpy(timestr, (char *) ctime(&t) );
+ /* This isn't for NULL termination so much as getting
+ rid of the trailing newline. */
+ timestr[strlen(timestr) - 1] = '\0';
fprintf(logfile, "%s %s[%i]: %s", timestr, global_argv[0],
(int) getpid(), buffer);
fflush(logfile);
@@ -107,3 +111,113 @@
}
}
+
+
+/* This function returns a static string which includes
+ * the current date.
+*/
+char *Current_Date()
+{
+ static char output[32];
+ time_t my_time;
+ struct tm *my_local;
+
+ memset(output, '\0', 32);
+ my_time = time(NULL);
+ my_local = localtime(& my_time);
+ if (my_local)
+ sprintf(output, "%d-%d-%d", my_local->tm_year + 1900, my_local->tm_mon + 1, my_local->tm_mday);
+ return output;
+}
+
+
+
+
+/*
+ * This function opens the log file which keeps track of the amount
+ * of data sent or received.
+*/
+int Open_Send_Receive_Log()
+{
+ char *foldername, *filename, *my_date;
+
+ foldername = config_getoption("BANDWIDTH");
+ if (! foldername[0])
+ return 1;
+
+ my_date = Current_Date();
+ filename = (char *) calloc( strlen(foldername) + strlen(my_date) + 16, sizeof(char) );
+ if (! filename)
+ return 0;
+
+ sprintf(filename, "%s/%s.txt", foldername, my_date);
+ send_receive_file = fopen(filename, "a");
+ free(filename);
+ if (! send_receive_file)
+ return 0;
+ else
+ return 1;
+}
+
+
+
+/*
+ * This function writes to a log file the total number of
+ * bytes we have sent or received in this session. The log file
+ * has the format:
+ * username bytes_sent bytes_received
+ * Each entry is appended to the end of the file.
+ *
+*/
+int Update_Send_Recv(char *username, double sent, double received)
+{
+ if (! send_receive_file)
+ return 1;
+
+ fseek(send_receive_file, 0, SEEK_END);
+ /* file is open, write data */
+ fprintf(send_receive_file, "%s %.0f %.0f\n", username, sent, received);
+ fflush(send_receive_file);
+ return 1;
+}
+
+
+
+/* Find the difference between the local time and GMT.
+The result is stored in time_zone_difference.
+*/
+
+int Get_Time_Zone_Difference()
+{
+ time_t my_time;
+ struct tm *local_time, *gmt_time;
+ struct tm local, gmt;
+
+ /* grab current time */
+ time( &my_time );
+ local_time = localtime( &my_time );
+ memcpy(&local, local_time, sizeof(struct tm) );
+ gmt_time = gmtime( &my_time );
+ memcpy(&gmt, gmt_time, sizeof(struct tm) );
+
+ /* same day, find straight difference */
+ if (local.tm_mday == gmt.tm_mday)
+ time_zone_difference = local.tm_hour - gmt.tm_hour;
+ /* local time is a day ahead */
+ else if (local.tm_mday > gmt.tm_mday)
+ time_zone_difference = (local.tm_hour + 24) - gmt.tm_hour;
+ /* local zone is behind */
+ else if (local.tm_mday < gmt.tm_mday)
+ time_zone_difference = local.tm_hour - (gmt.tm_hour + 24);
+
+ return time_zone_difference;
+}
+
+
+time_t Adjust_Clock(time_t old_time)
+{
+ time_t new_time;
+
+ new_time = old_time + (time_zone_difference * 3600);
+ return new_time;
+}
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/logging.h
^
|
@@ -1,6 +1,8 @@
#ifndef LOGGING_H
#define LOGGING_H
+#include <time.h>
+
extern FILE *logfile;
extern FILE *statuslog;
extern FILE *statuslogforreading;
@@ -22,4 +24,10 @@
void bftpd_log(char *format, ...);
void log_end();
+char *Current_Date();
+int Open_Send_Receive_Log();
+int Update_Send_Recv(char *username, double bytes_sent, double bytes_received);
+int Get_Time_Zone_Difference();
+time_t Adjust_Clock(time_t old_time);
+
#endif
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/login.c
^
|
@@ -183,26 +183,46 @@
return setuid(uid);
}
+
+/*
+Returns 0 on success and 1 on failure (?)
+*/
int bftpd_login(char *password)
{
- char str[512 + 1];
+ char str[MAX_STRING_LENGTH + 1];
char *foo;
int maxusers;
char *file_auth; /* if used, points to file used to auth users */
char *home_directory = NULL; /* retrieved from auth_file */
char *anonymous = NULL;
+ char *time_zone = NULL;
unsigned long get_maxusers;
+ int anon_ok = FALSE;
str[0] = '\0'; /* avoid garbage in str */
file_auth = config_getoption("FILE_AUTH");
+ time_zone = config_getoption("TIMEZONE_FIX");
+ if (! strcasecmp(time_zone, "no") )
+ {
+ /* we do not need the time zone fix, so do nothing here */
+ }
+ else
+ Get_Time_Zone_Difference();
if (! file_auth[0] ) /* not using auth file */
{
- // check to see if regular authentication is avail
+ /* check to see if regular authentication is avail */
+ anonymous = config_getoption("ANONYMOUS_USER");
+ if (! strcasecmp(anonymous, "yes") )
+ {
+ home_directory = "/";
+ anon_ok = TRUE;
+ }
#ifndef NO_GETPWNAM
- if (!getpwnam(user)) {
- control_printf(SL_FAILURE, "421 Login incorrect.");
- exit(0);
+ else if (!getpwnam(user)) {
+ control_printf(SL_FAILURE, "530 Login incorrect.");
+ // exit(0);
+ return -1;
}
#endif
}
@@ -217,8 +237,9 @@
home_directory = "/";
else
{
- control_printf(SL_FAILURE, "421 Authentication incorrect.");
- exit(0);
+ control_printf(SL_FAILURE, "530 Anonymous user not allowed.");
+ //exit(0);
+ return -1;
}
}
}
@@ -226,9 +247,9 @@
if (strncasecmp(foo = config_getoption("DENY_LOGIN"), "no", 2)) {
if (foo[0] != '\0') {
if (strncasecmp(foo, "yes", 3))
- control_printf(SL_FAILURE, "421-Server disabled.\r\n421 Reason: %s", foo);
+ control_printf(SL_FAILURE, "530-Server disabled.\r\n421 Reason: %s", foo);
else
- control_printf(SL_FAILURE, "421 Login incorrect.");
+ control_printf(SL_FAILURE, "530 Login incorrect.");
bftpd_log("Login as user '%s' failed: Server disabled.\n", user);
exit(0);
}
@@ -280,18 +301,19 @@
}
/* disable these checks when logging in via auth file */
- if (! file_auth[0] )
+ if ( (! file_auth[0] ) && (!anon_ok) )
{
#ifndef NO_GETPWNAM
if(checkuser() || checkshell()) {
- control_printf(SL_FAILURE, "421 Login incorrect.");
- exit(0);
+ control_printf(SL_FAILURE, "530 Login incorrect.");
+ // exit(0);
+ return -1;
}
#endif
}
/* do not do this check when we are using auth_file */
- if (! file_auth[0] )
+ if ( (! file_auth[0] ) && (! anon_ok) )
{
#ifndef NO_GETPWNAM
if (checkpass(password))
@@ -305,13 +327,13 @@
}
/* do these checks if logging in via normal methods */
- if (! file_auth[0])
+ if ( (! file_auth[0]) && (! anon_ok) )
{
strcpy(str, config_getoption("ROOTDIR"));
if (!str[0])
strcpy(str, "%h");
- replace(str, "%u", userinfo.pw_name);
- replace(str, "%h", userinfo.pw_dir);
+ replace(str, "%u", userinfo.pw_name, MAX_STRING_LENGTH);
+ replace(str, "%h", userinfo.pw_dir, MAX_STRING_LENGTH);
if (!strcasecmp(config_getoption("RESOLVE_UIDS"), "yes"))
{
passwdfile = fopen("/etc/passwd", "r");
@@ -327,7 +349,7 @@
exit(0);
}
if (bftpd_setuid(userinfo.pw_uid)) {
- control_printf(SL_FAILURE, "421 Unable to change uid.");
+ control_printf(SL_FAILURE, "421 Unable to change uid.\r\n");
exit(0);
}
if (chdir("/")) {
@@ -337,11 +359,11 @@
}
} else {
if (bftpd_setuid(userinfo.pw_uid)) {
- control_printf(SL_FAILURE, "421 Unable to change uid.");
+ control_printf(SL_FAILURE, "421 Unable to change uid.\r\n");
exit(0);
}
if (chdir(str)) {
- control_printf(SL_FAILURE, "230 Couldn't change cwd to '%s': %s.", str,
+ control_printf(SL_FAILURE, "230 Couldn't change cwd to '%s': %s.\r\n", str,
strerror(errno));
chdir("/");
}
@@ -349,14 +371,38 @@
} /* end of if we are using regular authentication methods */
+ /* perhaps we are using anonymous logins, but not file_auth? */
+ else if ( (! file_auth[0]) && (anon_ok) )
+ {
+ strcpy(str, config_getoption("ROOTDIR"));
+ if (! str[0])
+ str[0] = '/';
+ replace(str, "%h", home_directory, MAX_STRING_LENGTH);
+ replace(str, "%u", user, MAX_STRING_LENGTH);
+ /* should we chroot? */
+ if (! strcasecmp(config_getoption("DO_CHROOT"), "yes") )
+ {
+ if ( chroot(str) )
+ {
+ control_printf(SL_FAILURE, "421 Unable to change root directory.\r\n");
+ exit(0);
+ }
+ if ( chdir("/") )
+ {
+ control_printf(SL_FAILURE, "421 Unable to change working directory.\r\n");
+ exit(0);
+ }
+ }
+
+ } /* end of using anonymous login */
else /* we are using file authentication */
{
/* get home directory */
strcpy(str, config_getoption("ROOTDIR"));
if (! str[0])
strcpy(str, "%h");
- replace(str, "%h", home_directory);
- replace(str, "%u", user);
+ replace(str, "%h", home_directory, MAX_STRING_LENGTH);
+ replace(str, "%u", user, MAX_STRING_LENGTH);
/* see if we should change root */
if (! strcasecmp(config_getoption("DO_CHROOT"), "yes"))
@@ -376,7 +422,13 @@
} /* end of using file auth */
new_umask();
- print_file(230, config_getoption("MOTD_USER"));
+ /* print_file(230, config_getoption("MOTD_USER")); */
+ strcpy(str, config_getoption("MOTD_USER"));
+ /* Allow user specific path to MOTD file. */
+ replace(str, "%h", home_directory, MAX_STRING_LENGTH);
+ replace(str, "%u", user, MAX_STRING_LENGTH);
+ print_file(230, str);
+
control_printf(SL_SUCCESS, "230 User logged in.");
#ifdef HAVE_UTMP_H
bftpd_logwtmp(1);
@@ -389,9 +441,10 @@
state = STATE_AUTHENTICATED;
bftpd_cwd_init();
- /* a little clean up before we go*/
+ /* a little clean up before we go */
if ( (home_directory) && ( strcmp(home_directory, "/" ) ) )
free(home_directory);
+
return 0;
}
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/main.c
^
|
@@ -80,10 +80,10 @@
void print_file(int number, char *filename)
{
FILE *phile;
- char foo[256];
+ char foo[MAX_STRING_LENGTH];
phile = fopen(filename, "r");
if (phile) {
- while (fgets(foo, sizeof(foo), phile)) {
+ while (fgets(foo, MAX_STRING_LENGTH, phile)) {
foo[strlen(foo) - 1] = '\0';
control_printf(SL_SUCCESS, "%i-%s", number, foo);
}
@@ -93,6 +93,7 @@
void end_child()
{
+ Force_Update_Sent_Recv_Log();
if (passwdfile)
fclose(passwdfile);
if (groupfile)
@@ -137,8 +138,11 @@
struct bftpd_childpid *childpid;
/* Get the child's return code so that the zombie dies */
- pid = wait(NULL);
- for (i = 0; i < bftpd_list_count(child_list); i++) {
+ /* pid = wait(NULL); */
+ pid = waitpid(-1, NULL, WNOHANG);
+ while (pid > 0)
+ {
+ for (i = 0; i < bftpd_list_count(child_list); i++) {
childpid = bftpd_list_get(child_list, i);
if ( (childpid) && (childpid->pid == pid) ) {
close(childpid->sock);
@@ -147,7 +151,9 @@
/* make sure the child is removed from the log */
bftpdutmp_remove_pid(pid);
}
- }
+ }
+ pid = waitpid(-1, NULL, WNOHANG); /* check for more children */
+ }
}
void handler_sigterm(int signum)
@@ -160,6 +166,7 @@
{
/* Log user out. -- Jesse <slicer69@hotmail.com> */
bftpdutmp_end();
+ // Force_Update_Sent_Recv_Log();
if (alarm_type) {
close(alarm_type);
@@ -175,18 +182,20 @@
void init_everything()
{
- if (!daemonmode) {
- config_init();
- hidegroups_init();
- }
+ if (!daemonmode)
+ {
+ config_init();
+ hidegroups_init();
+ }
log_init();
- bftpdutmp_init();
+ bftpdutmp_init();
login_init();
+ Open_Send_Receive_Log();
}
int main(int argc, char **argv)
{
- char str[512 + 1];
+ char str[MAX_STRING_LENGTH + 1];
static struct hostent *he;
int i = 1, port;
int retval;
@@ -197,18 +206,21 @@
my_argv_list = argv;
signal(SIGHUP, handler_sighup);
- while (((retval = getopt(argc, argv, "c:hdDin"))) > -1) {
+ while (((retval = getopt(argc, argv, "c:hvdDin"))) > -1) {
switch (retval) {
case 'h':
printf(
- "Usage: %s [-h] [-i|-d|-D] [-c <filename>|-n]\n"
+ "Usage: %s [-h] [-v] [-i|-d|-D] [-c <filename>|-n]\n"
"-h print this help\n"
+ "-v display version number\n"
"-i (default) run from inetd\n"
"-d daemon mode: fork() and run in TCP listen mode\n"
"-D run in TCP listen mode, but don't pre-fork()\n"
"-c read the config file named \"filename\" instead of " PATH_BFTPD_CONF "\n"
"-n no config file, use defaults\n", argv[0]);
return 0;
+ case 'v': printf("Bftpd version %s\n", VERSION);
+ return 0;
case 'i': daemonmode = 0; break;
case 'd': daemonmode = 1; break;
case 'D': daemonmode = 2; break;
@@ -239,6 +251,7 @@
sizeof(i));
#endif
memset((void *) &myaddr, 0, sizeof(myaddr));
+ myaddr.sin_family = AF_INET;
if (!((port = strtoul(config_getoption("PORT"), NULL, 10))))
port = DEFAULT_PORT;
myaddr.sin_port = htons(port);
@@ -255,11 +268,16 @@
fprintf(stderr, "Listen failed: %s\n", strerror(errno));
exit(1);
}
-
- for (i = 0; i < 3; i++) {
+
+ /* check for open stdin, stdout, stderr */
+ if (listensocket >= 3)
+ {
+ for (i = 0; i < 3; i++) {
close(i); /* Remove fd pointing to the console */
open("/dev/null", O_RDWR); /* Create fd pointing nowhere */
- }
+ }
+ }
+
my_length = sizeof(new);
while ((sock = accept(listensocket, (struct sockaddr *) &new, &my_length))) {
pid_t pid;
@@ -397,14 +415,14 @@
print_file(220, config_getoption("MOTD_GLOBAL"));
/* Parse hello message */
strcpy(str, (char *) config_getoption("HELLO_STRING"));
- replace(str, "%v", VERSION);
+ replace(str, "%v", VERSION, MAX_STRING_LENGTH);
if (strstr(str, "%h")) {
if ((he = gethostbyaddr((char *) &name.sin_addr, sizeof(struct in_addr), AF_INET)))
- replace(str, "%h", he->h_name);
+ replace(str, "%h", he->h_name, MAX_STRING_LENGTH);
else
- replace(str, "%h", (char *) inet_ntoa(name.sin_addr));
+ replace(str, "%h", (char *) inet_ntoa(name.sin_addr), MAX_STRING_LENGTH);
}
- replace(str, "%i", (char *) inet_ntoa(name.sin_addr));
+ replace(str, "%i", (char *) inet_ntoa(name.sin_addr), MAX_STRING_LENGTH);
control_printf(SL_SUCCESS, "220 %s", str);
/* We might not get any data, so let's set an alarm before the
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/mystring.c
^
|
@@ -22,22 +22,39 @@
*(dest + len) = 0;
}
-int replace(char *str, char *what, char *by)
+
+/*
+Search through str looking for what. Replace any what with
+the contents of by. Do not let the string get longer than max_length.
+*/
+int replace(char *str, char *what, char *by, int max_length)
{
char *foo, *bar = str;
int i = 0;
+ int str_length, what_length, by_length;
/* do a sanity check */
if (! str) return 0;
if (! what) return 0;
if (! by) return 0;
- while ((foo = strstr(bar, what))) {
- bar = foo + strlen(by);
- memmove(bar,
- foo + strlen(what), strlen(foo + strlen(what)) + 1);
- memcpy(foo, by, strlen(by));
- i++;
+ what_length = strlen(what);
+ by_length = strlen(by);
+ str_length = strlen(str);
+
+ foo = strstr(bar, what);
+ /* keep replacing if there is somethign to replace and it
+ will no over-flow
+ */
+ while ( (foo) &&
+ ( (str_length + by_length - what_length) < (max_length - 1) ) )
+ {
+ bar = foo + strlen(by);
+ memmove(bar, foo + strlen(what), strlen(foo + strlen(what)) + 1);
+ memcpy(foo, by, strlen(by));
+ i++;
+ foo = strstr(bar, what);
+ str_length = strlen(str);
}
return i;
}
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/mystring.h
^
|
@@ -1,10 +1,12 @@
#ifndef __BFTPD_MYSTRING_H
#define __BFTPD_MYSTRING_H
+#define MAX_STRING_LENGTH 512
+
int pos(char *, char *);
void cutto(char *, int);
void mystrncpy(char *, char *, int);
-int replace(char *, char *, char *);
+int replace(char *, char *, char *, int);
char *readstr();
int int_from_list(char *list, int n);
|
[-]
[+]
|
Changed |
bftpd-3.5.tar.bz2/options.c
^
|
@@ -22,7 +22,7 @@
*/
char *config_read_line(FILE *configfile)
{
- static char str[256];
+ static char str[MAX_STRING_LENGTH];
char *s = str;
if (!fgets(str, sizeof(str), configfile))
return NULL;
@@ -84,8 +84,8 @@
if (! opt)
return;
- opt->name = (char *) malloc(strlen(str));
- // opt->value = (char *) malloc(strlen(str));
+ opt->name = (char *) malloc( strlen(str) + 2 );
+ /* opt->value = (char *) malloc(strlen(str)); */
opt->value = (char *) malloc( strlen(str) + 256);
sscanf(str, "%[^=]=\"%[^\n\"]", opt->name, opt->value);
}
@@ -177,10 +177,10 @@
}
while ((str = config_read_line(configfile))) {
if (strchr(str, '{')) {
- replace(str, " {", "{");
- replace(str, "{ ", "{");
- replace(str, " }", "}");
- replace(str, "} ", "}");
+ replace(str, " {", "{", MAX_STRING_LENGTH);
+ replace(str, "{ ", "{", MAX_STRING_LENGTH);
+ replace(str, " }", "}", MAX_STRING_LENGTH);
+ replace(str, "} ", "}", MAX_STRING_LENGTH);
if (!strcasecmp(str, "global{\n")) {
create_options(configfile, &(config_global.options), &(config_global.directories));
} else if (strstr(str, "user ") == str) {
@@ -249,10 +249,11 @@
}
char *getoption_directories(struct directory *dir, char *name) {
- char curpath[256], *bar;
+ char curpath[MAX_STRING_LENGTH], *bar;
struct directory *longest = NULL;
if(!dir)
return NULL;
+ memset(curpath, '\0', MAX_STRING_LENGTH);
getcwd(curpath, sizeof(curpath) - 1);
strcat(curpath, "/");
do {
@@ -355,8 +356,7 @@
char *config_getoption(char *name)
{
static char empty = 0;
-// char *result;
- char *foo;
+ char *foo;
if (userinfo_set) {
if ((foo = getoption_user(name)))
return foo;
|
[-]
[+]
|
Added |
bftpd-3.5.tar.bz2/redhat/bftpd-2.3.spec
^
|
@@ -0,0 +1,53 @@
+%define name bftpd
+%define version 2.3
+%define release 1
+%define prefix /usr
+
+Summary: A small, fast and easy-to-configure FTP server.
+Name: %{name}
+Version: %{version}
+Release: %{release}
+License: GPL
+Group: System Environment/Daemons
+Vendor: Jesse Smith <jessefrgsmith@yahoo.ca>
+URL: http://bftpd.sourceforge.net/
+Source0: http://bftpd.sourceforge.net/downloads/rpm/%{name}-%{version}.tar.gz
+BuildArch: i386
+#BuildRoot: /var/tmp/%{name}-root
+Provides: bftpd
+
+%description
+A very configurable small FTP server
+bftpd is a easy-to-configure and small FTP server that supports chroot
+without special directory preparation or configuration. Most FTP commands
+are supported.
+
+%prep
+%setup
+%build
+make
+
+%install
+make install
+
+%clean
+rm -rf "$RPM_BUILD_ROOT"
+
+%files
+%defattr(-,root,root)
+%config(noreplace) %verify(not mtime) /etc/bftpd.conf
+%{prefix}/sbin/bftpd
+%{prefix}/share/man/man8/bftpd.8
+
+%changelog
+* Mon Jan 1 2007 Joe Klemmer <joe@webtrek.com>
+- updated the version number.
+* Mon Jan 9 2006 Joe Klemmer <joe@webtrek.com>
+- added defined variables to the top of the file.
+- set the config file in the %files section so it won't
+ be over written on upgrades.
+- added a default attributes to the %files section.
+- redid the summery section to bring it in line with "rpm
+ spec file standards" (an oxymoron if ever there was one).
+- changed the depricated "Copyright" into "License".
+
|