SAMBA SERVER ADMINISTRATION full report
project report tiger|
Active In SP
Joined: Feb 2010
26-02-2010, 10:08 PM
SAMBA SERVER ADMINISTRATION.doc (Size: 705.5 KB / Downloads: 223)
SAMBA SERVER ADMINISTRATION
ASWATHY K S DIVYA C U MANJU KUKIAKOSE
1.1 ABOUT THE PROJECT
In the day to day scenario there may be situations where we want to add some WinNT/95/98 - Clients to an existing Linux-Network. Usually the process of integration is a tedious action requiring intensive care. This is made practical by editing the "smb.conf" file which serves as the backbone for the cross platform (Linux) communication technology and making essential changes in registry of Windows systems other than Windows 95/98 platforms.
It seems that Samba-solution doesn't require any additional Software installations for a Windows-Client, which is going to UNIX/Linux-Network!
The allocated time to complete the project and implimentation was about nearly four month, started on June2006. The various procedures carried out for the project and implimentation work are as follows:
i. Detailed study of the overall system.
ii. Identifying problems in the existing systems and opportunities to improve the
iii. Study of various types of data flows in the system through manuals and
iv. Study the various features of Linux OS and Qt Designer environment.
v. Define program logic.
vi. Program development for various activities.
vii. Program testing and modification.
viii. System testing and modification.
Samba is a very complex and complete package. The SMB protocol is used by Microsoft Windows 3.11(for Windows 3.x machines to access SMB shares,
they must have a TCP/IP stack and the Win32s DLLs), NT and 95/98, or higher
versions to share disks and printers. Using the Samba suite of tools by Andrew Tridgell, UNIX (including Linux) machines can share disk and printers with Windows hosts. The smbfs tools by Paal-Kr. Engstad and Volker Lendecke enable Unix machines to mount SMB shares from Windows or Samba hosts.
There are four basic things that one can do with Samba:
1. share a Linux drive with Windows machines.
2. Access an SMB share with Linux machines.
3. Share a Linux printer with Windows machines.
Share a Windows printer with Linux machines.
"Samba Server Administration GUI" is to administrate and monitor the servers, clients (Linux/Unix/Windows) with security incorporated in the network, and with additional functionalities like ease of use, less complexity, effective management of shared Files/Drives/Services of neighboring interconnected systems etc. System creates client software and server software for communication through sockets. The Tool can also be used for mastering server/clients of Linux/Unix environment. The built in functionalities of Samba Server are effectively managed for better performance.
The Client part of the system running in the networked systems reports to the server system about the properties of that particular system i.e., details regarding the samba configuration file. Based on these values the appropriate fields are set/reset accordingly. The client package produces details on the basis of System IP and the communication is maintained through the concepts of sockets. The built in authentication aspects of Samba are reproduced to enhance security capabilities.
In case of Windows systems the platform of operation includes Windows 95/98/XP/2000 etc.
CHAPTER 2 SYSTEM DEVELOPMENT
To implement "Samba-Server Administration GUI" system that could be implemented to any communication models in TCP/IP, here stream Socket in Linux networked environment is used. This is made possible using QT.QT is a comprehensive development framework that includes an extensive array of features, capabilities and tools that enable development of high-performance, cross-platform rich-client and server-side applications.
2.2 QT DESIGNER
Qt Designer is a powerful GUI layout and forms builder, which enables rapid development of high-performance user interfaces with native look and feel across all supported platforms. Stand-alone or integrated with IDEs like Microsoft Visual Studio.NET, Qt Designer includes powerful features such as preview mode, automatic widget layout, support for custom widgets, an advanced property editor and more.
Qt Designer makes it easy to visually design advanced user interfaces - at any time, we can generate the code required to reproduce and preview our interface, changing and adjusting your design as often as we like. Qt Designer helps us build cross-platform user interfaces with layout tools that move and scale our controls (widgets) automatically at runtime, taking font sizes and language use into consideration. The resulting interfaces are both functional and native-looking, comfortably suiting to users operating environments and preferences.
The Qt Designer is the programming studio shipped with Qt. In Qt 2.x Designer was used as a dialog designer and all code was authored using other editors. In Qt 3.x Designer has been extended to handle C++ project and implimentations and code editing along with the old functionality. Qt Designer makes it easy to visually design advanced user interfaces - at any time, you can generate the code required to reproduce and preview your interface, changing and adjusting your design as often as you like.
Qt developers only have to learn one API to write apps that run almost anywhere. Qt is a comprehensive C++ application development framework. It includes a class library and tools for cross-platform development and
internationalization. The uniform cross-platform API lets programmers concentrate on value-adding innovation, instead of worrying about maintaining and administering infrastructure and interfaces for multiple versions of existing applications. Qt requires no "virtual machines", emulation layers or bulky runtime environments. It writes directly to low-level graphics functions, just like native apps do - allowing Qt applications to run at native speed.
Qmake: As a Qt application has dependencies to the Qt libraries, its support libraries and sometimes to third part libraries, but at the same time attempts to be fully portable the make files can easily grow into complex beasts. Not only does the C++ source code have to be compiled, but the moc introduces an additional pre-compilation stage and, as we will see, user interfaces can be compiled from XML descriptions into C++ classes. To solve this problem qmake is used. For the simplest cases, simply type qmake -project and implimentation to analyze all code and emit a project and implimentation description file (of the type .pro). If qmake is executed without any parameters a Make file intended for the host platform is generated. To build the project and implimentation, simply run the make tool.
Uic: The user interface compiler translates .ui files generated by Designer into C++ classes. This tool is automatically configured by qmake.
Moc: The meta object compiler creates meta objects describing the classes with signals and slots. This tool is automatically configured by qmake
2.3 CROSS-PLATFORM C++ DEVELOPMENT
Qt sets the standard for high-performance, cross-platform application development. It includes a C++ class library and tools for cross-platform development and internationalization.
2.4 FEATURES OF QT
The features are 1. Qt is a comprehensive
2. The Qt class libraries
3. Cross-platform builds
4. Qt is easy to use
5. Qt is robust and performant
6. Qt is open source
7. Stand-alone or IDE integration
8. Powerful layout system integration
9. Preview mode
10. Custom controis integration
11. signals and slots integration
12. Qt/X11 - The standard for desktop linux development
Qt is a comprehensive development framework that includes an extensive array of features, capabilities and tools that enable development of high-performance, cross-platform rich-client and server-side applications.
Â¢ The Qt Class Library: is a growing library of over 400 C++ classes, which encapsulates all infrastructures needed for end-to-end application development. The elegant Qt API includes a mature object model, a rich set of collection classes, and functionality for GUI programming, layout, database programming, networking, XML, internationalization, OpenGL integration and much more.
Â¢ Qt Designer: is a powerful GUI layout and forms builder, enabling rapid development of high-performance user interfaces with native look and feel across all supported platforms.
Â¢ Qt Linguist: is a set of tools designed to smooth the internationalization workflow. Using Qt Linguist, development teams can outsource the translation of applications to non-technical translators, increasing accuracy and greatly speeding the localization process.
Â¢ Qt Assistant: is a fully customizable, redistributable help file/documentation browser that can be shipped with Qt-based applications. With Qt Assistant, development teams significantly speed the documentation process.
The Qt Class libraries form the foundation of Qt. The libraries makes available approximately 400 fully object-oriented classes with most of the infrastructure functionality needed to build cross-platform server and rich client applications. The libraries contain classes for GUI, layout, database, internationalization, networking, XML, and much more.
Writing software for multiple platforms can be tedious and error-prone. Maintaining makefiles can be even more so, especially if several makefiles are required for different compiler and platform combinations. Qt addresses this challenge by including the qmake tool, which takes care of generating correct makefiles for the target platforms.
Qt is the leading framework for native cross-platform application devel opment. The Qt API and tools are consistent across all supported platforms, enabling developers to learn one API and perform truly platform-independent application development and deployment. Using Qt, development teams can create native applications for all major operating systems - from all major development platforms.
Qt encapsulates the different platform-specific APIs of Unix, Windows, and Mac, and the APIs for file handling, networking (Operations, Protocols), process handling, threading, database access, and more.
Qt developers only have to learn one API to write apps that run almost anywhere. The uniform cross-platform API lets programmers concentrate on value-adding innovation, instead of worrying about maintaining and administering infrastructure and interfaces for multiple versions of existing applications.
Qt has been battle-tested by thousands of commercial and open source application developers over a multitude of operating systems and compilers -forming the foundation for high-performance, resource-intensive applications. Qt requires no "virtual machines", emulation layers or bulky runtime environments. It writes directly to low-level graphics functions, just like native apps do - allowing Qt applications to run at native speed.
Through Trolltech's Dual Licensing Model, Qt delivers all of the advantages of Open Source in a commercially-supported, proven framework:
Â¢ Open source benefits: include an active open source developer community contributes to the ongoing development of Qt while complete code transparency allows Qt developers to "see under the hood", customizing and extending Qt to meet their unique needs.
Â¢ The assurances of a commercial product: include customer-acclaimed product support, a dedicated Qt development team, and a growing ecosystem of 3rd party tools, components and services.
Qt Designer has been designed to work as a powerful stand-alone tool, however with Qt 4, users are now able to utilize the power of Qt Designer from within the IDE of their choice. Qt Designer integrates seamlessly with Microsoft Visual Studio on Windows and KDevelop on Linux - an in both cases, the user experience is based on the IDE, enabling developers to leverage and extend their existing skills.
Qt Designer incorporates Qt's powerful auto-scaling, font-aware layout system. Qt layouts enable developers to create dialogs that maintain an attractive, professional look and feel regardless of the display, font size, language, style or underlying platform chosen by the end user.
Qt Designer not only lets you design your forms - it also allows you to preview them in different styles, ensuring that your layout and labels appear as intended when resizing.
Qt is extensible and customizable, allowing you to use custom controls as real widgets in Qt Designer. Custom controls can be written from scratch, or can be defined based on one or more standard Qt widgets.
Qt Designer provides all the expected GUI tool functionality such as the ability to define dialogs and layouts, set tab order and edit control properties. In addition, you can also edit Qt's powerful Signals and Slots inter-object connections from Qt Designer.
Qt/X11 is the Qt edition for Unix and Unix-like operating systems that run the X Window System, Version 11 or short: X11. It provides all the graphical Qt tools and the entire Qt application framework API, including but not limited to Unicode support, drag'n'drop, 3D OpenGL graphics and network programming.
2.5 Why QT/X11 used
Qt for X11 is the fastest, most powerful way of creating powerful, C++-based cross-platform rich client and console applications running on Linux. Development teams using Qt experience a boost to their productivity, while the commercial support and the backing of a commercial development organization also ensures predictability, risk reduction and product development momentum.
Qt/X11 is source compatible with Qt/Windows and Qt/Mac. Code written for either one compiles and runs with the other ones. The K Desktop Environment is a powerful Open Source graphical desktop environment for Unix and Linux workstations.
Qt/X11 does not require any additional graphical layer above X11, neither Xt nor Motif nor win32 emulation libraries. It is highly optimized native code that runs directly on top of the lowest graphical layer, Xlib.
2.6 SPECIAL FEATURES
Â¢ Qt/X11 fully supports the X Clipboard, X Session Management, remote and multi-head displays. It enables you to write applications that spawn over different physical screen.
Â¢ Qt/X11 supports the XDND drag'n'drop protocol, is ICCCM compliant and has basic support for the extended window manager specification.
Â¢ Qt/X11 composes virtual Unicode fonts in the common case where no real Unicode fonts are available on a system.
Â¢ Qt/X11 ships with a variety of GUI styles such as Motif-style, CDE-style, MotifPlus-style, Sgi-style and Windows-style.
Â¢ Qt/X11 supports the AT-SPI accessibility API, ensuring usability for users with special needs and Section 508-compliance for Qt applications.
If available on the target system, Qt/X11 can make use of the following X-Extensions:
Â¢ XSM - X Session Management
Â¢ Xinerama - support for multi-head displays with one big virtual screen
Â¢ XRender - the X11 render extensions for advanced features like alpha blending
Â¢ XftFreeType - anti-aliased font support
Â¢ XKB - the X KeyBoard extension
2.7 QT IS AVAILABLE IN THREE COMMERCIAL EDITIONS:
Â¢ Qt Console Edition is an edition of Qt optimized for the development of powerful, GUI-independent back-end and server applications.
Â¢ Qt Desktop Light Edition includes all the functionality required for entry-level GUI application development.
Â¢ Qt Desktop Edition provides comprehensive access to a wide range of enterprise-level features needed to develop high-end applications.
2.8 SUPPORTED PLATFORMS
The highly portable code of Qt/X11 requires a working C++ compiler, a POSIX-like operating system, and the X Library (Xlib).
Table 2.1 32 bit platform supported for Qt/X11
Gcc Provided by OS 3 rd party
MS Windows gcc (MINGW) MS Visual Intel iCC
Linux Gcc - -
Apple Mac OS Gcc - -
IBM AIX Gcc IBM xlC -
HP HP-UX Gcc HP aCC -
SGI IRIX Gcc SGI MipsPRO -
Sun Solaris Gcc Sun CC -
FreeBSD Gcc - Intel iCC
Table 2.2 64bit platform supported for Qt/X11
Provided by OS Vendor
3 rd party
MS Visual Studio/Visual
CHAPTER 3 SYSTEM ANALYSIS
System analysis is the process of gathering and interpreting data and facts diagnosing problems to the system. In the development of software, structural analysis is required. During this analysis, information is collected in the form of answers to the question for collecting information from existing documents. System study and analysis deals with the study of current system. This is the most critical process of information development. It can be defined as problem solving which consists of four phases that can be successfully completed by applying appropriate skill and carefully addressing each dimension of the information system. Preliminary Investigation
Preliminary study is the process of gathering and interpreting facts using the information for further studies on the system. As we study the existing system the centralised monitoring of Samba server is a tedious process.
3.2 FEASIBILITY STUDY
The main objective of feasibility study is to test the technical, social and economic feasibility of developing a system. This is done by developing a system and investigating the existing system in the area under investigation and generating ideas about the new system.
Â¢ Technical Feasibility: The system must be evaluated from the technical viewpoint first. The assessment of this feasibility must be based on an outline design of the system requirement in terms of input, output, programs, procedures and applications. Having identified the outline system, the investigation must go on to suggest the type of equipment, required method of developing the system, method of running the system. This system has been developed using QT/C++, in Linux environment.
Â¢ Economic Feasibility: The developing system must be justified by cost and benefit criteria to ensure that effort is concentrated on project and implimentation, which will give best return at earliest. One of the factors, which affect the development of a new system which is technically feasible and which can be used effectively after installation, is economically feasible.
Â¢ Operational Feasibility: Proposed system would be beneficial only if they can be turned into information system that will meet the organization operating requirements. Since this system is ready to be used in organization it is operationally feasible.
3.3 PROBLEM DEFINITION
To design and develop "Samba Server Administration GUI" to administrate and monitor the servers, clients (Linux/Unix/Windows) with security incorporated in the network, and with additional functionalities like ease of use, less complexity, effective management of shared Files/Drives/Services of neighboring interconnected systems etc.
Our task is to integrate WinNT/95/98/XP/2000-Clients into an existing UNIX/Linux-network. The configuration of samba can be done directly by editing the "smb.conf" file located at /etc/smb/ and by making proper service restarts, the service smb can be made functional in the network. Our focus is to develop a utility that resembles the smb services in effect, by providing a GUI environment for editing the concerned services and for manipulating the services.
Our primary goal is to find an easy way for configuration and administration of WinNT-Unix/Linux mixed environment. Our platform of implementation is RedHat Enterprise Linux version 4 with client systems as Linux /Windows machines. For developing the application we selected QT 3.3 which offers excellent cross-platform operational capabilities, with C++ coding methodology.
3.4 EXISTING SYSTEM
Configuring Samba for your office or home can provide many advantages. By encouraging users to store files on a central file server, you can simplify data backup and in some cases, software installation and maintenance.
Even though it sounds nice, the configuration aspect of SAMBA in Linux/Unix environment is a tedious task. Unfortunately, the initial configuration of Samba can be tricky. Many simple steps need to be executed in the correct order, and one small slip up can have big repercussions.
The System Administrator must take intensive care for setting up the services. Even a small character change can alter the properties of the system. It can also lead to problems like service/package re-installation, extensive debugging etc. Today's scenario, the administrator has to monitor the whole Network/Server system for keeping up the services as alive. The manual configuration of the system is a tedious process requiring memorizing the error prone commands. Even though the Samba Server administration can be done by configuring the system,
our project and implimentation aims at providing the administrator with ease of use, less complexity, effective management of shared Files/Drives/Services of neighboring interconnected systems
The system provides easy management of shared Files/Drives/Services of neighbouring interconnected systems in a similar manner as compared to that of SWAT in SAMBA. The system is implemented in Red Hat Enterprise Linux version 4 using QT 3.3 with platform of operation ranging from Windows 9X, XP, 200X machines.
To find an easy way for configuration and administration of WinNT-Unix mixed environment (e.g. one password system!) Additionally: the existing NIS-system should be the master for accounts. At the end of the project and implimentation the Samba-choice was a success, although the remote-administration with Samba is in the future...
3.5 PROPOSED SYSTEM
The Samba Server Administration system is to administrate and monitor the servers, clients (Linux/Unix/Windows) with security incorporated in the network, and with additional functionalities like ease of use, less complexity, effective management of shared Files/Drives/Services of neighboring interconnected systems etc. The target advantages of the system also include the following:
Â¢ Enhanced performance
Â¢ Fault tolerance
Â¢ Time saving
Â¢ Ease of usage
Â¢ Higher tempo of operations
CHAPTER 4 SYSTEM DESIGN AND DEVELOPMENT
Design is the process of applying various techniques and principles for the purposes of defining a device, a process on a system in sufficient detail to permit its physical realization. It is process through which requirements are translated into a representation of the software. Software design is the technical kernel of the software engineering process and is applied regardless of the development paradigm that is used. From a project and implimentation management point of view software design is conducted in two phases. Preliminary design is concerned with the transformation of requirements into data and software architecture. Detail design focuses on refinement to the architectural representation that leads to detail data structure and algorithmic representations for software.
System design involves translating information requirements and conceptual design into technical specification and general flow of processing. After considering the requirements of the system, related information is gathered to verify the problem and after evaluating the existing system, a new system is proposed. The proposed system consists of various modules, their maintenance works and finally report generation.
To implement "Samba-Server Administration GUI" system that could be implemented to any communication models in TCP/IP, here stream Socket in Linux networked environment is used. This is made possible using QT.QT is a comprehensive development framework that includes an extensive array of features, capabilities and tools that enable development of high-performance, cross-platform rich-client and server-side applications. By utilizing the Object Oriented Design strategy, system designers think in terms of things instead of operations or functions. The executing system is made up of interacting objects that maintain their own local state that provide operations on that state information. They hide information about the representation of the state information. An Object Oriented Design process involves designing the objects classes and the relationships between these classes.
4.2 DATA FLOW DIAGRAMS
As part of logical design, Data Flow Diagrams are used in the design phase. A DFD is a graphical technique that depicts information flow and transforms that are applied as data move input to output. The DFD is used to represent increasing information flow and functional details. The initial level DFD, also called a fundamental system model or a context model, represents the entire software elements as a single bubble with input and output indicated by incoming and outgoing arrows respectively. Additional process and information flows parts are represented in the next level. Each of the processes represented at this level are sub functions of overall system depicted in the context model. Any processes, which are complex at this step, will be further represented into sub functions in the next level.
The basic notations used in DFDs are as follows:-
Boxes represent the external entities with which the system communication. They indicate the source or destination of data.
Circles labeled with actions represent functions that transform inputs to outputs.
Directed arrows with data name represent dataflow in the system.
Represents data store (typically a file or a database)
4.3 CONCEPTUAL SYSTEM DESIGN
The conceptual design phase gives an abstract idea about the system. At the preliminary design phase the subsystems of the entire system are identified. The initial design process of identifying these subsystems and establishing a framework for subsystem control and communication is called architectural design. Once the interaction between the software system that is being designed and the system's environment have been defined, this information can be used as a basis for designing the system architecture.
The proposed system will be developed on QT/C++, in Linux Environment. This improves system security, scalability, maintainability and performance.
4.5 INPUT DESIGN
As this system is intended to be implemented in a Networked Environment, the input and output are depending on the application scenario. This system has the following inputs:
Â¢ A valid username and password for the User/ Administrator.
Â¢ Appropriate share manipulation based on the User privileges.
4.6 OUTPUT DESIGN
It is the most important and direct source information to the user. Efficient and intelligent output design improves the system's relationships with the user and helps in decision making.
The output generally refers to the results and information that is generated from the system due to some input values. Outputs from computers are required primarily to communicate the results of processing to the users. They are also used to provide a permanent copy of these results for later consultation.
The output of the "Samba Server Administration System" depends on user privileges. An administrative user monitors and configures the system while general users are only able to access the shares as set up the administrator, depending on the permission settings as applicable.
4.7 WHAT IS SAMBA
Samba is a suite of UNIX applications that speak the SMB (Server Message Block)
protocol. Many operating systems, including Windows and OS/2, use SMB to perform client-server networking. By supporting this protocol, Samba allows UNIX servers to get in on the action, communicating with the same networking protocol as Microsoft Windows products. Thus, a Samba-enabled UNIX machine can
Fig 4.2 Structure of Samba Server
masquerade as a server on your Microsoft network and offer the following services:
Â¢ Share one or more file systems
Â¢ Share printers installed on both the server and its clients
Â¢ Assist clients with Network Neighborhood browsing
Â¢ Authenticate clients logging onto a Windows domain
Â¢ Provide or assist with WINS name server resolution
Samba is freely available. Samba is a good NFS/SMB-Gateway as good as File-Server (to mount home-dir). Samba can be a PDC for your Win-Clients and replace an expensive WinNT-PDC. It provides functionalities to administrate and monitor the servers, clients (Linux/Windows) with security incorporated in the network, and with additional functionalities like effective management of shared Files/Drives/Services of neighboring interconnected systems. The built in functionalities of Samba Server are effectively managed for better performance.
Samba is the brainchild of Andrew Tridgell, who currently heads the Samba development team from his home of Canberra, Australia. The project and implimentation was born in 1991 when Andrew created a fileserver program for his local network that supported an odd DEC protocol from Digital Pathworks.
Although he didn't know it at the time, that protocol later turned out to be SMB. A few years later, he expanded upon his custom-made SMB server and began distributing it as a product on the Internet under the name SMB Server. However, Andrew couldn't keep that name -- it already belonged to another company's product -- so he tried the following UNIX renaming approach:
grep -i 's.*m.*b' /usr/dict/words
And the response was:
salmonberry samba sawtimber scramble
Thus, the name "Samba" was born.
Today, the Samba suite revolves around a pair of UNIX daemons that provide shared resources -- or shares -- to SMB clients on the network. (Shares are sometimes called services as well.) These daemons are:
A daemon that allows file and printer sharing on an SMB network and provides
authentication and authorization for SMB clients. Â¢ nmbd
A daemon that looks after the Windows Internet Name Service (WINS), and assists with browsing.
Samba is currently maintained and extended by a group of volunteers under the active supervision of Andrew Tridgell. Like the Linux operating system, Samba is considered Open Source software (OSS) by its authors, and is distributed under the GNU General Public License (GPL).
Microsoft has also contributed materially by putting forward its definition of SMB and the Internet-savvy Common Internet File System (CIFS), as a public Request for Comments (RFC), a standards document. The CIFS protocol is Microsoft's renaming of future versions of the SMB protocol that will be used in Windows products -- the two terms can be used interchangeably in this book. Hence, you will often see the protocol written as "SMB/CIFS."
Many small businesses think the servers they use all run Windows operating systems, but many file server appliances are Linux-based systems using Samba for interoperability with their Windows or Mac clients. By using a combination of a Linux server with Samba file sharing software, you can achieve all the desired functionality of a Windows server without the license fees and feature bloat. For many small businesses with relatively simple file server requirements, using a Linux file server with Samba can be a cost effective option to cutting file and printer server headaches.
4.7.2 Samba Explained - a wider Concept
Samba is an Open Source, free software implementation of a suite of protocol that provide seamless file and print services to any Windows system.
It was originally developed to solve interoperability problems between Linux/Unix servers and Windows-based clients. In effect Samba lets Windows clients use non-Windows file and print servers as if they were Windows servers.
At the core, Samba uses the Microsoft standard file transport protocol known as the "Common Internet File System", or CIFS -- commonly written as CIFS/SMB. The name Samba was derived from the protocol's former name, Server Message
4.7.3 Samba Features
Not only does Samba support all of the standard Microsoft file-sharing features, but the latest version, Samba 3, can also be configured to serve as either a member of an existing Windows Active Directory Domain, or as an Active Directory Domain server in its own right. If you have no need for a full-blown Exchange server (which requires the Microsoft version of Active Directory), you might consider using the Samba server to keep track of your company's user accounts. Samba supports the four basic modern-day CIFS services:
Â¢ File and print services - access to files and printers
Â¢ Authentication and authorization - checking user log-in accounts and passwords
Â¢ Name resolution - mapping computer names to IP addresses
Â¢ Service announcement (browsing) - allowing the user to look for servers on the network from a browser window
4.7.4 Windows Client Perspective
Accessing a Samba share using a Windows client is identical to mounting a share originating from a computer with a Windows operating system installed. Any of the standard methods to use a share from a workstation will work; such as the "Map Network Drive" function, or the "My Network Places" icon often found on Windows client desktops. Here are some common ways to access Samba shares from Windows clients:
Â¢ Browse Network Neighborhood to find the listed server, and then double-click on the name to reveal the Samba shared directories
Â¢ Use the Find/Computer option on the Start Menu to specify the server by name
Â¢ Use the Tools/Map Network Drive option in Explorer to map a network drive directly to the Samba share. For example, \Broadleaf shared specifies the path to a Samba share named shared on the machine named Broadleaf.
If the share was configured to limit access, Samba is smart enough to prompt for a user account and password. The user account name is in the form of workgroup username. Samba can also create home shares for each user who has been configured with an account on the Samba server. This is often useful as a way to protect user data without the need to backup desktop systems.
5 Management in Windows/Unix mixed environment
There is no ideal solution for the Integration of Windows and UNIX systems in a LAN. We have to choose between complex User-Administration and complex Software Configuration (for distributed SW or remote Administration). Additionally we have to choose which of the systems will dominate (Domain-Master: WinNT-PDC or Unix-DC, File System Win-SMB or Unix-NFS) Problem: For management of Windows Clients we will need tools, which are expecting WinNT as PDC (Primary Domain Controller). If we have WinNT as PDC we must have more than one user management system, because the Password systems are not compatible. It is impossible to suggest a solution without knowing the already existing environment.
Samba translates the more complex file permission settings that exist in the Windows file system to UNIX. Generally, it works transparently (particularly if you make the changes from the Windows side).
If we use the more arcane Microsoft permissions for setting access policies, we need to be more careful. By using only group permissions to share files, so from the UNIX side the files shows as not writable by the owner. In such situations we need to restore some files from the Linux backup server. The permissions did not translate quite correctly, so we couldn't copy the files.
Fortunately, Samba has a user admin setting that allows selected users to have full administrative access to any Samba shared file, so once we provide it, the problem will be resolved.
4.7.5 Install Packages
Most RedHat and Fedora Linux software products are available in the RPM format. Downloading and installing RPMs isn't hard. Samba is comprised of a suite of RPMs that come on the Fedora CDs. The files are named:
When searching for the files, remember that the RPM's filename usually starts with the RPM name followed by a version number as: samba-client-3.0.0-15.i386.
Will Samba fit in your office You or your IT support provider will need to have enough Linux experience to maintain the server. Fortunately, once a server has been configured it doesn't take much administration, but it will need occasional hardware maintenance and software updates.
Samba might not be for everyone, but if you have access to Linux support or feel that you have enough knowledge to do it yourself, Samba is an easy and cheap way to deliver reliable file and print services for your small business. The typical scenario can be shown as follows.
4.7.6 Doing the Samba
By default, Samba mimics a Windows PDC in almost every way needed for simple file sharing. Linux functionality doesn't disappear when you do this. Samba Domains and Linux share the same usernames so you can log into the Samba based Windows domain using your Linux password and immediately gain access to files in your Linux user's home directory. For added security you can make your Samba and Linux passwords different.
When it starts up, and with every client request, the Samba daemon reads the configuration file /etc/samba/smb.conf to determine its various modes of operation. You can create your own smb.conf using a text editor or the Web-based SWAT utility which is easier.
How to Get Samba Started
We can configure Samba to start at boot time using the chkconfig command:
Â¢ [root@redhat]# chkconfig smb on
We can start/stop/restart Samba after boot time using the smb initialization script as in the examples below:
Â¢ [root@redhat]# service smb start
Â¢ [root@redhat]# service smb stop
Â¢ [root@redhat]# service smb restart
Note: Unlike many Linux packages, Samba does not need to be restarted after changes have been made to its configuration file, as it is read after the receipt of every client request.
We can test whether the smb process is running with the pgrep command; you should get a response of plain old process ID numbers:
Â¢ [root@redhat]# pgrep smb
Fig. 4.4 Functional Structure of samba server
4.8 THE SAMBA CONFIGURATION FILE
The /etc/samba/smb.conf file is the main configuration file you'll need to edit. It is split into five major sections, which the Table below outlines:
Table 4.1 Entries of samba file
General Samba configuration parameters
Used for configuring printers
Defines treatment of user logins
A share for storing logon scripts. (Not created by default.)
A share for storing domain logon information such as "favorites" and desktop icons.
(Not created by default.)
Â¢ Creating A Starter Configuration
This section illustrates how to configure a Samba server to be the PDC for a small network is by using SWAT. We'll need to edit the various sections of the smb.conf file.
The [Global] Section
The [global] section governs the general Samba settings. Table below explains the parameters we need to set in order to create a PDC.
Table 4.2 Entries of global
domain logons Yes Tells Samba to become the PDC
preferred master Yes Makes the PDC act as the central store for the names of all windows clients, servers and printers on the network. Very helpful when you need to "browse" your local network for resources. Also known as a local master browser.
domain master Yes Tells Samba to become the master browser across multiple networks all over the domain. The local master browsers register themselves with the domain master to learn about resources on other networks.
os level 65 Sets the priority the Samba server should use when negotiating to become the PDC with other Windows servers. A value of 65 will usually make the Samba server win.
wins support Yes Allows the Samba server to provide name services for the network. In other words keeps track of the IP addresses of all the domain's servers and clients.
time server Yes Lets the samba server provide time updates for the domain's clients.
domain "homenet" The name of the Windows domain we'll create. The name we select is our choice. We've decided to use "homenet".
security user Make domain logins query the Samba password database located on the samba server itself.
Here's how to set the values using SWAT.
Â¢ Log into SWAT and click on the [global] section.
Â¢ Click the Advanced button to see all the options.
Â¢ Make your changes and click on the Commit Changes button when finished.
Â¢ The smb.conf file should resemble the example below when you're finished. We can view the contents of the configuration file by logging in to the samba server via a command prompt and using the cat /etc/samba/smb.conf to verify your changes as you do them.
workgroup = sngce.com time server = Yes domain logons = Yes os level = 65 preferred master = Yes domain master = Yes
Note: security = user and WINS support = yes are default settings for Samba and they may not show up in your smb.conf file, even though you may see them in
The [homes] Section
Part of the process of adding a user to a Samba domain requires you to create a Linux user on the Samba PDC itself. When you log into the Samba PDC, you'll see a new drive, usually named Z: added to your PC. This is actually a virtual drive that maps to the corresponding Linux users' login directories on the Linux PDC.
Samba considers all directories to be shares that can be configured with varying degrees of security. The [homes] section governs how Samba handles default login directories.
Table below explains the minimum settings we need to create a functional [Homes] section.
Here's how to set the values using SWAT:
Â¢ Click on the SWAT shares button to proceed to where shared directories are configured.
Â¢ Click the Advanced button to see all the options.
Â¢ Choose the Homes share.
Â¢ Make changes and click on the Commit Changes button when finished.
Â¢ The smb.conf file should resemble this when finished. We can view the contents of the configuration file by logging in to the samba server via a command prompt and using the cat /etc/samba/smb.conf to verify your changes as you do them.
[homes] read only = No browseable = No create mask = 0644 directory mask = 0755
The [netlogon] and [profiles] Share Sections
The [netlogon] share section contains scripts that the windows clients may use when they log into the domain. The [profiles] share section stores settings related to the look and feel of windows so that the user has the same settings no matter which Windows PC is logged into. The [profiles] share section stores things such as favorites and desktop icons.
The smb.conf file should look like this when finished:
path = /home/samba/netlogon guest ok = Yes Â¢ [profiles]
path = /home/samba/profiles read only = No create mask = 0600 directory mask = 0700
Here's how to do it.
Â¢ Click the Shares button.
Â¢ Create a [netlogon] share.
Â¢ Modify the path and guest ok settings.
Â¢ Click on the Commit Changes button.
Â¢ Create a [profiles] share section.
Â¢ Modify the path, mask and read only settings. The mask settings allow only the owner of the netlogon subdirectory to be able to modify its contents.
Â¢ Click on the Commit Changes button.
Remember to create these share directories from the command line afterwards.
Â¢ [root@redhat]# mkdir -p /home/samba/netlogon
Â¢ [root@redhat]# mkdir -p /home/samba/profile
Â¢ [root@redhat]# chmod -r 0755 /home/samba
Â¢ The [printers] Share Section
Samba has special shares just for printers, and these are configured in the [printers] section of SWAT. There is also a share under [printers] called printers which governs common printer settings. Print shares always have the printable parameter set to yes. The default smb.conf [printers] share section looks like this:
comment = All Printers path = /var/spool/samba printable = Yes browseable = No
4.9 ABOUT SAMBA PASSWORDS
We should be aware that our Linux password and Samba passwords are stored in two different locations. This provides the Samba administer the flexibility of allowing only some of the Linux users to have Samba accounts.
Use the passwd command to change Linux passwords, which are stored in the /etc/shadow file. Samba passwords are stored in the /etc/samba/smbpasswd file and can be changed smbpasswd command
Â¢ How to Create a Samba PDC Administrator User:-
To do both SWAT and user administration with Samba we'll need to create administrator accounts on the Samba PDC Linux server.
Â¢ Home Environment:-
By default, the root user is the Samba administrator, and SWAT requires you to use the Linux root password to be used. Fortunately, we can add workstations to the Windows domain by creating a Samba specific root password. This is done using the smbpasswd command.
[root@redhat]# /usr/bin/smbpasswd -a root password
Note: Remember that regular Linux logins via the console, Telnet or SSH require the Linux passwd command. Samba domain logins use the smbpasswd password. Samba passwords are stored in the /etc/samba/smbpasswd file
Â¢ Make Your PC Clients Aware Of Your Samba PDC:-
There are many types of Windows installed on people's PCs and each version has its own procedure for joining a domain.
Â¢ Windows 95/98/ME and Windows XP Home:-
Windows 9x machines do not implement full domain membership and therefore don't require machine trust accounts.
Â¢ Navigate to the Network section of the Control Panel (Start ->Settings->Control Panel->Network)
Â¢ Select the Configuration tab
Â¢ Highlight "Client for Microsoft Networks"
Â¢ Click the Properties button.
Â¢ Check "Log onto Windows NT Domain", and enter the domain name.
Â¢ Click all the OK buttons and reboot!
4.9.1 Windows NT
For Windows NT, we must first create a manual Samba machine trust account, and follow these steps:
Â¢ Navigate to the Network section of the Control Panel (Start ->Settings->Control Panel->Network )
Â¢ Select the "Identification" tab
Â¢ Click the "Change" button
Â¢ Enter the domain name and computer name, do not check the box create a Computer Account in the Domain. In this case, the existing machine trust account is used to join the machine to the domain.
Â¢ Click "OK". We should get "Welcome to <DOMAIN>" message as confirmation that we've been added.
We can now log in using any account in the /etc/smbpasswd file with our domain as the domain name.
4.9.2 Windows 200x and Windows XP Professional
For the 200x and XP Professional varieties of Windows, create a dynamic Samba machine trust account, then go through these steps:
Â¢ Press the Windows and Break keys simultaneously to access the System Properties dialogue box.
Â¢ Click on the 'Network Identification' or 'Computer Name' tab on the top.
Â¢ Click the "Properties" button.
Â¢ Click on the "Member of Domain" button.
Â¢ Also enter our domain name and computer name and then click "OK"
Â¢ We will be prompted for a user account and password with rights to join a machine to the domain. Enter the information for your Samba administrator. In this home environment scenario, the user would be root with the corresponding smbpasswd password. Now, we should get a "Welcome to <DOMAIN>" message confirming that we have been added.
Log in using any account in the /etc/smbpasswd file with our domain as the domain name.
Note: With Samba version 2 we may also have to make a few changes to our system's registry using the regedit command and reboot before continuing.
"requiresignorseal"=dword: 00000000 "signsecurechannel"=dword: 00000000
Â¢ How to Add Users to the Samba Domain:-
Adding users to a domain has three broad phases. The first is adding a Linux user on the Samba server, the second is creating a Samba smbpasswd that maps to the new Linux user created previously, and the third is to map a Windows drive letter to the user's Linux home directory. Let's take a closer look
Adding the Users in Linux:-
The process of adding users in Linux is just as we would do normally. Passwords won't be necessary unless you want the users to log in to the Samba server via telnet or ssh.
To create the user, use the command:
Â¢ [root@redhat]# useradd -g 100 peter
Give them a Linux Password
Giving them a Linux password is only necessary if the user needs to log into the Samba server directly. If the user does, use this method:
[root@redhat]# passwd peter Changing password for user "peter." New password: Retype new password:
passwd: all authentication tokens updated successfully. [root@redhat]#smbpasswd -a peter Mapping the Linux Users To An smbpassword
Next, we need to create Samba domain login passwords for the user
Â¢ [root@redhat]# /usr/bin/smbpasswd -a username password The -a switch adds the user to the /etc/smbpasswd file. Use a generic password then have users change it immediately from their workstations in the usual way.Remember the smbpasswd sets the Windows Domain login password for a user, which is different from the Linux login password to log into the Samba box
Â¢ How to Delete Users from the Samba Domain:-
Deleting users from the Samba domain is a two stage process in which we have to remove the user from the Linux server and also remove the user's corresponding smbpasswd entry. Here's how:
Â¢ Delete the users using the smbpasswd with the -x switch
[root@redhat]# smbpasswd -x john Deleted user john. [root@redhat]#
Delete the Linux User by following the normal deletion process. For example, to
delete the user john and all john's files from the Linux server use: [root@redhat]# userdel -r john
Sometimes we may not want to delete the user's files so that they can be accessed by other users at some other time. In this case we can just deactivate the user's account using the passwd -l username command.
Â¢ How to Modify Samba Passwords:-
We can set our Samba server to allow users to make changes in their domain passwords and have these mirrored automatically in their Linux login passwords. Table below explains the [global] smb.conf parameters that we need to change.
Table 4.4 Password fields in global section
unix passwd sync
Yes Enables Samba/Linux
Lists the location of the Linux password file which is usually /bin/passwd.
passwd chat Use the SWAT defaults A short script to change the
Linux password using the Samba password
Â¢ Sharing Resources Using Samba:-
Having Samba up and running, we may want to allow users to share such resources such as floppy drives, directories, and printers via the Samba server.
Â¢ Creating Group Shares in SAMBA:-
On occasion, subgroups of a family need a share that is fully accessible by all members of the group. For example, parents working in a home office environment may need a place where they can share, distribute, or collaboratively work on documents. Here's how it's done.
Create The Directory And User Group:-
As with any group activity, the first step is to get organized.
Â¢ Create a new Linux group parents:-[root@redhat]# /usr/sbin/groupadd parents
Create a new directory for the group's files. If one user is designated as the leader, we might want to change the chown statement to make them owner [root@redhat]# mkdir /home/parent-files
[root@ redhat]# chgrp parents /home/parent- files
[root@ redhat]# chmod 0770 /home/parent-files
Â¢ Add the group members to the new group. For instance, the command to add a user named father to the group is:-
[root@ redhat]# /usr/sbin/usermod -G parents father
All our members are in the group; now they need to share.
Â¢ Adding a Printer to a Samba PDC:-
Sharing printers amongst all your PCs is one of the advantages of creating a home network. Here's how to connect our printer directly to our PDC Not only does this method make our printer available to all our Windows workstations, it also makes our Samba PDC a print server! The only potential snag is that we need the Windows printer driver loaded on every client machine. This may be suit for a small home network but impractical for a huge corporate network.
Â¢ Adding The Printer To Linux:-
By far, the easiest way to add a printer in Linux is to use one of the many menu-based printer utilities available. For the example, we can use system-config-printer (Figure below), which is easy to find and can be accessed from the command-line:
Note: Sometimes the graphics in system-config-printer don't work as expected due to our environment variables. We can temporarily set the required variable to the correct the output with the command:
[root@ redhat]# env LANG=C system-config-printer
Assuming our printer is locally attached to the parallel port. Here are the steps to use:
Â¢ Using the tab key, move to the New button and press the Enter key.
Â¢ When the "Create a New Queue" menu appears give the printer name that's easy to remember, select "Local Printer Device" and move to the "next" button before pressing Enter.
Â¢ From the resulting "Setting up Local Printer Device" menu select /dev/lp0 assuming the printer is on the parallel port as opposed to a USB port. Click the "next" button to go to the "Queue Driver" menu.
Â¢ Scroll to your manufacturer's entry, press Enter. Scroll further to your model, and press <Enter> again. We'll now get a choice of drivers, select the default device, which is marked with an asterisk (*). Click the "Next" button to go to the "Create a New Queue" menu.
Â¢ Move to the "Finish" button and press <Enter>. There will be a slight delay. At this stage, it's wise to do a test print to make sure all is okay.
Make Samba Aware of the Printer
The easiest way to let Samba know the printer is available is via the Samba SWAT Web interface. Once you are in SWAT:
Â¢ Click the "Printers" button
Â¢ Find our printer in the pull-down menu. If the printer name has an asterisk (*) beside it, it has been auto-configured by Samba. It might not be visible on our network, however, if Samba hasn't been restarted since creating the printer. If this is the case, restart Samba. We can now skip ahead to the "Configure the Printer Driver on the Workstations" section.
Â¢ If Samba did not auto-configure your printer, we need to edit or create it yourself. Click on the "Commit Changes" button to create an updated /etc/samba/smb.conf file.
Â¢ Click on the "Status" tab at the top of the screen and restart smbd and nmbd to restart Samba.
Our printer will now be available for use by all Windows workstations. 4.10 SWAT
Â¢ How SWAT Makes Samba Simpler
Samba Web Administration Tool(SWAT), enables us to configure our smb.conf file without needing to remember all the formatting. Each SWAT screen is actually a form that covers a separate section of the smb.conf file into which we fill in the desired parameters.
Â¢ Basic SWAT Setup
SWAT edits the smb.conf file but also strips out any comments we may have manually entered into it beforehand. The original Samba smb.conf file has many worthwhile comments in it.
Using SWAT requires some understanding of the smb.conf file parameters because it eliminates these comments. Become familiar with the most important options in this file before proceeding with SWAT.
SWAT doesn't encrypt your login password. Because this could be a security concern in a corporate environment we might want to create a Samba administrator user that has no root privileges or only enable SWAT access from the GUI console or localhost.
The enabling and disabling, starting and stopping of SWAT is controlled by xinetd, "Telnet, TFTP, and xinetd," via a configuration file named /etc/xinetd.d/swat.
Â¢ Server Message Block
Server Message Block (SMB) is a network protocol mainly applied to share files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an authenticated Inter-process communication mechanism. It is mainly used by Microsoft Windows equipped computers.
SMB was originally invented by IBM to turn DOS "Interrupt 33" local file access into a networked file system, but the most common version is modified heavily by Microsoft. At around the time when Sun Microsystems announced WebNFS, Microsoft coincidentally launched an initiative in 1998 to rename SMB to Common Internet File System (CIFS), and added more features, including support for symbolic links, hard links, larger file sizes and an attempt at supporting direct connection without all the NetBIOS trimmings - an effort that was largely experimental and required further refinement.
SMB was originally invented by IBM to turn DOS "Interrupt 33" local file access into a networked file system, but the most common version is modified heavily by Microsoft. At around the time when Sun Microsystems announced WebNFS Microsoft coincidentally launched an initiative in 1998 to rename SMB to Common Internet File System (CIFS), and added more features, including support for symbolic links, hard links, larger file sizes and an attempt at supporting direct connection without all the NetBIOS trimmings - an effort that was largely experimental and required further refinement.
SMB was originally designed to run on top of the NetBIOS protocol (which itself is typically run on NetBEUI, IPX/SPX or NBT), though SMB can also run on top of TCP/IP directly, since Windows 2000. "SMB the protocol" is not to be confused with the SMB services that run on it, nor with NetBIOS, nor with the DCE/RPC services that utilize SMB as an authenticated Inter-process communication channel (over Named pipes), nor with the "Network
Neighborhood" protocols which primarily but not exclusively run as datagram services direct on the NetBIOS transport.
Because of the importance of the SMB protocol in interacting with the dominant Microsoft Windows platform, coupled with the heavily modified nature of the SMB implementation present in that platform, the Samba project and implimentation was created to provide a free implementation of a compatible SMB client and server for use with non-Microsoft operating systems.
Â¢ Client-Server approach
SMB works through a client-server approach, where a client makes specific requests and the server responds accordingly. One section of the SMB protocol is specifically for file system access, such that clients may make requests to a file server, but there are other sections of the SMB protocol that specialize in Inter-process communication - IPC. The SMB protocol was optimized for local subnet usage, but one could use it to access different subnets across the internet, which is how Windows shares exploits take place.
SMB servers make their file systems and other resources available to clients on the network. Client computers may have their own hard disks, which are not publicly shared, yet also want access to the shared file systems and printers on the server, and it is for this primary purpose that SMB is most well known for and most heavily used. However, the SMB file server aspect would be as nothing if it wasn't for the NT Domains suite of protocols, which provide NT-style Domain-based authentication at the very least. The NT Domains protocols are MSRPC services that are almost exclusively available on SMB IPC "Named pipes", and almost all implementations of SMB servers utilize NT Domain authentication to validate user access to resources.
Â¢ Performance issues
It is often believed that the SMB protocol makes heavy utilization of network bandwidth because each client broadcasts its presence to the whole subnet. SMB itself does not use broadcasts. The broadcast problems commonly associated with SMB are actually caused by the NetBIOS service location protocol. By default, a Microsoft Windows server will use NetBIOS to advertise and locate services. NetBIOS functions by broadcasting services available on a particular host at regular intervals. While this is usually an acceptable default for a network with less than 20 hosts, broadcast traffic will cause problems as the number of hosts increases. This problem
can be mitigated by a proper implementation of the Windows Internet Naming Service (WINS) service location protocol. WINS uses a much more advanced system of registration and centralized service requests, but impose its own complexity upon the design and maintenance of the network.
Â¢ Microsoft's modifications
order to provide a more seamless computing experience by hiding far-sighted and comprehensive complexity behind powerfully simple (and sometimes possibly oversimplified) interlinked interfaces, Microsoft has added several important features to its own SMB implementation that expand on the original concept. For example, NTLM Version 2 was added because NTLM version 1 (which is derived from the original legacy SMB specification's requirement to utilize IBM "LanManager" passwords) utilizes DES in a flawed manner. Additionally, the NT 4.0 Domain Logon protocols utilize 40-bit encryption outside of the United States, which is insecure by modern standards.
CHAPTER 5 IMPLIMENTATION AND TESTING
A crucial phase in the system life cycle is the successful implementation of the new system design. It involves converting a new system design into operation. Implementation is the stage of the project and implimentation where the theoretical design is turned into working system. In this stage the installation of the package in the real environment to meet the satisfaction of the intended user is done. If the implementation is not carefully planned and controlled it can cause chaos and confusion.
The most crucial stage is achieving a new system for the user that it will work efficiently. It involves careful planning, investigation of the current system and its constraints on implementation, design of methods to achieve the change over. The more complex the system being implemented, the more involved will be the system analysis and the design effort required just for implementation.
Testing is performed to ensure that the system as a whole is bug free. In the development of a project and implimentation, errors can be injected at any stage of the software development life cycle. Testing presents an interesting anomaly for the software. For each stage or phase, a different technique for developing and eliminating the errors exists.
However, some requirements errors and design errors are likely to remain undetected. Ultimately, these errors will be reflected in the code. Since code is the only product that can be executed and whose actual behavior can be observed, testing is usually associated with the code and is used to detect errors remaining from the earlier phase. Hence, testing performs a critical role for quality assurance and for ensuring the reliability of the software.
5.2 TESTING METHODS
Â¢ White Box testing
White Box testing is a case design method that uses the control structure of the procedural design to derive test cases. White Box testing methods were used to check whether the loops executed properly, different methods were applied at the boundaries and the execution was examined to be perfect.
Â¢ Black Box testing
Black Box testing focuses on the functional requirements of the software. It enables to
derive sets of input conditions that fully exercise all
functional requirements for a program. Black Box testing tends to find out errorsO in data structure or
external database access, performance errors and initialization errors.While testing the system by using
test data, errors were found and corrected. Thus a series were performed for the proposed system before the system was ready for implementation.
The various methods used for proposed system are :
Â¢ Unit Testing
Â¢ Integration Testing
Â¢ Validation Testing
Â¢ Output testing
5. 2.1 Test Plan
Test planning is concerned with setting out standards for the testing process rather than describing product tests. Test plans are not just management documents. They are also intended for software engineers involved in designing and carrying out system tests. They allow technical staff to get an overall picture of the system tests and to place their own work in this context. Test plans also provide information to staff who is responsible for ensuring that appropriate hardware and software resources are available to the testing system. The major components of a test plan are:
Â¢ The testing process: - A description of the major phases of the testing process.
Â¢ Requirement traceability: - The testing should be planned so that all requirements are individually tested.
Â¢ Tested items: - The product of the software process which is to be tested should be specified.
Â¢ Testing schedule- An overall testing schedule and resource allocation for this schedule.
Â¢ Test recording procedures: - The results of the tests