This package is the actual port of inetutils-1.3.2 to Cygwin 1.3.2. The base of that release is the port of Sergey Okhapkin. Some additional patches are done to allow smooth working with the current cygwin release and especially Windows NT service manager and NT security. Version 1.3.2-14: Revert most of the Cygwin specific patches of the initial port of rshd. Change the waiting select to check child state repeatedly to avoid hanging after child's death. Version 1.3.2-13: Keep current environment when starting a child process from rshd, except for settings for "USER", "PATH" and "SHELL". Slight changes to this README. Version 1.3.2-12: Correctly reset effective uid to real uid when switching user context back instead of switching fixed to uid 0. Version 1.3.2-11: Thanks to Egor Duda for the following: Call AllocConsole() to keep output of native windows console applications in the child window. Version 1.3.2-10: Link ncurses explicitly static. Fix stderr problem in rshd. Version 1.3.2-9: Fix a build error which results in a non-functional talk. Version 1.3.2-8: Fix a backtick problem in iu-config. Thanks to Steve O'Brien for pointing this out: Check argv[0] for valid win32 application name in rlogin and in rsh. Avoid a possible segmentation fault in rshd. Thanks to Chris Faylor for the following: Eliminate a busy loop from inetd. Version 1.3.2-7: Remove the configuration files from the archive. Create them only when /usr/bin/iu-config is started. Thanks to Jason Gouger for the following: Fix the annoying port problem of rshd which results in the inability to reconnect to rshd within 10 minutes. Version 1.3.2-6: Fix complete_login to allow anonymous ftp to enter mail address as password. Thanks to Bob Heckel for the following: Add a security announcement to the README file. Version 1.3.2-5: Rearrange to use all new features of Cygwin-1.1.3. Allow anonymous ftp under NT/W2K using special `ftp' entry in /etc/passwd. Use 1.1.3 call `chroot' for anonymous ftp. Fix configure.in, Makefile.in, config.make and rules.make to support $EXEEXT. Care for Cygwin specific README file when installing. Installs default /etc files. Thanks to Eric Fifer for the following: Fix the call to CreateService in inetd. Fix inetd.c(main) to allow debug mode on NT/W2K. Version 1.3.2-4: Fixed memory leak in rcp. Version 1.3.2-3: Fixed file open modes. All ascii configuration files are opened in textmode now. Fixed binary mode in ftpd when running in text mount mode. Additional example files: /etc/ftpusers /etc/ftpwelcome /etc/motd /etc/shells Fixed some install traps in various Makefile.in files. Version 1.3.2-2: Fixed environment problem in rlogind. Version 1.3.2: Initial port. Example /etc/inetd.conf file. The important features in brief ================================ - Before starting any program, be aware that all neccessary configuration files in /etc have to be generated first! Call iu-config once after you installed the inetutils the first time. That generates some files: /etc/inetd.conf - inetd configuration. See man pages. /etc/shells - Allowed login shells. /etc/ftpusers - List of users not allowed to login. Set to "ftp" and "anonymous" by default. /etc/ftpwelcome - Message printed to welcome a user at the ftp server before login. /etc/motd - "message of today", printed by ftp after successful login. Also printed by `login(1)' after successful login. - To start interactive telnet/rsh/rlogin sessions you need /bin/login.exe which is a separate package (part of the Cygwin standard net distro). - inetd: Under W9X inetd can be started from a shell prompt or from the autostart folder. Under NT/W2K inetd must be started from service manager. It must not be started via SRVANY but it has two new options to install or remove it as service: inetd --install-as-service inetd --remove-as-service When you already have an older version of inetd installed, please remove the service before installing the new one. After you have installed inetd it will be started automatically on reboot. Manually starting and stopping is possible via net start inetd net stop inetd Current caveat: inetd is visible twice in the process list. This is currently needed to work correctly with the service manager. This should be solved in a future release. If you don't start inetd as service under LocalSystem but under another account, you have to care that that account has several user rights set in the user manager resp. local/domain security policy mmc snap in: "Act as part of the operating system" "Replace process level token" "Increase quotas" "Logon as a service" Note that administrators do not have all that user rights set by default! For all application started via NT/W2K service manager under LocalSystem account, the following restrictions apply: - The environment variable CYGWIN must be either set in the system environment to be active from start on or you can set CYGWIN thru the registry: Under the key HKLM\Software\Cygnus Solutions\Cygwin\Program Options create a REG_SZ (String) named like the full DOS path to the application, eg. "C:\usr\bin\inetd.exe" and with the value equal to the preferred CYGWIN settings, eg "binmode tty ntsec". - The system environment variable PATH must contain the path to the directory which contains the cygwin1.dll. - No user mount point is valid anymore! You have to install all your mount points in the system mount table. This doesn't change after you have logged in to a normal user account eg. via telnet/rlogin. It's possible that we can use the user mounts as soon as somebody contributes a patch to login and ftp that allows loading a user hive into the registry after authentication. - ftpd: Under NT/W2K ftpd is now able to change user context with the help of NT security. This is useful mostly when using all features of the ntsec option of cygwin. The 'S-' and 'U-' fields in pw_gecos are taken into account as it's described in the 'login.README' file. Anonymous ftp is usable by creating a `ftp' user in /etc/passwd and either create a `ftp' user in the NT user database or by using the aforementioned `S-' and `U-' entries in /etc/passwd together with ntsec ON. If, for example, the cygwin user `ftp' should be attached to the NT user `guest', you can create the ftp user from your guest entry: ftp::100:10:U-guest,S-1-5-21-XXX-YYY-ZZZ-501:/home/ftp:/bin/false Note that: - The `ftp' entry needs a valid directory. - The attached NT user must not have a password. On 9X systems /etc/passwd is checked for DES encrypted passwords as provided by the crypt package. - ftp: ftp reports to be a UNIX system, so binary mode is ON by default with most servers. - telnetd: For getting telnetd working on NT/W2K systems you need to install the login package from the same site/directory. On 95/98 systems you need to install the login package and the crypt package from the same site/directory. Security announcement ===================== Please be aware that if you have created your /etc/passwd via mkpasswd -l then you may have a security hole. If your PC has `guest' login enabled in order to allow shares to certain directories on your W2K or NT box, your passwd file contains an entry for Guest that will allow anyone to ftp, telnet, etc. to your machine simply by using user guest and pressing enter for the password. One solution is to eliminate the guest account via user manager. The other is to delete the guest entry in /etc/passwd if you don't want to use the `guest' user for anonymous ftp. In that case you should AT LEAST change the user's shell entry in /etc/passwd to something like /bin/false or /bin/date to avoid interactive login without password. Note that the automatically enabled `guest' user is a weakness of Windows NT, not Cygwin. How is it configured? ===================== - The used configure options are: --prefix=/usr --libexecdir='${exec_prefix}/sbin' --sysconfdir=/etc When starting `make' you will see mesages like this: ../rules.make:84: target `/usr/sbin' given more than once in the same rule. Ignore them. What is working? ================ ftp ftpd inetd rcp rlogin After EOF the user has to enter RETURN twice to get back to the prompt. This is a Cygwin problem which is solved since Cygwin-1.1.5. rlogind rsh rshd syslog syslogd Superfluous for NT because syslog output is generated anyway. talk talkd telnet telnetd uucpd What is not yet working? ======================== rexecd Invalid handle error tftp Permission errors tftpd Permission errors Please send requests, error reports etc. to cygwin@sourceware.cygnus.com. Have fun, Corinna Vinschen Cygwin Developer Red Hat Inc.