|
|
1.1 ! root 1: .TH FTAMD 8C "01 Mar 1987" ! 2: .\" $Header: /f/osi/ftam2/RCS/ftamd.8c,v 7.1 90/02/20 17:12:11 mrose Exp $ ! 3: .\" ! 4: .\" ! 5: .\" $Log: ftamd.8c,v $ ! 6: .\" Revision 7.1 90/02/20 17:12:11 mrose ! 7: .\" update ! 8: .\" ! 9: .\" Revision 7.0 89/11/23 21:54:35 mrose ! 10: .\" Release 6.0 ! 11: .\" ! 12: .SH NAME ! 13: ftamd \- FTAM responder ! 14: .SH SYNOPSIS ! 15: .in +.5i ! 16: .ti -.5i ! 17: .B \*(SDiso.ftam ! 18: \%[\-c] ! 19: \%[\-d] ! 20: \fImagic\0arguments\fR ! 21: .in -.5i ! 22: (under \fI\*(SDtsapd\fR\0) ! 23: .SH DESCRIPTION ! 24: The \fIftamd\fR server implements the responder side of ! 25: the File Transfer, Access, and Management (FTAM) service. ! 26: .PP ! 27: Currently, implementations for Berkeley and AT&T UNIX exist. ! 28: Supported are: ! 29: the no-recovery FTAM-QoS; ! 30: any of ! 31: the transfer, management, and transfer and management service classes; ! 32: the kernel, read, write, limited file management, enhanced file management, and ! 33: grouping functional units; ! 34: and, the kernel and storage attribute groups. ! 35: Only three document types are supported as of this writing: ! 36: unstructured text files (FTAM\-1), ! 37: unstructured binary files (FTAM\-3), ! 38: and filedirectory files (NBS\-9). ! 39: .SH "DEBUG OPERATION" ! 40: If \fIiso.ftamd\fR is started interactively, ! 41: or if the `\-d' switch is given, ! 42: then debug mode is entered. ! 43: In this case, ! 44: all logging activity is displayed on the user's terminal. ! 45: In addition, ! 46: the logging information is more verbose. ! 47: .SH AUTHENTICATION ! 48: An FTAM initiator must be listed in the \fIpasswd\fR file and have a ! 49: non\-empty password. ! 50: Further, as with the \fIftpd\fR daemon, ! 51: the username must not appear in the \fI\*(EDftamusers\fR file ! 52: or the \fI/etc/ftpusers\fR file. ! 53: .PP ! 54: If the username \*(lqANON\*(rq or \*(lqftp\*(rq is given, ! 55: then \fIftamd\fR treats this as a guest access, ! 56: similar to the \*(lqanonymous\*(rq facility supported by the \fIftpd\fR daemon. ! 57: An entry in the \fIpasswd\fR file for user \*(lqftp\*(rq must be present with ! 58: a non\-zero UID. ! 59: For guest access, ! 60: a \fIchroot\fR to the guest home directory ! 61: is executed to restrict access to the system. ! 62: The guest home directory should be structured thusly: ! 63: .PP ! 64: Note that the `\-c' flag (given in the \fIisoservices\fR\0(5) file) ! 65: forces a \fIchroot\fR to the initiator's home directory. ! 66: This is used to restrict network access. ! 67: .TP ! 68: .B ~ftp/ ! 69: Owned by \*(lqftp\*(rq with mode 555. ! 70: .TP ! 71: .B ~ftp/etc/ ! 72: Owned by the super\-user with mode 555. ! 73: The \fIpasswd\fR and \fIgroup\fR files should be present, ! 74: each with mode 444. ! 75: .TP ! 76: .B ~ftp/pub/ ! 77: Owned by \*(lqftp\*(rq with mode 777. ! 78: This is the directory where guests can place files from remote systems. ! 79: .TP ! 80: .B ~ftp/portal/ ! 81: Owned by the super\-user with mode 555. ! 82: The super\-user can put world\-readable files here ! 83: (with mode 444) without fear of these files being removed or altered by ! 84: guests. ! 85: .PP ! 86: Note that since \fIftamd\fR doesn't use \fIls\fR in order to produce ! 87: directory listings, ! 88: the directory \fIbin/\fR under the guest home directory need not be present, ! 89: as it must be to support the anonymous guest with \fIftpd\fR. ! 90: .SH "VIRTUAL FILESTORE" ! 91: Here are the file attribute mappings: ! 92: .TP ! 93: .B filename ! 94: A single component, relative to the user's $HOME. ! 95: Changing this attribute is equivalent to a \fIrename\fR. ! 96: .TP ! 97: .B contents\-type ! 98: Based on st_mode: ! 99: \fBNBS\-9\fR for directories, ! 100: \fBNBS\-1\fR for regular files appearing to be textual, ! 101: \fBFTAM\-3\fR for all other regular files. ! 102: Files that are neither regular nor directories are inaccessible via this ! 103: implementation of the VFS (i.e., special files). ! 104: .TP ! 105: .B account ! 106: The st_gid according to /etc/group. ! 107: Changing this attribute is equivalent to a \fIchgrp\fR. ! 108: .TP ! 109: .B date\-and\-time\-of\-creation ! 110: The st_mtime. ! 111: .TP ! 112: .B date\-and\-time\-of\-last\-modification ! 113: The st_mtime. ! 114: .TP ! 115: .B date\-and\-time\-of\-last\-read\-access ! 116: The st_atime. ! 117: .TP ! 118: .B date\-and\-time\-of\-last\-attribute\-modification ! 119: The st_ctime. ! 120: .TP ! 121: .B identity\-of\-creator ! 122: The st_uid according to /etc/passwd. ! 123: .TP ! 124: .B identity\-of\-last\-modifier ! 125: The st_uid according to /etc/passwd ! 126: (if the value of the st_mode field guarantees uniqueness). ! 127: .TP ! 128: .B identity\-of\-last\-reader ! 129: The st_uid according to /etc/passwd ! 130: (if the value of the st_mode field guarantees uniqueness). ! 131: .TP ! 132: .B identity\-of\-last\-attribute\-modifier ! 133: The st_uid according to /etc/passwd ! 134: (if the value of the st_mode field guarantees uniqueness). ! 135: .TP ! 136: .B file\-availability ! 137: Immediate. ! 138: .TP ! 139: .B permitted\-actions ! 140: Depends on st_mode as interpreted by \fIaccess\fR\0(2): ! 141: R_OK for permission to read; ! 142: W_OK for permission to write; ! 143: permission is always granted to read attributes; ! 144: permission is granted to change attributes if the initiator has uid equal to ! 145: st_uid; ! 146: permission to delete is based on writability of parent directory. ! 147: .TP ! 148: .B filesize ! 149: The st_size. ! 150: .TP ! 151: .B future\-filesize ! 152: Not available. ! 153: .TP ! 154: .B access\-control ! 155: Not available. ! 156: .TP ! 157: .B encryption\-name ! 158: Not available. ! 159: .TP ! 160: .B legal\-qualifications ! 161: Not available. ! 162: .TP ! 163: .B private\-use ! 164: Not available. ! 165: .PP ! 166: The activity attribute mappings are straight\-forward. ! 167: The read action corresponds to reading UNIX files. ! 168: The insert, replace, extend, and erase actions correspond to writing ! 169: UNIX files. ! 170: Concurrency control is supported for reading and writing, ! 171: but not for reading or changing attributes, or for deleting files. ! 172: .SH FILES ! 173: .nf ! 174: .ta \w'\*(EDisodocuments 'u ! 175: \*(EDisodocuments ISODE FTAM document types database ! 176: \*(EDisoentities ISODE entities database ! 177: \*(EDftamusers list of users prohibited by ftam ! 178: \*(LDftam.log logfile ! 179: /usr/adm/wtmp login records ! 180: .re ! 181: .fi ! 182: .SH "SEE ALSO" ! 183: ftam(1c), libftam(3n), isodocuments(5) ! 184: .br ! 185: \fIThe ISO Development Environment: User's Manual\fR, ! 186: .br ! 187: ISO 8571: ! 188: \fIInformation Processing Systems \-\- ! 189: File Transfer, Access, and Management\fR ! 190: .SH DIAGNOSTICS ! 191: All obvious. ! 192: .SH AUTHOR ! 193: Marshall T. Rose ! 194: .PP ! 195: This program is based somewhat on the \fIftpd\fR(8c) program supplied with ! 196: Berkeley UNIX. ! 197: .SH BUGS ! 198: The anonymous account is inherently dangerous and should be avoided when ! 199: possible. ! 200: It is also inherently useful. ! 201: .PP ! 202: The Berkeley UNIX version of this program runs with the effective UID of the ! 203: FTAM initiator, ! 204: but also with the real UID of the super\-user. ! 205: This is necessary to change the account attribute on files ! 206: (using \fIchown\fR\0). ! 207: The possible security holes have been extensively considered, ! 208: but may be incomplete. ! 209: .PP ! 210: The AT&T UNIX version, which lacks kernel support for this technique, acts ! 211: differently. ! 212: Immediately upon association establishment, ! 213: it changes both the real and effective UID to that of the FTAM initiator. ! 214: To change the account attribute on files, ! 215: it invokes the \fIchgrp\fR program. ! 216: Similarly, to create or delete directories, ! 217: it invokes either the \fImkdir\fR program or the \fIrmdir\fR program. ! 218: .PP ! 219: The AT&T UNIX version of this program has been tested both under ! 220: the System V Compatibility Package in SUN UNIX release 3.2 ! 221: and a true SVR3 implementation. ! 222: However, ! 223: the \fIfcntl\fR syscall, ! 224: which is used to implement concurrency control, ! 225: currently seems to be a no\-op. ! 226: The Berkeley UNIX version of this program uses \fIflock\fR, ! 227: which seems to work just fine.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.