General Note 19990615

cLIeNUX Core is configured for client-side use of Linux/GNU/unix. It assumes a 1:1 ratio of users to boxes. It assumes that you own the box you use. It assumes you do everything as root. This is not the currently prevailing model of what Linux or unix are about. This is a subset of what Linux is capable of. I have bet a lot of my time on the idea that this is a valid and useful approach to Linux. First and foremost, it is clearly a lot simpler than administrating a network for a campus of some kind. Or pretending to do so. Second, sound technical procedure is almost always a matter of proceeding in manageable steps from some simple base level to more complex levels. It continues to astound me that the predominant Linux distributions start up about a dozen servers by default. However, cLIeNUX is only client-use oriented by default. Some cLIeNUXisms will be annoying to convert to a server scenario, but if you know what you're doing it won't be too bad, and if you don't, good. If all you get is frustrated by trying things you aren't ready for then I've done you a favor. When you're actually ready to run an ISP or something, your cLIeNUX will be right there. Which brings us to point three. cLIeNUX is dressed up to get messed up. Learned. Reconfigured. Dynamic. Copied. Rebooted. A module itself. Things you can't dream of with 300 users. NOTHING in the default configs is intended to be "the one true" anything. Some things, like /configure/motd, are only intended to make sense the first few times you use or see them. In fact, there are a variety of things that are mis-configured slightly just so that you will be made aware of thier presence. The bottom line is, it's your box. Break a leg.

In addition to not trying to make your box an instant AOL, cLIeNUX doesn't try to make configuration automatic. Mostly that's because there's currently only one of me working on cLIeNUX, but that raises some other points. Making everything "easy"...

  1. is a huge task
  2. inevitably leads to assumptions about how you want things
  3. is non-educational. The config stuff happens to be mostly fundamental unix stuff you want to know anyway. The big guys are delighted to get you into a plush X environment with all the big apps at your fingertips without knowing basic commands like "get" (cat). There's nothing wrong with that, but there's nothing particularly right with that either. Consider the new Red Hat/Slackware/SuSE/whatever user with a fresh install. There they are, looking at 300 meg of software it will take 20 lifetimes to master, and they don't know what ">" does in a unix shell. It's an old joke, but it's more true every day, "Those that don't know unix are doomed to re-invent it. Poorly." Learn it a bit, for your own good.
  4. is probably impossible. "IBM PC Compatible" is such a funny phrase nowadays. Your box is your box. The only party that will configure it perfectly is you. So I just try to make sure you find what you need.
My own worst problem with learning Linux initially was just finding the docs. I do think cLIeNUX takes a fair chunk out of that problem. This way will take a beginner a bit longer, but it will be time VERY well spent.

Stuff You Want To Get Right

This is a tour of things you probably want to configure for your hardware, preferences and connections. Most items are just html hyperlinks to the pertinent config file. Hit (enter) over the link, and then hit e in browse/Lynx to edit the file. ctrl&x will exit Pico back to browse. Some config files will be in effect as soon as you have edited them, but usually whatever it is you just re-configured will have to be re-started or signal -HUP'ed.

Most (but not all) config files observe the standard unix shell syntax for a comment, where everything on a line after a # is ignored. Therefor, to "uncomment a line" in e.g. /configure/inetd.conf you just remove the # with an editor such as Pico.

Also look at known problems for this release of cLIeNUX.

FUNDAMENTAL

These are the base config files for normal local operation of your box, /configure/passwd, /configure/inittab /configure/profile and so on. Get this stuff right early, so you won't be fooling around with it later, because these things can break your box real good if you mess them up. If you're going to smash things up do it early in your cLIeNUX experience. Now is a good time to just browse /configure too.

Here's a list of the files in /configure that are real important, such that they have manpages/seedocs of thier very own, roughly in order of importance. If you screw up one of the first 3 bad enough you won't be able to boot to that partition.

That list is a subset of ls /help/see/*[45]* by the way. Some of those will look better in "less" than they do via these links. I don't have a seedoc for /configure/profile, but have a look at it also.

A Real Install

If you are just perusing cLIeNUX from the umsdos or loopback versions and have decided to use it most of the time you'll want to head for the a_real_install document and the partitioning HOWTO.

Passwords

I suppose I could do a CGI wrapper to password from here, but I'll keep it simple and just remind you to make passwords, using "password", for root or r and any other users you may have before connecting your box to any external networks, ISP, etc., or if pranksters have access to your console.

They say most computer security breaches are due to weak passwords or weak password secrecy, like writing it on your monitor. A password should be memorable to you, so you can remember it without writing it down, and obscure to others. Passwords should also not be regular words. It's a personal thing.

cLIeNUX'es /configure/login.defs is defaulted for rather relaxed password *selection* constraints, i.e. you can use your login name as your pass, which is idiotic, basically, but it depends on your degree of connectivity and your environment. However, much more limiting, cLIeNUX password is not "SUID root". Only root can set passwords. There are no SUID bits in cLIeNUX, making "root exploits" almost impossible. In most unices SUID root, su and sudo allow plain users to run certain things as root. In cLIeNUX root is root, period. It's a trade-off geared for client use. If you're ready to have users telnetting into your box, and you want to allow them to set thier own passwords, then you know all about SUID and so on, right? You'd better.

Mouse

Linux cuts and pastes text just fine, courtesy of the gpm program, and cut/paste is extremely useful. (So does Pico (pico) ). Unfortunately mouse protocols are a configuration mess. The mouse is handled by the gpm daemon, which can also be started from /configure/inittab, I think, or you can call it by hand. For serial mice /dev/mouse should be a symlink to the correct /dev/ttyS#, but for PS/2 mice it needs to be a symlink to /dev/psaux. I don't know about busmice. Here's the available types....

gpm-Linux 1.10, July 1996
Available mouse types are:

  name   synonym         description

  mman   Mouseman     The "MouseMan" and similar devices (3/4 bytes per packet).
  ms                  The original micro$oft protocol, with a middle-button extension.
  bare   Microsoft    The ms protocol, unextended. Necessary for some 2-buttons mice.
  msc    MouseSystems Mouse-Systems-Compatible. Used in most 3-button mice (5-bytes).
  sun                 'msc' protocol, but only 3 bytes per packet.
  mm     MMSeries     MM series. Probably an old protocol...
  logi   Logitech     Used in some Logitech devices (only serial).
  bm     BusMouse     Micro$oft busmice and compatible devices.
  ps2    PS/2         Busmice of the ps/2 series. Most busmice, actually.
  ncr                 Ncr3125pen, found on some laptops
  wacom               Wacom tablet


Shell options

Bash is the only unix-style command interpreter shell in cLIeNUX Level 2. "sh" is just a symlink, a symbolicly linked filename, to Bash. You can set a users default shell in /configure/passwd to gforth or H3sm or something, which are both also in /configure/shells for grins, but probably all you'll want to fool with are the system-wide login profile file /configure/profile and the various user's .bash_profile files, such as /owner/.bash_profile. Note that the supplied /owner/.bash_profile has examples of commands to run at shell startup, and some command aliases. You can also set shell variables, as in /configure/profile.

Kernel Modules

The supplied 2.2.9 Kernel has bunches of filesystems supported. There are also a wide variety of types of harddrives supported. Linux also supports runtime-insertable kernel modules. The kernel can link and unlink code to itself at any time. I am compiling several megs of modules as I type this. These modules are mostly device drivers for things that aren't essential to booting, such as sound, ethernet cards, ISDN, and so on. Eventually you'll want to build a kernel specifically for your box, but modules are handy. The related utilities include insmod

CONNECTING

I personally have a modem and a PPP and shell account for Internet access. I use the pppsetup command to get all the config files in order, and then I write a dcon script to replace the chat script pppsetup produces. My personal experience with chat is that is buggy, but it comes with pppd and pppsetup uses it.

Be careful with pppd and logging. It can put the root password in plain text in the logs. I think the pppd debug option does that. The logs are priceless when configuring ppp however.

I put pppsetup and dialog back in. I had yanked them, but gpm can use dialog, so it has more than one thing it supports.

NICETIES

Hostname

There's a call to the hostname command in /configure/inittab that sets the hostname to cLIeNUX. That's what the shell prompt is controlled by. Change cLIeNUX to Your_cooool_hostname.

Font

Your fonts are in /suite/lib/kbd/consolefonts. "fav" is the symlink I use in that directory to set up an easy-to-type default. The viewall script that comes with the fonter console font editor cycles through all the fonts. To view all fonts, cd to /suite/lib/kbd/consolefonts/ and do ./viewall . setfont with no arguments will set the font that came in your VGA card. That fugly 80x25 one.

Login text

/configure/issue, /configure/motd and /configure/issuevt are the bootup and login files you see. Edit them to your tastes. The defaults are geared for the first time you see them.

SVGA

The view picture viewer and SVGATextMode use libvga, which can be MUCH MUCH better if you get the /configure/vga/libvga.config file tweaked right for your video card. See the files TextConfig and ~TextConfig in /configure also.

Printer

I don't know about modern printers. I have a dot-matrix. It's on /dev/lp0 in the 2.2 kernels, and cat ascii_text_file > /dev/lp0 works. There was a DIP switch on mine to set it to use unix-style newlines, i.e. just cursor_return instead of Dos-style CR/LF. Otherwise you get "staircasing". lpd is line printer daemon, i.e. for a networked printer, which I know nothing about. lpd has the print job spooling, possible exploits and all that fun stuff. My printer also does troff and Postscript if I preprocess them by hand with ghostscript or troff.

There are seedocs for devices in cLIeNUX Core. see lp .

copyright Richard Allen Hohensee 1999. This file is released for re-distribution only as part of an intact entire cLIeNUX Core.