linux samba server administration



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!

1.2 METHODOLOGY
The allocated time to complete the project was about nearly four month, started on June2006. The various procedures carried out for the project work are as follows:
i.        Detailed study of the overall system.
ii.          Identifying problems in the existing systems and opportunities to improve the
performance.

iii.        Study of various types of data flows in the system through manuals and
documents.

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.

1.3 OBJECTIVES
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.
.       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.
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++ projects 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 to analyze all code and emit a project 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, 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).

ANALYSIS


3.1 INTRODUCTION
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, 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 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 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

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
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

4.7.1 Samba-Pros:
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 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:
•       smbd

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
Block (SMB).

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:
          Samba
          samba-common
          samba-client
          samba-swat
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

TESTING


5.1 INTRODUCTION
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 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, 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 must be systematically recorded.
         Hardware and software requirements: - This section should set out software tools required and estimated hardware.
         Constraints: - Constraints affecting the testing process should be anticipated in this section.
Test plans are not a static document. It should be revised regularly as testing is an activity that is dependent on implementation being complete.

5. 2. 2 Unit testing
This is the first level of testing. A unit testing focuses verification effort on the smallest unit of software design. This testing was carried out during the coding itself. In this testing step, each module is going to be satisfactorily, as expected output from the module. After coding, each dialog has tested and run individually. All unnecessarily coded statements were removed and it was ensured that all the functionality's worked as expected. Any logical errors found were corrected 5. 2. 3. Integration testing
Integration testing is a systematic technique for constructing the program structure, while at the same time conducting tests to uncover errors associated with interface. The objective is to take untested modules and build a program structure that has been dictated by design. All the modules are combined and then tested. Critical modules should be tested as early as possible. 5. 2. 4 Validation testing
At the culmination of integration testing, software is completely assembled as a package, interfacing errors have been uncovered and corrected, and validation testing may begin. Validation succeeds when the software function in a, manner that can be reasonably expected by the customer. Software validation is achieved through a series of black box tests that demonstrates conformity with requirements. A test plan
outlines the classes of tests to be conducted and a test procedure defines specific test
cases that will be used to demonstrate conformity with requirements. Deviation or
error discovered at this stage in a project can rarely be corrected prior to scheduled
completion.

5. 2. 5 Output testing
After performing the validation testing, next step is the output of the proposed system since no system could be useful if it does not produce the required output in the specific format. Consulting the user about the format required by the system tested the output is displayed or generated by the system under consideration. Here output format can be shown in two ways. One is on the screen and another one is in a printed format.

CONCLUSION

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.

RESUME

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 are Enhanced performance, Fault tolerance, Time saving, Ease of usage, Higher tempo of operations . The developed system is flexible and changes can be made easily. So the system can be maintained easily without rework.

In future we can make it more user friendly by adding the 'path' field value in each section, browsable.

In our project we used the platform of operation includes Windows 95/98/XP/2000 etc.In future we can use Sun Solarisis, Unix, Windows Vista etc.

REFERENCES

1.                  Chris Negus (2006), 'Red Hat Fedora 5 and Enterprise Linux Bible', Hoboken, N.J. : Wiley ; Chichester : John Wiley [distributor].
2.                  Jasmin Blanchette, Mark Summerfield (2004), 'C++ GUI Programming with QT 3', Prentice Hall in association with Trolltech Press

No comments:

Post a Comment

leave your opinion