Overview This chapter explains the concept of client and server

advertisement
Overview
This chapter explains the concept of client and server (client/server) computing and the benefits in networked
environments. The student will work with UNIX network commands and utilities such as ping (packet internet
groper), telnet (terminal emulator), and rlogin (remote login) for troubleshooting. The student will work
with ftp (file transfer protocol) and rcp (remote copy) for transferring files to and from other systems. An
overview and benefits of naming services such as Domain Name Service (DNS) and Network Information
System (NIS) is provided. Resource sharing protocols such as Network File System (NFS) and Server
Message Block (SMB) also are covered.
16.1
Client/Server
Computing
16.1.1
Client/server
computing
The client/server computing model distributes processing over multiple computers. Distributed processing
enables access to remote systems for the purpose of sharing information and network resources. In a
client/server environment, the client and server share or distribute processing responsibilities. Most network
operating systems, and especially UNIX, are designed around the Client/Server model to provide network
services to users. Computers on a network can be referred to as a host, a server, or a client.



A host is a computer system on a UNIX network. Any UNIX computer running TCP/IP, whether a
workstation or server, is considered a host computer. The local host is the machine on which the
user currently is working. A remote host is a system that is being accessed by a user from another
system.
A server provides resources to one or more clients by means of a network. Servers provide
services in a UNIX environment by running daemons. Examples of daemons include Printer, FTP,
and Telnet.
A client is a machine that uses the services from one or more servers on a network. The student's
computer can be a printer client, an FTP client, and a Telnet client simultaneously.
A simple example of a client/server relationship is an FTP session. FTP, or the File Transfer Protocol, is a
basic industry standard method of transferring a file from one computer to another. For the client to transfer
a file, to or from the server, the server must be running the FTP daemon or service. In this case, the client
requests the file to be transferred. The server provides the services, FTP daemon, necessary to receive or
send the file.
The Internet is also a good example of a distributed processing client/server computing relationship. The
client or front end typically handles user presentation functions such as screen formatting, input forms, and
data editing. This is done with a browser such as Netscape or Internet Explorer. The server or back end
handles the client's requests for Web pages and provides HTTP or WWW services. Another example of a
client/server relationship is a database server and a data entry or query client in a LAN (Local Area
Network). The client or front end might be running an application written in the C or Java language, and the
server or back end could be running Oracle or other database management software. In this case, the
client also would handle formatting and presentation tasks for the user. The server would provide database
storage and data retrieval services for the user.
In a typical file server environment, the client might have to retrieve large portions of the database files to
process the files locally. This retrieval of the database files can cause excess network traffic. With the
client/server model, the client presents a request to the server, and the server database engine might
process 100,000 records and pass only a few back to the client to satisfy the request. Servers are typically
much more powerful than client computers and are better suited to processing large amounts of data. With
client/server computing, the large database is stored and the processing takes place on the powerful
server. The client has to deal with only creating the query. A relatively small amount of data or results might
be passed across the network. This satisfies the client's query and results in less usage of network
bandwidth. The figure shows an example of client/server computing. Note that the workstation and server
normally would be connected to the LAN by a hub or switch.
16.2 Network and Remote Access Utilities
16.2.1 Network and remote access utilities
As UNIX computer networks began to develop, commands and utilities were added
to make it easier to work with programs and files residing on other client or server
computers on the network, and transferring files. These commands were either
specific to UNIX such as rlogin, rsh, ssh, and rcp or common to TCP/IP such as
ping, traceroute, telnet, and ftp. The rlogin, rsh, ssh, and telnet
commands provide access to remote computers. The ping and traceroute
commands can serve as network connectivity troubleshooting tools. Telnet can also
be used to troubleshoot network connections. This section describes some of the
most common and most useful of the UNIX and TCP/IP network utilities.
Note: To use some network commands in Solaris and Linux, it may be necessary to
login as root or specify the full path such as /usr/sbin/ping. Use the whereis
command to determine the directory location for a particular command, for example,
$whereis ping.
16.2.2 The ping utility
Ping (Packet Internet Groper) is a useful utility that is part of the basic TCP/IP protocols package and is
standard with every UNIX system. A computer that is running the TCP/IP protocol stack can make use of the
ping command.
ping hostname
or
ping [ip address]
Ping is a good low-level troubleshooting tool. The ping command tests basic connectivity between TCP/IP
hosts. The ping command sends an Internet Control Message Protocol (ICMP) echo request to another
computer or "host" on a TCP/IP network. If there is a reply from the destination host, there is a good
connection between them. Ping uses IP datagrams to pass connection information. Therefore, a ping will test
physical connections and IP addressing. If the student is incapable of running an application on a remote
host, the student can ping the host as a basic connectivity test. If the student does not get a response, the
problem might not be with the application. The problem might be that the host or the network link is down.
Any network operating system that is running the TCP/IP protocol can send and respond to ping . The
student can ping the name of a host computer if a naming service such as DNS is running. The student can
also ping if the host name and IP address has been entered in the student's /etc/hosts file. If neither of these
options is used, the student can directly ping the IP address of the host. This direct option is preferred. This
option is a simpler test of connectivity and does not depend on name resolution. Figure shows an example
using the ping command.
Tip: In Linux, ping continuously sends packets until interrupted with Ctrl + C. In Solaris the ping -s
command performs the same function. Typing the ping command alone will give a list of options available.
Interactive Media Activity (Flash, 101 kB)
Using the ping Command
In this e-Lab activity, the student is logged in as user2, and the current working directory is
/home/user2. Refer to the class file tree structure on the inside front cover of this book. The student
types the commands that would accomplish the requested objectives.
Note: Be sure to press Enter after each one. Click Step 1 to begin.
16.2.3 The traceroute command
Traceroute is another useful utility that is part of the basic TCP/IP protocol suite . Any computer running
TCP/IP can use the traceroute command.
traceroute hostname
or
traceroute [ip address]
Traceroute is a good troubleshooting tool for checking the connection between computers that are
interconnected with routers. Routers provide for connection of private networks and the public Internet. The
traceroute command checks the time it takes for a packet to get from one router to the next and can help
isolated slow links. Each router the packet goes through to reach its destination is listed in the command
output and is referred to as a hop. As with ping, traceroute tests physical connections and IP addressing
from one host to another on a TCP/IP network. The figure shows an example using the traceroute
command.
6.2.4 The telnet utility
Another very useful TCP/IP utility is Telnet. The Telnet utility is standard on most operating systems. Telnet is
a client/server terminal emulation program that allows the user to connect to another system. The Telnet
server simulates a terminal to authorize a user or Telnet client to connect to a remote system and work in that
environment. When "Telneting" to another host, the student is prompted for a username and password. After
a session is established from the Telnet client, the student can enter commands as if the student were
entering the commands directly on the system console. The student can Telnet to several different hosts and
have multiple Telnet sessions open simultaneously.
All operating systems that support TCP/IP provide at least a Telnet client. Not all operating systems provide a
Telnet server or daemon. However, UNIX provides both a Telnet client and a Telnet server or daemon. In
addition to connecting to other hosts, Telnet can be used to connect to and manage network devices such as
switches and routers. These devices are actually microcomputers with a CPU and RAM, but these devices do
not have a keyboard or monitor. Telnet allows the student to use the computer's keyboard and monitor to
remotely access and administer these devices.
Note: The procedure for Telnetting to another system depends on the Telnet program that the student uses.
For example, the student could use the UNIX telnet command, the Windows Telnet program, NCSA Telnet
for Macintosh users, or a shareware Telnet program. Each command or program is slightly different.
Telnet is another good network troubleshooting tool. Telnet is a nongraphical communications utility that can
be used to check the upper layers of the OSI model. Telnet runs at Layer 7, the application layer. If the
student is having trouble executing another client/server application, the student can try to Telnet to the host
or server to verify that the TCP/IP protocol stack is functioning correctly. The student must remember that not
all network operating systems support the Telnet server function. For example, the student can Telnet from a
Windows 9x or NT/2000/XP workstation to a UNIX server, but cannot Telnet to the Windows 9x or NT
workstation. The Windows 9x and NT operating systems include a Telnet client but not a Telnet daemon or
server. Windows 2000 and XP both include Telnet servers but they are not enabled by default. The student
can Telnet to the host operating system as long as the system is running a Telnet daemon or server. If a
Telnet daemon is running it may be desirable to disable the server to block Telnet requests as a security
measure. The student can Telnet to the name of a host computer if the student has a naming service running
such as DNS. The student can Telnet to the host by entering the host name and IP address in the
/etc/inet/hosts files. If none of these apply the student can Telnet the IP address of the host. When using
Telnet, the student can do the following:



Open a session on a remote machine
Alternate between the remote session and the local session
Access machines that do not run under the UNIX environment
Figure shows an example of using Telnet to connect to a remote system called beach. Notice that the host
name beach is converted to an IP address using name to IP-address resolution. The student also could
Telnet directly to the IP address of the host if the student knew the IP address. Figure shows alternating
between the remote session and a local session.
Tip: If the Backspace and Delete keys do not work after establishing a telnet session to a remote UNIX
system, the student looks for an option in the Telnet program that allows the student to define these keys. If
the student's Telnet program does not allow these keys to be defined, the student should do the following:



Type stty erase at the shell prompt after the student logs in.
Hit the Backspace key which will enter a ^H.
Hit Enter.
This will allow the Backspace key to work properly. The student should type stty erase '^h' somewhere
in the .profile file located in the home directory of the remote system. This is to keep from having to do this
procedure each time the student Telnets to the system. See Chapter 14, "Shell Features and Environment
Customization", for more details.
Interactive Media Activity (Flash, 101 kB)
Using telnet
In this e-Lab activity, the student is logged in as user2, and the current working directory is
/home/user2. Refer to the class file tree structure on the inside front cover of this book. The student
types the commands that would accomplish the requested objectives.
Note: Be sure to press Enter after each one. Click Step 1 to begin.
16.2.5 The rlogin command
Like the TCP/IP telnet utility, the UNIX rlogin (remote login) command is used to establish a login session
on another remote UNIX workstation. Telnet will always prompt for username and password. Rlogin can be
setup so no password is required as a convenience to users and for security reasons. If a password is not
typed a hacker cannot view it. Remotely logging into a workstation is helpful under the following
circumstances:



To access information on another workstation that is not available otherwise
To access a user's workstation remotely to read mail
To kill a process that has caused the user's workstation to hang
Figure lists some functions that can be performed with rlogin. Figure
host under the student's current user ID.
shows how to log into another
Specifying a Different Login ID
Use the -l option to specify a different login ID for the remote login session. The system administrator can set
up a guest account so that users can remotely log onto a server. Figure shows how to log in remotely as
another user. The syntax for the rlogin command is as follows:
rlogin hostname -l username
The student must have an account on the desired remote host before attempting to remotely log into another
host system as a different user. If the student does not have an account on the remote host, the student must
check with the system administrator. The student will need to know the following information:



Host name
Login ID
Password of the new account
Terminating a Local Process from a Remote Machine
The student's system is not responding and the student does not want to reboot. The student might be able to
kill a process on the system remotely. The student logs onto another machine and using the rlogin
command to access the student's system. After successfully killing the process that caused the system to not
respond, the exit command ends the student's rlogin session. Figure shows an example of
terminating a process from a remote machine.
Using rlogin and pkill to Recover from a "Hung" CDE Session
If the workstation does not appear to be responding to mouse or keyboard input, the chances are that the
problem originates from within the student's CDE session. The problem is not with the underlying operating
system itself. In these cases, the student can use another workstation to access the student's workstation by
way of rlogin or telnet. The student then uses the pkill command to terminate the corrupted CDE
session, all without rebooting the student's workstation.
Figure shows how to use rlogin and pkill to recover from a hung CDE session. If the student knows
the default shell, use the first example of pkill. If the student does not know the default shell, use the
second example of pkill. This will determine and terminate all instances of the student's login shell
automatically. Either variant returns the student to the dtlogin screen, enabling the student to start a new CDE
session.
Interactive Media Activity (Flash, 95 kB)
Using rlogin
In this e-Lab activity, the student is logged in as user2, and the current working directory is
/home/user2. Refer to the class file tree structure on the inside front cover of this book. The student
types the commands that would accomplish the requested objectives. Note: Be sure to press Enter
after each one. Click Step 1 to begin.
16.2.6 The FTP command
The File Transfer Protocol (FTP) application is part of the TCP/IP protocol suite and is standard with most
operating systems. This application can be used to transfer files using ASCII or binary mode between
systems using similar or dissimilar operating systems. This provides a basic means of transferring files from
one file format to another. For instance, a UNIX file normally would be unreadable by a Windows operating
system. However, since both operating systems support FTP, the file is converted from one file format to
another as it is transferred.
Tip: It is important to know the type of file or files that are being transferring ("ftping") so that the student can
set the appropriate transfer mode. If the student is transferring a non-ASCII file, the student must set the
transfer mode from the default ASCII to binary. This is accomplished by typing bin at the ftp prompt (ftp>bin
[Enter]). Transferring a non-ASCII file in ASCII transfer mode renders the file useless. Transferring text files
in binary mode could result in a scrambled file.
An ASCII file is an ordinary text file with no formatting characters. An example would be a file created with vi
in UNIX or Notepad in Windows. A binary file is any other type of file such as a file from a word processor, a
program file, a zip file, and so on. When transferring ASCII text files between two different operating systems,
such as UNIX to Windows, or vice versa, the default ASCII transfer mode saves the file in a format that
makes the file readable by the different OSs.
Most computers running servers with sites set up for downloading files provide an anonymous FTP account
so that users can pull files off the server. For this kind of an account, at the Name prompt, the word
anonymous is entered instead of accepting the default displayed. If a password is required for the anonymous
account, it usually is the user's full e-mail address. Although the FTP client is normally enabled, most OSs
that support FTP do not usually start the server as a default. However, if the FTP server is running, it may be
desirable to disable it to block ftp requests as a security measure.
Tip: Type asc or ascii to switch back to ASCII transfer mode from binary mode.
To start an FTP session, the student types ftp at the shell prompt. After supplying an account name and
password, the student will receive the FTP program prompt (ftp>). This prompt indicates that the student is in
the FTP program and ready to transfer files. The syntax for the ftp command is shown here:
ftp hostname
or
ftp [ip address]
After the student successfully uses ftp command to access a remote site, some familiar file and directory
access commands such as cd and ls are available. To view a list of FTP available commands, the student
enters the ? at the ftp> prompt. If permissions are set by the site's system administrator for a user to see the
contents of a directory, the ls command displays files in that directory. If permissions are set so that a user
does not have access to the files, when the ls command is entered, a prompt is returned in response. As on
the student's local system, cd will change directories on the remote system. If it is necessary for the student
to change directories on the student's own system in the middle of the ftp session, the lcd (local change
directory) command can be used. To end an FTP session, the student types bye at the prompt.
Tip: The File Transfer Protocol supports approximately 50 UNIX and FTP commands. Refer to the man
pages on the ftp command for a complete list.
In addition to the previous commands, other commands that the student will use often are put, mput,
get, and mget. The put command is used to transfer a file to the remote host. The mput (multiple put)
command allows the student to transfer more than one file at a time by specifying a space-delimited list of
files. Wildcards are accepted. The get and mget commands are used to transfer one or more file from a
remote host to the student's system.
Figure shows an example using the ftp command to transfer two files, hosts and /tmp/hosts, in binary
mode from another host. In this case, we are initiating an FTP session to the host name venus. As with ping
and telnet, the student can FTP directly to the host's IP address.
Interactive Media Activity (Flash, 95 kB)
Using ftp
In this e-Lab activity, the student is logged in as user2, and the current working directory is
/home/user2. Refer to the class file tree structure on the inside front cover of this book. The student
types the commands that would accomplish the requested objectives. Note: Be sure to press Enter
after each one. Click Step 1 to begin.
Lab Activity
Networking Commands
In this lab, the student works with UNIX and Transmission Control Protocol/Internet Protocol (TCP/IP)
networking commands.
16.2.7 The rcp command
The rcp (remote copy) command is another command from the r (remote) family of commands. Like
rlogin, the rcp command is a UNIX, not a TCP/IP, command for use between UNIX systems. The rcp
command works in much the same way the cp (copy) command does. The rcp command is used to get or
copy and put or paste files and directories to and from a remote UNIX system. The syntax for the rcp
command is shown here:
rcp source_file hostname:destination_file
rcp hostname:source_file
("put ")
destination_file ("get ")
For example, to copy the memo file to the /tmp directory on the host buckeye, use this command:
$rcp memo buckeye:/tmp
To copy the budget file from dano's home directory on buckeye to the current directory, use this command:
$rcp buckeye:~dano/budget
.(dot)
To remotely copy the chapters directory to the /book directory on the host production1, use this command:
$rcp -r ~/chapters
production1:/book
Note: In order for one system to copy a file to another system a .rhosts file needs to be created in the home
directory of the receiving user account. The .rhosts file lists all hosts or host and username pairs it trusts.
A system is said to trust another by allowing access without requiring a username and password. This
condition must exist before a remote copy is permitted between the two systems. For example, in order for
user jiml on the host named wildcat to remote copy a file to user dano on the host named buckeye, dano
must create a .rhost file in the home directory and place wildcat jiml on one line. Placing just the hostname
wildcat on one line would permit any user on wildcat to remote copy a file to dano's home directory on
buckeye.
16.2.8 Secure Shell (SSH)
As previously discussed telnet, rlogin, and FTP allow remote access to other UNIX computers or
network devices. However, there is a disadvantage of these utilities. The disadvantage is that all data and
passwords are transmitted unencrypted. Secure Shell (SSH) is a relatively new utility that provides secure
access to a remote computer by encrypting all transmission between client and server. SSH is becoming
increasingly popular as a replacement for telnet and FTP for use in managing Web and other servers
remotely. SSH also replaces an early UNIX utility called remote shell or rsh which used unencrypted
communication.
As with telnet, FTP and other UNIX client/server applications, SSH requires two components. The server
component must be installed on the system to be managed remotely and the client must be installed on the
managing system. SSH is included as part of several Linux distributions such as Red Hat. Depending on the
Linux distribution and the role the system will play it may be necessary to install SSH.
SSH can also be downloaded at no cost from http://www.openssh.com. OpenSSH is a suite of three utilities
for the client support.



ssh (replaces rsh, rlogin and telnet)
scp (replaces rcp)
sftp (replaces ftp)
Also included is sshd (ssh daemon) which provides the SSH server functionality. In addition to character
based sessions, X-Windows or graphical connections are also supported.
16.3.1 Overview
Name services store information in a central place that users, workstations, and applications must have to
communicate across the network. These services include the following:



Host names and addresses
Usernames
Passwords
Without a central name service, each workstation would have to maintain its own copy of this information.
Name service information may be stored in files, maps, or database tables. Centrally locating this data makes
it easier to administer large networks.
The goal of a naming service is to allow centralization of network administration. The administration of a
group of machines grows in complexity with the number of machines and users to manage. As a result,
decentralized administration is conceivable for two or three machines, but it becomes more complex if the
number exceeds that limit. For example, there is a group of five machines. If all the users have to be able to
log in as themselves on each machine, the administrator must duplicate the /etc/passwd file on every
machine. Although putting this in place initially is possible, maintenance becomes difficult. In effect, each
modification of one element of the password file makes it necessary to reproduce the change on each
machine. The problem that is raised by the /etc/passwd file is greatly increased by necessary changes to
many other administrative files, such as the groups and hosts files.
Centralized Administration
Administrators should set up networks with a centralized administration that distributes a database to all the
machines known by the distributed administration. This database can be centralized on one server, which
provides the administrative services. The group of machines using the database on the server is called a
domain. This centralized administration uses a naming service as the framework for the domain or domains.
The Domain Name System (DNS) and Network Information Service (NIS) are two naming services that can
be set up for use in the UNIX networked environment. NIS+ is another naming service developed by Sun
Microsystems for Solaris. Each naming service is discussed in greater detail in the following sections.




Name Services is a distributed database that contains information about all the hosts, users, and
shared resources on the network.
DNS (Domain Name Service) is a network information service provided by the Internet and TCP/IP
networks.
NIS (Network Information Services) provides centralized administration of network information users,
workstations, applications and so on.
NIS+ is Sun’s newest naming service for Solaris.
16.3.2 DNS
The Domain Name System (DNS) is the name service provided by the Internet for TCP/IP networks. DNS
was developed so that workstations and servers on the network could be identified with common names
instead of Internet addresses. DNS performs resolution or translation of host name to Internet (IP) address
between hosts within the user's local administrative domain and across domain boundaries.
For example, the user starts their browser and types in a Web site such as cisco.netacad.net or
www.sun.com. A DNS server within the user's domain or at the user's ISP tries to translate the Internet
domain name to an IP address. If the server cannot, it requests help from other DNS servers on the Internet.
If none of the DNS servers can translate the name that the user entered, the user will get an error from their
browser. In the example of www.sun.com, the name of the Web server (www) in the sun.com domain would
be translated to an IP address such as 172.16.133.89. Because of the DNS server the user is capable of
entering www.sun.com and have it translated to the IP address of the Web site that the user wants to go to. If
the DNS server is down or unavailable, the user will not be able to connect to the desired Web site using the
domain name. If the user knows the IP address of the server, though, the user could enter the IP address and
connect. Without an IP address, the user's request would never make it to the Web server at Sun
Microsystems.
The collection of networked workstations that use DNS is referred to as the DNS namespace. The DNS
namespace can be divided into a hierarchy of domains. A DNS domain is simply a group of workstations.
With the Internet, the top of the DNS tree is called the root domain and is controlled by the NIC (Network
Information Center). Below the root domain are the top-level domains. Figure lists some examples of toplevel domain names.
The sun.com domain is controlled by administrators of Sun Microsystems not NIC.
An organization may decide to break up their domain into subdomains based upon organizational structure.
An example of a subdomain would be suned.sun.com.
/etc/hosts file
The original host based UNIX naming system was developed for standalone UNIX machines and then was
adapted for network use. Many older UNIX operating systems and machines still use this system, but this
system is not well suited for large, complex networks. With this system, name resolution is performed on each
machine and requires that a static /etc/hosts file be created on each machine to translate host names to IP
addresses. The addition of a new machine to the network means updating the /etc/hosts file on every
machine on the network.
Likewise, if all the users have to be able to log in as themselves on each machine, the administrator must
duplicate the /etc/passwd on every machine. This method of constantly updating the etc files on each
machine on the network can take up an enormous amount of time with a medium or larger network. Figure
shows what a typical /etc/hosts file looks like.
16.3.3 NIS and NIS+
NIS
The Network Information Service (NIS) was developed by Sun Microsystems and has become the recognized
industry standard for UNIX network information services. NIS is frequently implemented in Linux and other
UNIX environments. NIS has a slightly different focus than DNS. DNS focuses on making communication
simpler by using host and domain names instead of numerical IP addresses. NIS focuses on making network
administration more manageable by providing centralized control over a variety of network information. NIS
stores information about workstation names and IP addresses, users, the network itself, and network
services. This collection of network information is referred to as the NIS namespace. NIS namespace
information is stored in NIS maps. NIS maps were designed to replace UNIX /etc files, as well as other
configuration files, so these maps store much more than names and addresses. As a result, the NIS
namespace has a large set of maps.
NIS uses a client/server arrangement similar to that of DNS. Replicated NIS servers provide services to NIS
clients. The principal servers are called master servers. To be more reliable, NIS servers have backup
servers, or slave servers. Both master and slave servers use the NIS information retrieval software, and both
store NIS maps. Figure summarizes the characteristics of NIS
NIS+
The Network Information Service Plus (NIS+) is similar to NIS, but with many more features. NIS+ is not an
extension of NIS. NIS+ is Sun's newest, proprietary naming service for Solaris.
NIS+ enables the user to store information about workstation addresses, security information, mail
information, Ethernet interfaces, and network services in central locations where all workstations on a
network can have access to the information. This configuration of network information is referred to as the
NIS+ namespace.
The NIS+ namespace is hierarchical and is similar in structure to the UNIX directory file system. The
hierarchical structure allows an NIS+ namespace to be configured to conform to the logical hierarchy of an
organization. The namespace's layout of information is unrelated to its physical arrangement. An NIS+
namespace can be divided into multiple domains that can be administered autonomously. Clients may have
access to information in other domains, in addition to their own, if the client's have the appropriate
permissions.
NIS+ uses a client/server model to store and control access to the information contained in an NIS+
namespace. Each domain is supported by a set of servers. The principal server is called the master server,
and the backup servers are called replicas. The network information is stored in 16 standard NIS+ tables in
an internal NIS+ database. Both master and replica servers run NIS+ server software, and both maintain
copies of NIS+ tables. Changes made to the NIS+ data on the master server are reproduced automatically to
the replicas.
NIS+ includes a sophisticated security system to protect the structure of the namespace and its information.
NIS+ uses authentication and authorization to verify whether a client's request for information should be
fulfilled. Authentication determines whether the information requester is a valid user on the network.
Authorization determines whether a particular user is allowed to have or modify the information requested.
Figure summarizes the characteristics of NIS+.
16.4.1 The Network File System
The Network File System (NFS) is a distributed file system developed by Sun Microsystems. It is a network
service that allows users to transparently access files and directories located on another disk on the network.
NFS enables computers of different architectures running different operating systems to access remote
resources as if they were local. NFS has become adopted as the industry standard networked file system for
most UNIX vendors.
NFS provides users with several benefits:



Centralized files allow multiple computers to use the same files. Because the files reside on one or
more computers and shared to the network, others can access them. Centralized files are useful with
login directories or common data files. It is easier for an administrator to back up a home file system
containing many users' home directories residing on one system instead of individual workstations.
Common software allows systems to share software programs. It is easier to install and upgrade a
network version of programs on one server than to install the program on each individual workstation.
Accessing files is transparent to the user. A user might work on an application or change to a
directory residing on another computer on the network and not even realize it. The automounter
feature makes the files appear to be on the user's own computer.
Shared files typically are made available at bootup or automount.
16.4.2 The SMB/CIFS protocol
Computers running one of the Microsoft operating systems such as Windows 9x, NT, 2000, or XP use a
protocol called Server Message Block (SMB) for sharing files and printers on a network. SMB performs a
similar function for Microsoft clients as NFS does for UNIX clients or Netware Core Protocol (NCP) does for
Novell Clients. Although the term SMB is still commonly recognized, it has been renamed to Common
Internet File System or CIFS. The SMB/CIFS protocol is implemented in the UNIX world to allow Microsoft
clients to access UNIX servers and vice versa. Samba is an open source version of SMB that comes with
most Linux distributions and provides both client and server applications. Commercial versions of Samba are
also available for Solaris and other UNIX varieties. With Linux, SMB support may be selected during OS
installation or installed later.
With the Samba server daemon running on a UNIX server, Microsoft clients can access UNIX shares as
though they were connecting to a Microsoft server. Running the Samba client applications on a UNIX
workstation allows users to access Microsoft server shares. For the UNIX client, two utilities provide access.
The smbclient utility allows access to shares using commands similar to FTP and provides short-term access.
The smbmount utility allows the user to mount the shared folder so that it appears as part of the user's local
file system for continued use.
Summary
A client/server architecture is a popular computing model used with the Internet. The client/server architecture
is used to distribute or share processing loads when performing tasks. The server or backend runs software
such as a daemon to provide services for client requests.
Several TCP/IP and UNIX networking utilities are available including ping, telnet, traceroute,
rlogin, and ftp.
The ping command is a low-level troubleshooting tool. The telnet command can be used to take over the
console of a remote host. The rlogin command is used to log in and run programs on another computer.
The File Transfer Protocol is a useful utility that can be used to transfer file between computers with dissimilar
operating systems. The rcp command is used to copy file and directories between UNIX computers.
Secure shell (SSH) is an open source suite of utilities that can provide a secure, encrypted replacement for
telnet, rsh, rcp, rlogin and ftp.
The Domain Name System (DNS) is the name service provided by the Internet for TCP/IP networks. DNS
was developed so that workstations and servers on the network could be identified with common names
instead of Internet addresses. DNS performs resolution or translation of host name to Internet (IP) address
between hosts.
Sun developed NIS, NIS+, and NFS. NIS and NIS+ simplify network administration by providing a centralized
database for user account authorization. NFS provides for distributed processing by allowing a file system on
a remote computer to appear as part of the local hosts file system.
The SMB/CIFS protocol provides for sharing of files and printers between Microsoft and UNIX systems.
Samba is the most common implementation of this protocol and comes with most Linux distributions.
Download