Best of Technical Support

Various

Issue #48, April 1998

Our experts answer your technical questions.

Using ZIP Drive and Printer

I want to use my ZIP drive as well as my printer with Linux. My friend suggested using kerneld to make modules of the ZIP drive and my printer so that I can load the ZIP drive, access it, then unload it to use my printer. How would I go about doing this?

—Scott Bell Red Hat 4.2

There is no need to do this. All the modules you need are already available from the stock install. To access your parallel port ZIP drive simply run:

insmod ppa

as root. You will then have your ZIP drive available as /dev/sda if you don't have any other SCSI devices on your system. When done with the ZIP, make sure everything is unmounted. Then run:

rmmod ppa
as root. You can then unplug it, plug your printer in and use the printer as you normally would (kerneld should load that module automatically). If you have further questions or need help, install the kernel-source RPM and see /usr/src/linux/drivers/scsi/README.ppa and the SCSI-HOWTO for more details.

—Donnie Barnes, Red Hat redhat@redhat.com

Unwanted Displays

The gremlins at work are killing me. I have a few co-workers that keep sending me xmelt, xroach and xsnow. Unfortunately, I need to keep all my network connections open. Is there a way to find and kill processes that are sent to my display? Also, is it possible to reroute these processes back to the display they came from?

—Ray Banez Red Hat 4.2

Type ps -ax to get the process ID which is on the left side of the output, then typekill -9 <process ID>. Now to keep this from happening again make use of the xhost command. It will allow you to deny X sessions from hosts you don't want(xhost -unwanted_machinename).

—Mark Bishop, Vice President Southern Illinois Linux Users Group mark@vincent.silug.org

You should restrict access to your display. If you access your display locally you could just deny remote access to shell accounts on the workstation; otherwise, look at the docs about xauth and use it to authenticate graphic programs. This way only your own programs will be able to use your graphic display. If you share your account with other people, on the other hand, there's no solution to the problem.

Routing the processes back to the display they came from is not possible. You must block intruders before they get in or kill them afterwards.

—Alessandro Rubini rubini@linux.it

kcore File

What is the kcore file in /proc directory? The file size is growing out of control. Can I delete it?

—Kai Lien, Pharm.D. Red Hat 4.1

This is a “virtual” file, reflecting your memory. It doesn't exist at all on your hard disk, like all of /proc, so it can't and shouldn't be deleted!

—Ralf W. Stephan ralf@ark.franken.de

Perhaps a short explanation of the /proc file system is in order. The /proc file system is a “virtual” file system. It doesn't actually reside on any sort of physical device. /proc is a means of examining what is going on inside the Linux kernel without having to resort to a lot of programming. /proc/kcore is actually all of the memory that is in use on your system. Even if you could delete it, you wouldn't want to. Don't worry about the “size” of kcore. It's actually not affecting any of your drives.

I strongly encourage you to explore the files in the /proc file system, preferably as a non-root user. By looking inside these files, you can learn a lot about how your system is configured, what it is doing and how certain things work. As long as you aren't poking around as root, it's very difficult to mess anything up.

—Keith Stevenson k.stevenson@louisville.edu

Migrating to Linux

I am currently trying to migrate an ISP's radius authentication server from FreeBSD to Linux (not distribution specific, but using Debian). The /etc/passwd file from FreeBSD is using MD5 encryption. The default scheme for Linux is the DES-like scheme. FreeBSD states, correctly, that the scheme may be switched to MD5 by changing the sym-links in /usr/lib from libcrypt to libscrypt. I cannot find a solution of this nature for any Linux distribution, though at this level there should not be any distribution specificity. I know of at least one ISP with a similar problem between BSD and Linux. I am not alone.

—Michael Roark Generic

Transferring passwords between different operating systems can be a major problem. The difficulty lies in the fact that passwords are encrypted in a one-way fashion. You have to know the password in order to decrypt it. Here is what I have done in a similar situation.

1) Write a program wrapper around your login program that will capture the userid and password of your users before passing the information to your authentication server.

2) Use this file of clear-text userid and password combinations to set up the authentication database on the new system.

If you are unable or unwilling to do this, find out whether or not freeBSD and Linux use the same crypt function for storing passwords. If so, set freeBSD to use the crypt function instead of MD5. Accelerate the rate of password expirations so all of your users have to change their passwords (assuming you use password expiration). After all of the passwords have been changed, simply copy the encrypted passwords from the freeBSD box to the appropriate place on the Linux box. This will not work unless freeBSD and Linux use the same crypt function.

You may also want to take a look at Red Hat Linux. I think that the PAM security system bundled with it may support MD5 passwords. If so, you can copy them directly.

—Keith Stevenson k.stevenson@louisville.edu

minicom Configuration Problem

My machine is a p75 with a Fujitsu hard drive and a Hayes Accura 56kflex external modem. I have 4 partitions: MS-DOS, Caldera, Red Hat and swap. I have a mouse on com1 and a modem on com2. The modem works fine in DOS. In Linux, when I go into X and start seyon, an AT returns “ok” and I can dial out and get a response from a BBS or my ISP.

When I go into minicom, it does not dial out. I wait for a couple of retries and then exit minicom. As soon as I exit, minicom dials out.

If I open minicom in a vt the same thing happens. In all cases the modem init light comes on, but there is no dialing until I exit from minicom.

Can someone please tell me where I am going wrong? No one has been able to help—not Hayes, not the Caldera help line, not any of the lists where I posed the question. Any suggestions will be much appreciated.

—Ted Wager

Ok, you have a problem with minicom's config somewhere. Now I could be more helpful if I knew if an init string came up or just the familiar “Press ctrl-A Z for help on special settings.” My advice to you is go through the settings and make sure minicom is set up as it should be. (Usually it is set to /dev/modem assuming /dev/modem is a symbolic link to /dev/cua1.) Check your serial port settings and check your init string.

—Mark Bishop, Vice President Southern Illinois Linux Users Group mark@vincent.silug.org

syslogd messages

On my home PC, the /var/adm/messages file was getting pretty big. I deleted it, then created a new one with touch. The new file's permissions are identical to the original.

But now, /usr/sbin/syslogd will not run for more than about two minutes. No data is logged to /var/adm/messages anymore. What have I done?

—Bill Cunningham Slackware

syslogd sometimes doesn't like it if the files it has open for writing are modified. Sending SIGHUP (kill -HUP) is usually enough to make it start writing to the file again.

Incidentally, I use the program logrotate to manage my syslog files. It trims them as necessary, archives old files and restarts syslogd as needed after working on the log files. It has made log file management much easier for me.

—Keith Stevenson k.stevenson@louisville.edu

Multi-threaded Applications

I want to program multi-threaded applications. Kernel threads are available, I know. But how about thread-safe versions of much used libraries (libc and tcpip communications)?

—Peter Boncz Generic

You can try the LinuxThreads library, which is a free, kernel-level implementation of POSIX 1003.1c threads under Linux (based on the clone system call). For information about compatible libraries, check out http://pauillac.inria.fr/~xleroy/linuxthreads/.

—Pierre Ficheux, Lectra Syst pierre@rd.lectra.fr