* pathnames.h: _PATH_FTPUSERS renamed to _PATH_FTPUSERS_DEFAULT
authorMitchell Berger <mitchb@mit.edu>
Fri, 8 Jun 2001 04:17:45 +0000 (04:17 +0000)
committerMitchell Berger <mitchb@mit.edu>
Fri, 8 Jun 2001 04:17:45 +0000 (04:17 +0000)
* ftpd.c: Added '-U filename' option to allow specification of
an ftpusers file other than the default.

* ftpd.M: Documented the new -U option.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13303 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/gssftp/ftpd/ChangeLog
src/appl/gssftp/ftpd/ftpd.M
src/appl/gssftp/ftpd/ftpd.c
src/appl/gssftp/ftpd/pathnames.h

index 9f74c68e2a6e355516da516011b5160d3b47f08a..3a6280c580b0e94cc5cd8fe15503b0b719e3e2ed 100644 (file)
@@ -1,3 +1,12 @@
+2001-06-08  Mitchell Berger  <mitchb@mit.edu>
+
+       * pathnames.h: _PATH_FTPUSERS renamed to _PATH_FTPUSERS_DEFAULT.
+
+       * ftpd.c: Added '-U filename' option to allow specification of
+       an ftpusers file other than the default.
+
+       * ftpd.M: Documented the new -U option.
+
 2001-06-06  Ezra Peisach  <epeisach@mit.edu>
 
        * ftpcmd.y: Include "ftpd_var.h" and remove prototype for reply()
index 725eeee1d9305cb4a0a03193068718082e2afcfc..9ed8cb45e2d291255ed35c81e3994896024156a8 100644 (file)
@@ -42,6 +42,7 @@ Internet File Transfer Protocol server
 [\fB\-a \fP|\fB -A\fP] [\fB\-c\fP] [\fB\-C\fP] [\fB\-d\fP] [\fB\-l\fP]
 [\fB\-t\fP \fItimeout\fP] [\fB\-T\fP \fImaxtimeout\fP]
 [\fB\-p\fP \fIport\fP] [\fB\-u\fP \fIumask\fP]
+[\fB\-U\fP \fIftpusers-file\fP]
 [\fB\-r\fP \fIrealm-file\fP] [\fB\-s\fP \fIsrvtab\fP]
 [\fB\-w\fP[\fBip\fP|\fImaxhostlen\fP[\fB,\fP[\fBno\fP]\fBstriplocal\fP]]]
 .SH DESCRIPTION
@@ -107,6 +108,12 @@ Normally the ftp server is invoked by
 \fB\-u\fP \fIumask\fP
 Sets the umask for the ftpd process.  The default value is normally 027.
 .TP
+\fB\-U\fP \fIftpusers-file\fP
+Sets the full path and name of the
+.I ftpusers
+file to use.  The default value is normally
+.IR /etc/ftpusers .
+.TP
 \fB\-r\fP \fIrealm-file\fP
 Sets the name of the
 .I krb.conf
index a81556093aafb370ab03d0e1de24f907d77795ef..f5bbd524877051dad7b3c400f13fc95d2ffeb012 100644 (file)
@@ -117,6 +117,7 @@ extern char *sys_errlist[];
 #endif
 
 extern char *mktemp ();
+char *ftpusers;
 
 #include <k5-util.h>
 
@@ -283,6 +284,7 @@ main(argc, argv, envp)
 {
        int addrlen, on = 1, tos, port = -1;
        char *cp;
+       ftpusers = _PATH_FTPUSERS_DEFAULT;
 
 #ifdef KRB5_KRB4_COMPAT
        keyfile = KEYFILE;
@@ -397,6 +399,17 @@ main(argc, argv, envp)
                        goto nextopt;
                    }
 
+               case 'U':
+                   if (*++cp != '\0')
+                       ftpusers = cp;
+                   else if (argc > 1) {
+                       argc--, argv++;
+                       ftpusers = *argv;
+                   }
+                   else
+                       fprintf(stderr, "ftpd: -U expects argument\n");
+                   goto nextopt;
+
                case 'w':
                {
                        char *optarg;
@@ -690,11 +703,11 @@ int askpasswd;                    /* had user command, ask for passwd */
  * Sets global passwd pointer pw if named account exists and is acceptable;
  * sets askpasswd if a PASS command is expected.  If logged in previously,
  * need to reset state.  If name is "ftp" or "anonymous", the name is not in
- * _PATH_FTPUSERS, and ftp account exists, set guest and pw, then just return.
+ * ftpusers, and ftp account exists, set guest and pw, then just return.
  * If account doesn't exist, ask for passwd anyway.  Otherwise, check user
  * requesting login privileges.  Disallow anyone who does not have a standard
  * shell as returned by getusershell().  Disallow anyone mentioned in the file
- * _PATH_FTPUSERS to allow people such as root and uucp to be avoided, except
+ * ftpusers to allow people such as root and uucp to be avoided, except
  * for users whose names are followed by whitespace and then the keyword
  * "restrict."  Restricted users are allowed to login, but a chroot() is
  * done to their home directory.
@@ -845,7 +858,7 @@ user(name)
 }
 
 /*
- * Check if a user is in the file _PATH_FTPUSERS.
+ * Check if a user is in the file ftpusers.
  * Return 1 if they are (a disallowed user), -1 if their username
  * is followed by "restrict." (a restricted user).  Otherwise return 0.
  */
@@ -857,7 +870,7 @@ checkuser(name)
        register char *p;
        char line[FTP_BUFSIZ];
 
-       if ((fd = fopen(_PATH_FTPUSERS, "r")) != NULL) {
+       if ((fd = fopen(ftpusers, "r")) != NULL) {
             while (fgets(line, sizeof(line), fd) != NULL) {
                  if ((p = strchr(line, '\n')) != NULL) {
                        *p = '\0';
index 8669e466ab7625b9cf6583c8aeac42f459cd92c4..41398bc5f57ef59436a7da0f96969ffaa36242c7 100644 (file)
@@ -33,4 +33,4 @@
  *     @(#)pathnames.h 5.2 (Berkeley) 6/1/90
  */
 
-#define        _PATH_FTPUSERS  "/etc/ftpusers"
+#define        _PATH_FTPUSERS_DEFAULT  "/etc/ftpusers"