Archive for the ‘SoC’ Category

Ubuntu-Config-Samba(src)0.1 is availabe !

August 28, 2006

I’ve made a google-page for Ubuntu-Config-Samba
and upload ubuntu-config-samba(src) 0.1 here.
you can run program by : 

executing ubuntu-config-samba file or sudo python in terminal

Warning : You must have root previlege for runnig program.


Ubuntu-Config-samba 0.1 test version is comming …

August 21, 2006

I have just completed the code for the Google Summer of Code.

Now I’m going to try to

  • Clean up the code, bug fixes, more testing, and hopefully get a stable version


  • Make Deb package

The Debian packaging system is one of the most elegant methods of installing, upgrading, and removing software available.

I’ll package my project in Debian Binary package format which contain executables, help pages, copyright information, and documentation and will release first version of Ubuntu-config-samba soon .

… And that is all!

How Samba Server authenticate clients ?

August 20, 2006

Each user who attempts to connect to a share not allowing guest access must provide a password to make a successful connection. What Samba does with that password—and consequently the strategy Samba will use to handle user authentication—is the arena of the security configuration option. Samba currently supports four security levels on its network: share, user, server, and domain.

*Share-level security

Each share in workgroup has one or more passwords associated with it. Anyone who knows a valid password for the share can access it

*User-level security

Each share in the workgroup is configured to allow access from certain users. With each initial tree connection, the Samba server verifies users and their passwords to allow them access to the share.

*Server-level security

This is the same as user-level security, except that the Samba server uses another server to validate users and their passwords before granting access to the share.

*Domain-level security

Samba becomes a member of a Windows NT domain and uses one of the domain’s domain controllers—either the PDC or a BDC—to perform authentication. Once authenticated, the user is given a special token that allows her access to any share with appropriate access rights. With this token, the domain controller will not have to revalidate the user’s password each time she attempts to access another share within the domain. The domain controller can PDC or BDC, or Samba be a Windows NT/2000acting as a Windows NT PDC.



Samba Server Setting - Security Tab

Samba Server Setting – Security Tab


Samba Server Setting

August 19, 2006

Configuring Basic Server Settings


Samba Server Setting – Basic Tab



The first step in configuring a Samba server is to configure the basic settings for the server like that :

-WorkGroup name : NetBIOS group to which the server belongs .

-Description :server string is the equivalent of the NT Description field .


and a few security options:

In Security Tab ,User can configure some Security Server Settings ,For example :

*Authentication Mode and … which is under construction #:-S.


Samba-User Manager

August 12, 2006


Parsing smb.conf(Samba Configuration File)

July 5, 2006

Samba’s daemons, smbd and nmbd, are controlled through a single ASCII file : SMB.Conf .

The program must read, parse & edit smb.conf file for configuring( add ,edit or delete)some options like :
-Samba server settings .
-Add shares or edit current share options .

First I introduce the structure of the Samba configuration file and show how to use options to create and modify disk shares &
manage samba server settings.
Global Structure of file:




-[global] section

In this section there are samba server configuration options like these :
*basic settings for the server
–WorkGroup : The workgroup that computer should be in it.
–Description : Brief description of the computer.
They correspond to the workgroup and server string options in smb.conf :
workgroup = MYGROUP
server string = My Samba Server
*Security options :
–security levels :
+user-level security
Each share in the workgroup is configured to allow access from certain users .
+share-level security
Each share in the workgroup has one or more passwords associated with it. Anyone who knows a valid password for the

share can access it.
only user = yes or no
This Boolean option indicates whether Samba will allow connections to a share using share-level security based solely on the individuals specified in the username option, instead of those users compiled on Samba’s internal list.
username = user1 , …
This option presents a list of usernames and/or group names against which Samba tests a connection password to allow access

+server-level security
This is the same as user-level security, except that the Samba server uses another server to validate users and their passwords before granting access to the share.
+domain-level security
+ADS-level security
*Encrypt Passwords

— This option must be enabled if the clients are connecting from a Windows 98, Windows NT 4.0 with Service Pack 3,Windows 2000 or Windows XP . The passwords are transfered between the server and the client in an encrypted format instead of in as a plain-text word that can be intercepted. This corresponds to the encrypted passwords option.

encrypt passwords = yes
*Guest Account

— When users or guest users log into a Samba server, they must be mapped to a valid user on the server. Select one of the existing usernames on the system to be the guest Samba account. When guests logs in to the Samba server, they have the same privileges as this user. This corresponds to the guest account option.
guest account = sambaguest
The [printers] share contains options that map to various printers on the server.
If a user attempts to connect to an ordinary share that doesn’t appear in the smb.conf file , Samba will search for a [homes] share. If one exists, the incoming share name is assumed to be a username and is queried as such in the password database ( /etc/passwd or equivalent) file of the Samba server. If it appears, Samba assumes the client is a Unix user trying to connect to his home directory.

They are individual configuration options for shares on samba server.

-Capitalization is not important in the Samba configuration file except in locations because the Unix filesystem is case-sensitive.
-Line continuation using the backslash at the end of no-finished line.
-Insert comments in the smb.conf configuration file by starting a line with either a hash (#) or a semicolon ( ; ).
& Now a bit about my project :

-These options which users will use and change frequently ,’ubuntu-config-samba’ allow to configure easily in it’s gui environment.
-For Parsing smb.conf file I’ve found ‘redhat-config-samba’ parser to use in my project.

& Now I’m through ‘They was marked 2 Do’ List for completing ‘ubuntu-config-samba’ my SoC Project 😀 …

They was marked 2 do :

June 25, 2006

**AddShare window :

-Improve addshare interface appearance to be more user-friendly .

-Complete it by adding ‘share name’ , ‘share description’ , ‘visibility ‘ options that some share options is put in Advanced Tab .

**Add a Table to MainWindow shows current share folders & their attributes like that share name , permissions ,… .

-User can change current share properties by double-click on the table or press Properties icon on the toolbar.

**User account management :

-Add / Remove / Edit samba-users .

I’ll go through the Current ToDo list from some next days but Now

I try to make code(Add share Window & Main Window Interface )ready for first commit to bzr branch of my project on launchpad .

A Great Jump Forwards …

June 22, 2006

-Design MainWindow
-Design & coding AddShare
has been done 😀 .

Add Share in GUI Samba Configurator

In mainwindow by clicking on 'Add a Share' button in toolbar(Ctrl + S), 'Add Share' window appears.
It has three major parts :
-Share Directory
User can browse in system & add favorite folder to share .

-Share Security

By this part ,user can configure access-permision to share folder.

-Share For …

Share For 'all users' is default value but could be changed to

'specified user' option .By selecting 'specified user' ,Samba Users

List appears in buttom(which is extracted from smbpasswd file)

and user can select some specified user for authenticating them

to access the share.

Add a Share
Ok button clicks.
At the first program checks share address ,Is valid or no?,and if it's valid address ,Making share block is second work and at the end
program appends it to smb.conf file.

For Example in this case it's made below share block :


path = /root/Desktop/ToDo
writable = yes
valid users = samba-user1 samba-user2

I've test it & AddShare window works well , But Remaining works is so much .I'll talk about them in next post …

Set up Samba Server & Windows Client

June 13, 2006

*Set up Samba server In Ubuntu

After installing samba & smbfs package

-Add System User: useradd system_username

-Add Network User: smbpasswd -a system_username

-Add following line to File “smbusers” at /etc/samba/

system_username = “network username”

*Set up Windows XP client to communicate with it

(in same workgroup)

-Click on My Computer to open the My Computer window. Click
My Network Places, in the Other Places box in the left part of

the window ,click View workgroup computers in the Network

Tasks box at the left of the window and now you should see

your Samba server listed as a member of the workgroup.

Double-click its icon, and if your windows account

(username & password) doesn’t match with samba

user ,you added in linux ,you should input it and if

It’s correct you can see samba shares.

Hello World

June 11, 2006

This is my first window programming in python.


In Python IDE :

My First Python Window

Add a ShareAdd a Share (as Easy as Possible)

I ‘ve been familiar with ‘redhat-config-samba’ just about a month ago .It’s a Samba Server Configuration Tool for managing Samba shares, users, and basic server settings.I think it’s good idea that I start coding ‘GUI Samba Configurator’ SoC project by implementing features which is considered in redhat-config-samba first and after that I’ll add some features .