Interoperating with UNIX

The Unix operating system was developed in 1969, and was the initial operating system written in the C programming language. Unix enabled multiple users to access the system and run programs at the same time, and share resources and files. To date, Unix is regarded as being a robust, stable operating system. It is though considered quite intricate to administer.

These days, Unix is available as a number of different solutions that have been customized by vendors to suit their own hardware platforms:

  • AIX; developed by IBM for their computer systems.

  • BSD; the foundation of the SunOS from Sun Microsystems.

  • HP/UX; developed by Hewlett-Packard.

  • IRIX; developed for the workstations of Silicon Graphics.

  • Solaris; developed for the SPARC systems of Sun Microsystems.

  • System V; developed from the Unix Systems Laboratories and AT&T versions of UNIX.

Windows operating systems support interoperability with Unix platforms by means of a number of utilities, and services and protocols:UNIX and Windows Server

  • Support for industry standard protocols such as:

    • TCP/IP

    • Domain Name System (DNS)

    • Dynamic Host Configuration Protocol (DHCP)

    • remote procedure call (RPC)

  • For file sharing purposes, support for File Transfer Protocol (FTP) and Hypertext Transfer Protocol (HTTP).

  • Cross platform database access support using open database connectivity (ODBC).

  • Remote terminal emulation support through Telnet.

  • For Unix printing, support via Line Printer Daemon (LPD), Line Printer Queue (LPQ) and Line Printer Remote (LPR).

  • Support for network management via Simple Network Management Protocol (SNMP) and Remote Network Monitoring (RMON).

The main Microsoft product used to enable interoperability with Unix is the Microsoft Windows Services for UNIX. The Microsoft Windows Services for Unix 3.0 components are listed here:

  • Interix; includes the C and Korn command shells and numerous utilities which ultimately enables you to run Unix applications directly on Windows based computers.

  • Interix Software Development Kit; includes documentation, and tools and libraries that you can use to make Unix applications run on Windows computers via the Interix subsystem.

  • User Name Mapping; enables Windows and Unix users to access files on one another's computers. This is done transparently and without causing security issues. Unix accounts can utilize Unix accounts from Personal Computer Network File System (PCNFS) servers or from Network Information System (NIS) servers. User Name Mapping provides centralized mapping between Windows user accounts and Unix accounts for:

    • Interix

    • Client for NFS

    • Server for NFS

    • Gateway for NFS

  • Client for NFS; provides a number of features:

    • Windows based computers are able to map an exported NFS share to a drive letter so that users access files on the file system like they are on a local drive.

    • Users can also access NFS shares through Universal Naming Convention (UNC) names.

    • Users are able to obtain Unix authentication credentials via User Name Mapping or PCNFS server.

  • Server for NFS; enables share directories to be shared as NFS exported file systems. Server for NFS Authentication and User Name Mapping map the identifier (UID) and group identifier (GID) of the user of the Unix client to a Windows user account. Unix clients therefore obtain the proper access to files hosted on Windows based servers.
    li>Gateway for NFS; enables Windows users to access exported file systems on NFS – no client software is needed on the computers. For Gateway for NFS to work, it needs User Name Mapping to provide the proper UID and GID for the Windows user. Gateway for NFS runs on Windows Server servers only, and not on Windows XP Professional computers.

  • Server for NIS; integrates Unix Network Information System (NIS) networks with Active Directory. Server for NIS runs on Windows Server servers only, and not on Windows XP Professional computers.

  • Server for PCNFS; enables Windows users to access NFS file systems if the user supply the proper Unix user name and password.

  • Password Synchronization; enables a user to only require a single password for Unix networks and Windows based networks:

    • When a user changes a Unix password, the password is automatically updated in the Windows network.

    • When a user changes a Windows password, the password is automatically updated in the Unix network.

  • Telnet Client and Telnet Server; the Telnet terminal protocol is utilized to grant Windows users command-line access to Unix systems. Telnet Client users are able to directly log on to computers running Telnet Server.

How to install Windows Services for UNIX

  1. Place the Windows Services for Unix CD-ROM in the CD-ROM drive.

  2. The Microsoft Windows Services for Unix Setup Wizard launches automatically. If not, start Setup.exe, located within the root directory.

  3. Click Next on the Welcome to the Microsoft Windows Services for Unix Setup Wizard screen.

  4. On the following page, provide the appropriate user information and proper license key, and then click Next.

  5. On the following page displayed, you can select either the Standard installation option or the Custom installation option. Select the Custom installation option and click Next.

  6. On the Selecting Components page, select the Windows Services for Unix components that you want to install. Click Next.

  7. The license agreement is displayed if you have chosen to install ActiveState's Perl. Accept the license agreement and then click Next.

  8. On the User Name Mapping page, enter the name of the User Name Mapping server, and then click Next.

  9. Specify a location for the SFU installation and click Next.

  10. Installation of the Windows Services for Unix components that you have selected occurs.

  11. Click Finish.

The Unix Common Commands

There are a number of Unix commands, supported by most Unix versions, which you can use to perform administrative tasks for the Unix operating system:

  • alias; for displaying or defining aliases for long command strings.

  • awk; for searching a file for a particular pattern and then executing a specific action on those lines which include the particular pattern.

  • bg; for moving a process that stopped, to the background and then restarting it.

  • cal; shows the calendar.

  • cat; for displaying/concatenating files.

  • cd; to change the current directory.

  • chgrp; to change group ownership of a file.

  • chmod; to change access permissions of a file.

  • chown; to change ownership of a file

  • chsh; to change the default shell of a password file.

  • clear; to clear the current display.

  • cmp; to compare two files and list the differences.

  • cp; to copy a file.

  • date; to show the date and time.

  • df; to show the free disk space in the file system.

  • diff; to list the differences between two files.

  • du; to view file system usage.

  • fg; for moving a process that stopped to the background and then restarting it.

  • find; to find a file with particular characteristics.

  • ftp; File Transfer Protocol (FTP) client.

  • Grep; to search a file for a specific text pattern.

  • head; to display the first 10 lines of a file.

  • help; to display help.

  • hostname; shows the name of the host system.

  • kill; to end a currently running process.

  • Ln; to link files.

  • lpq; shows the print job to the spooler.

  • lpr; to send a print job to the spooler.

  • ls; to display files within a directory and file statistics.

  • mail; to send an e-mail.

  • man; to navigate to the online manual.

  • mkdir; to create a directory.

  • mv; to move/rename a file.

  • passwd; change the password.

  • ps; show the status of the process.

  • rm; remove/delete a file.

  • rmdir; remove/delete a directory.

  • sleep; to pause a process.

  • sort; to sort files.

  • split; to split the file into a number of files.

  • uudecode; decode a uuencoded file.

  • uuencode; encodes a binary file.

  • whoami; list the name of currently logged on user.

  • whois; locate a remote user/site.

  • write; send a user a message.

Configuring Services for UNIX

The services or components of the Microsoft Windows Services for Unix product is categorized into the following groups:

  • Connectivity services: Consists of the following:

    • Telnet server

    • Telnet client

    • User Name Mapping server

    • Server for NIS

    • Server for PCNFS

    • Password synchronization

    • Remote shell services

  • File services: Consists of the following:

    • Client for NFS

    • Server for NFS

    • Gateway for NFS

  • Interoperability and migration services: Consists of the following:

    • Interix subsystem

    • Base Utilities

    • SDK

    • UNIX and ActiveState Perl distributions

    • GNU Utilities and SDK

The Telnet server provides the means for interoperability between Windows Server 2003 machines and Unix machines. The Win32 Telnet server works well for most installations by providing access from any server or workstation on which Telnet client is installed. The Win32 Telnet server supports logins from a range of clients and character mode terminal clients from whichever operating system.

The SFU Telnet server supports NT LAN Manager ((NTLM) authentication for client logins and authenticates users through their Windows Server 2003 logon. For NTLM authentication to work, it must be supported on the server end and on the client end.

The Tnadmin.exe program is used to perform administrative tasks for the Telnet server. Tnadmin.exe is installed with the Services for Unix Administration MMC snap-in.

The Telnet server configuration setting options which can be configured through Tnadmin.exe are listed here:

  • Authentication; select NTLM authentication, or username and password.

  • Auditing; define the types of events that are logged, and specify whether logging occurs to the event log or to a specific log file.

  • Server settings; used to configure the following server configuration options:

    • Maximum Number Of Simultaneous Connections; the default setting is equal to the number of licensed connections to the server.

    • Maximum Number Of Failed Login Attempts; the default setting is 3.

    • Map Alt Key To CtrlA; the default setting is Yes.

    • Telnet Port; the default setting is 23.

    • Mode Of Operation; the default is Console. Either Console mode or Stream mode can be specified.

    • Default Domain Name; enter a domain name which is automatically added to the logon user name.

    • Idle Session Timeout; enter the time unil a session is disconnected.

    • Terminate All Programs When Disconnecting; ends all programs when the session is disconnected.

    • Continue To Run Programs Started With Bgjob Command; used to enable a process to still continue to run once the session has been ended.

  • Sessions;to terminate a session, send a message to the session, or simply view information on active sessions.

Telnet client configuration occurs within a telnet session. The following commands are used:

  • ?; for help.

  • close; to close a connection.

  • display; to show the operating parameter settings.

  • open <machinename>; to connect to the machine.

  • send; to pass strings to the Telnet server. All strings, other than those listed below are transmitted as they are:

    • ao; send the Abort Output Telnet command to the Telnet server.

    • ayt; send the Are You There command to the Telnet server.

    • esc; send the telnet escape character to the Telnet server.

    • ip; send the Interrupt Process command to the Telnet server.

    • synch; send the Synch command to the Telnet server.

    • status; to obtain status information on the current session.

    • quit; quit the Telnet client.

  • set; to set operating parameters:

    • ?; to display help.

    • bsasdel; the BACKSPACE key is transmitted as the DELETE key.

    • crlf; the RETURN key sends a carriage return and a linefeed.

    • escape x; x is the escape character to move to the Telnet client prompt.

    • localecho; activate local echo of characters entered.

    • logfile <filename>; defines filename to be the current log file.

    • mode x; x is either console or stream mode.

    • Ntlm; enables NTLM authentication.

    • term <value>; sets the requested terminal emulation as specified.

    • unset ; to undo all options specified through the set command.

How to configure User Name Mapping

User Name Mapping (UNM) is the main authentication component of Microsoft Windows Services for UNIX. User Name Mapping provides centralized mapping between Windows user accounts and Unix accounts for Interix, Client for NFS, Server for NFS, and Gateway for NFS. The Services for Unix Administration graphical user interface tool, Sfumgmt.msc, is used to configure User Name Mapping:

  1. Open the Services for Unix Administration tool.

  2. In the left pane, select User Name Mapping.

  3. Select either Network Information Services (NIS) or Personal Computer Network File System (PCNFS) as the Unix authentication method to utilize.

  4. Click Apply to save your selection.

  5. Click the Maps tab.

  6. Select the Simple Maps checkbox.

  7. Click the Show User Maps option under Advanced Maps.

  8. In the drop down list, click Windows Domain Name.

  9. Click the List Windows Users button to display the list of Windows users that can be mapped.

  10. Click the List Unix Users button to display the list of Unix users that can be mapped.

  11. Select the Windows user and Unix user which should be mapped, and then click the Add button. Repeat this for all the necessary users.

  12. Click Apply to save your changes.

How to configure NFS client settings

  1. Open the Services for Unix Administration tool.
  2. In the left pane, select Client for NFS
  3. The default file access permissions set are:
    • For the owner of the file; the Read, Write, and Execute permission.
    • For the Owner group and for Other users; the Read and Execute permission.

    This is where you can change the default file access permissions for a file.

  4. Click Performance to change the performance settings of Client for NFS:
    1. Transport Protocol; the default setting is UDP.
    2. Mount Type; the default setting is Soft.
    3. Interval Between Retries; the default setting is 0.8 seconds.
    4. Read Buffer Size; the default is 32 KB.
    5. Write Buffer Size; the default is 32 KB.
  5. To restore the default settings, click the Restore Defaults button.