One of the great strengths of Linux is its multi-faceted network server capabilities, reaching back to its rich UNIX history and the development of TCP/IP on that platform. If you’re a software developer, it’s dead simple to network-enable your own apps too, making them act consistently with other server processes. Here’s how to do it, in two parts.
The task at hand
Firstly, a real world story: I was called to do some work for a local ISP. They used a database system for administration and billing purposes, and a Linux server for user accounts and subscriber Web publishing.
This ISP was reasonably small. Its two system administrators were making all the Linux accounts by hand. They wanted the help desk staff to take over the job in some automated fashion, but didn’t want to give them actual privileged logins to the Linux server. These guys didn’t know Linux either, so sudo wasn’t really a solution.
What they requested was a Web page that the help desk staff could access on their local Intranet. The form allowed new registrations to be manually entered or uploaded from a file. When the staff member clicked OK the user details entered on the form were to be added to both the database and the Linux server, creating an account in the process.
The intranet was not running on the public Linux server; it was on a private machine – so a CGI script wasn’t an option. This called for a client/server solution.