FingerD - A Finger Service for Windows NT ========================================= Dean Troyer (troyer@indirect.com) Version 0.4 - 03Feb1995 This finger service will implement RFC 1194 when released as version 1.0. Currently, it provides only the most basic finger protocol functionalty. A couple of changes have been made to accomodate the Windows NT environment: you can specify a domain or machine name as part of the user name to query a particular user database. Use the standard NT syntax: domain\username. For example, I could do a finger cas\dt@bugs and get the FingerD on my workstation (bugs) to query my main domain account from the Primary Domain Controller for domain CAS. The .plan and .project files are supported, with some conditions: - FingerD only looks in the home directory listed in your user profile for .plan and .project files - It currently only looks for the files with a leading period. Obviously, this only works with NTFS. It should also look without the leading periods to support FAT filesystems. - The account that FingerD is running under (see the installation info below) must have read access to the home directory and files themselves. Installation ------------ Copy fingerd.exe to a convenient location, such as %SystemRoot%\system32. Type: fingerd -install Look in the registry with the Registry Editor and edit the values under HKEY_LOCAL_MACHINE\SOFTWARE\Local\FingerD to suit your location and situation. If you don't know how to edit the registry, ask Microsoft. Open the Services applet in Control Panel and select the 'Finger Server'. Select 'StartUp' and set it to run as any account other than LocalSystem. It is an NT security 'feature' that prevents a service running as LocalSystem from having network access. In UNIX, fingerd runs as root so it has access to the information in user's home directories. You may not want to do this. You will want to create a userid just for this, and you can use it for the anonymous account for the FTP service, too. After all that, start the service, open a command window, and try it out! Removal ------- Type: fingerd -remove This doesn't remove the registry entries. You can do that with the Registry Editor, too. Maybe someone will add a -removeall that deletes EVERYTHING: registry entries, auxilary files, even fingerd.exe itself. Registry -------- FingerD is configured via the Windows NT registry. When installed, it creates a key under HKEY_LOCAL_MACHINE\SOFTWARE\Local\FingerD. The possible values are listed below: LanManDomain (REG_SZ): The NT or Lan Manager Domain to be queried for user information. This can also be a machine name. If missing or blank, the local machine's database is used. If the local machine is an NT Workstation, the local user accounts are referenced; if the local machine is an NT Server, the copy of the domain database on that machine is used. (future) EnableUserInfo (REG_DWORD): Allows the administrator to disable FingerD from transmitting detailed user information. This is seen as a security issue for some installations. Traditionally, this would be enough reason to simply not rin a finger server; however, FingerD also implements some system reporting capabilities. Misc Other Important Factoids ----------------------------- I used MS Visual C++ 2.0 to build FingerD on Intel/Alpha/MIPS platforms. If you build a PowerPC version, I'd like to get it for the collection. Build FingerD from the command line by typing 'nmake'. You will want to define a CPU environment variable if you don't have one, because I shove the platform-specific object code into a unique directory for each platform. I also have a LOCAL variable that points to a directory tree on the local workstation (as opposed to a shared network area). I've found it not pleasant to run services from a network drive. Upcomming features include: - reporting system processing statistics for the local machine - additional registry configuration: controls for the amount of information, disable some information - remaining RFC 1194 functionality: request forwarding, Legal Stuff ----------- // Copyright 1995 Dean Troyer (troyer@indirect.com) // All rights reserved. // // This software has been developed by Dean Troyer and other contributors // ('The Authors') with the intention that it's source code be available // to the user/developer community, not only to maintain it's correct // operation, but to allow for enhancements by others to contribute to the // overall improvement of the software. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // 3. All advertising materials mentioning features or use of this software // must display the following acknowledgement: // This product includes software developed by Dean Troyer and // other contributors. // 4. The names of the Authors may not be used to endorse or promote // products derived from this software without specific prior written // permission. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Basically, if you fix or enhance FingerD, be kind enough to forward at least the bug fixes back to me for inclusion into the ongoing project. I make no money from this; my motivation is to fill the enormous void of freely available source code for Windows NT. And to demonstrate and practice useful techniques that might not be commonly known.