Changes

Jump to: navigation, search

Sharing CentOS Files with Remote Windows Systems

9,330 bytes added, 19:36, 23 June 2010
New page: Although Linux is increasingly making inroads into the desktop market, its origins are very much server based. It is not surprising therefore that Linux has the ability to act as a file se...
Although Linux is increasingly making inroads into the desktop market, its origins are very much server based. It is not surprising therefore that Linux has the ability to act as a file server. It is also extremely common for Linux and Windows systems to be used side by side both in home and business environments. It is a common requirement, therefore, that files on a Linux system be accessible to both Linux, UNIX and Windows based systems over network connections. Similarly, shared folders residing on Windows systems must also be accessible from CentOS systems.

Windows systems share resources such as file systems and printers using a protocol called Server Message Block (SMB). In order for a Linux system to serve such resources over a network to a Windows system and vice versa it must, therefore, support SMB. This is achieved using Linux based technology called Samba. In addition to providing integration between Linux and Windows systems, Samba may also be used to provide folder sharing between Linux systems (as an alternative to NFS which was covered in the previous chapter).

In this chapter we will look at the steps necessary to share file system resources and printers on a CentOS system with remote Windows and Linux systems.

== Samba and Samba Client ==

Samba allows both CentOS resources to be shared with Windows systems and Windows resources to be shared with CentOS systems. CentOS accesses Windows resources using a package called samba-client. CentOS resources, on the other hand, are shared with Windows systems using a packages called samba. Typically, the samba-client is installed and configured by default allowing you to browse available Windows resources without any additional work (this is covered later in the chapter). In order to allow a CentOS system to share resources with Windows systems some more work is required.

== Installing Samba on a CentOS System ==

The default settings used during the CentOS installation process do not install the samba package. Unless you specifically requested that Samba be installed it is unlikely that you have Samba installed on your system. To check whether Samba is installed, open a terminal window (''Applications -> System Tools -> Terminal'') and run the following rpm command:

<pre>
rpm -q samba
</pre>

If Samba is installed, the rpm command will generate output similar to the following:

<pre>
samba-3.0.33-3..28.el5
</pre>

If Samba is not installed, rpm will return with "package samba is not installed". That being the case, it can be installed using the yum command-line tool:

<pre>
su -
yum install samba
</pre>

The above command will install both the samba package and the samba-common dependency package.
If you prefer to use the graphical tool to perform the Samba installation, select ''Applications -> Add/Remove Software'', enter the root password if prompted to do so and then perform a search for Samba. When the list of matching packages appears, set the checkbox next to the samba and samba-common packages and click on Apply to initiate the installation.

== Starting the Samba Service on CentOS ==

Having installed the Samba service packages, the next step is to start those services running. This can be done either from the command line, or from the Service Configuration Tool.

To verify that the Samba service is running from the command-line execute following command from a Terminal window:

<pre>
/sbin/service smb status
</pre>

If the service is stopped it can be started as follows (note that this command must be performed with super user privileges):

<pre>
su -
/sbin/service smb start
</pre>

Alternatively, to configure the Samba service using the GUI based Service Configuration Tool, select it from the ''System -> Administration -> Services'' menu. When the tool loads, scroll down the list of services to find smb, select it and click on the Start button. If you want the service to start on reboot make sure that the checkbox next to the entry is selected and click the Save button in the top toolbar. Check the status panel to the right of the dialog to verify the service is running before exiting from the Service Configuration tool.

== Configuring the CentOS Firewall to Enable Samba ==

Next, the firewall needs to be configured to allow Samba traffic. To achieve this, run the Firewall Configuration tool by selecting the ''System -> Administration -> Security Level and Firewall'' menu option and select the check box next to Samba in the ''Trusted Services'' section of the tool. Click Apply and OK to commit the change.

Once the Samba service is installed and running on the system and the firewall configured appropriately, the CentOS system should be listed within the Networking section of Windows Explorer on any Windows machines on the same network. For example, the following figure shows a CentOS system (somewhat unimaginatively named CENTOS) listed as a network resource in Windows Explorer on a Windows 7 system:


[[Image:centos_samba_windows_explorer.jpg|A CentOS server listed in Windows Explorer]]


Before any resources on the CentOS system can be accessed from the Windows systems, however, some additional configuration steps are necessary.

== Configuring Samba Users and Resource Sharing ==

Once the Samba File sharing is installed and running, the next step is to configure the users that are allowed remote access and also the file system directories (also known as folders) to be shared with the Windows systems.

The easiest way to achieve this is to use the Samba Server Configuration tool. As with the Samba server packages it is likely that this tool was not installed by default on your CentOS system. To check if it is installed run the following command in a Terminal window:

<pre>
rpm -q system-config-samba
</pre>

If the tool is not installed it may be installed as follows:

<pre>
su -
yum install system-config-samba
</pre>

Once installed, the Samba Server Configuration may be launched from the ''System -> Administration -> Server Settings -> Samba'' desktop menu option, or from the command-line:

<pre>
system-config-samba
</pre>

When loaded, the Samba Server Configuration tool will appear as follows:


[[Image:centos_samba_configuration_tool.jpg|The Samba Server Configuration tool running on CentOS]]


Select ''Preferences -> Server Settings...'' and enter the name of the Windows Workgroup to which you wish this server to belong and click OK.

Select ''Preferences->Samba Users...'' and select a user from the list which will be used to share folders with the Window's system. After selecting the user, enter the corresponding Windows user name which will be mapped to the Linux user you just specified and provide a password to be used for share access. Click on OK.

Click on the Add button in the toolbar to add a new folder to share. The following dialog will subsequently appear:


[[Image:centos_samba_create_samba_share.jpg|Creating a CentOS Samba Share]]


Type or browse to the path you wish to share and enter a share name if you do not like the one provided by the tool. Set the Writable and Visible toggles to your desired settings and click OK.

Select the Access tab and either select a user added in the previous step, or allow access to all users.


[[Image:centos_samba_share_user_access.jpg|Configuring user access for a CentOS Samba share]]


Click on OK when you have configured the information in this dialog. The main dialog should appear with the new share listed:


[[Image:centos_samba_share_configured.jpg|A Samba Share configured on CentOS]]


Once completed, the folder you specified will be visible from any Windows systems on the same network (and workgroup specified in the Server Settings page) as your CentOS system. You should now have remote access to your Linux folder from the Windows system.

== Accessing Windows Shares from CentOS ==

As previously mentioned, Samba is a two way street, allowing not only Windows systems to access files and printers hosted on a CentOS system, but also allowing the CentOS system to access shared resources on Windows systems. This is achieved using the samba-client package which is installed by default under most CentOS configurations. If it is not currently installed, install it from a Terminal window as follows:

<pre>
su –
yum install samba-client
</pre>

To access any shared resources on a Windows system, begin by selecting the ''Places -> Network Servers'' desktop menu option. This will display the Network browser dialog including an icon for the Windows Network (if one is detected) as illustrated in the following figure:


[[Image:centos_samba_windows_network.jpg|The CentOS network window]]


To obtain a list of Windows workgroups on the network, double click on the Windows Network icon:


[[Image:centos_samba_windows_workgroup.jpg|A listing of Windows workgroups detected by Samba on CentOS]]


Similarly, double clicking on a workgroup will list the Windows systems present in the workgroup:


[[Image:centos_samba_windows_servers.jpg|Windows Servers detected by Samba on CentOS]]


Similarly, double clicking on a computer will list the shared resources available for access from the CentOS client:


[[Image:centos_samba_windows_shared_resources,jpg|Accessing Windows Resources from CentOS]]

Navigation menu