What Should be Included in a Linux Crash Course?
Olivier Van Acker asks: "Since I started working at my current job a year ago I've installed on average one (Gentoo) Linux machine a month. Included are developer desktop machines, development servers, router/firewall, web servers, video server, MPEG encoders, etc. (It's a platform for interactive television). Since I'm the only one who is able to maintain them I want to train two of my colleagues. I've got three days dedicated time, three computers to work with and they are both Linux/Open source newbies (A technician and a programmer). What should this crash course include, what is the best learning method and what resources are available online?"
"My background: I'm a programmer, a systems engineer and I used to give IT training. I have been using Unix-based operating systems since 1995.
My list so far:
My list so far:
Linux system Installation
Software installation
General Linux system administration
Network administration
Web server configuration
Database administration
Video server administration
History of Unix and Linux
Philosophy of open source software"
Either way, show them how to make a kickstart disk or other ways to automate a custom installation.
Packaging managers are a must. Whether it's dpkg or rpm or yast, show them the different tricks and options. Also, if show how to roll a custom package, but choose one of the simpler ones.
For servers, cover iptables, tcpwrappers, inetd/xinetd, sshd, sudo and apache. System log file analysis is another must.
For desktop machines, cover KDE/Fluxbox/Gnome. Kiosk mode might be useful for some parts of your work environment.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
That said, a few words here and there to put to rest some of the myths about the GPL can be quite useful. Also, sometimes a little history is needed to put things in context. Just a few words, though.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
I don't mean creating and enforcing ridgid doctrine, though.
Here's an example -- if you've never done this or need a refresher;
The tool(s) used are up to the admin and training in them should be direct and simple. The people who are new to the tools should be given resources (books, notes, and someone experienced to talk to). That the tasks are being performed at all should be easily verifiable. Keep it simple as possible so that it actually gets done, though have it just formal enough that someone else can figure out what should be done -- not necessarily be told how they should do the job.
A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
Its real nice to point and say 'please consult the excellent documentation', but a total newbie probably doesn't even know what they are looking *for*
Teach them:
File system stuff- where, how- make a new directory, find a file, check permissions
- permissions- look at and change
-mounting devices (start above with 'Linux sees everything as a file system'), unmounting devices, names of devices
- text editors. vi, emacs, whatever. start from the gui of your choice and show them the equivalent of notepad (Kate, gedit whatever)
- equivalent apps- openoffice, firefox, thunderbird whatever you use.
All this will make them comfy on the desktop. then:
-review network basics, and show them the basic utilities- how to look at and reconfigure a network connection
- show them top, ps , grep, awk and df/du, DD, cp,
After that, go teach them about more specific stuff. nothing else will make much sense to a Linux newbie...philosphy and pedagogy is important, but should take a back seat unless it relates directly.
And yes, show them the docs, the forums etc, and hand them a book and show them where stuff is.
'RTFM' is just rude and arrogant.
Skip "Breathe in, breathe out...the rest is easy"
As a sysadmin I've had the opportunity to work with, or closely observe the work of, about 30 other admins. The ones who do well are those that have a healthy respect for the system. I try to keep my setups as default as possible. Any change must have a good reason. This keeps things more stable (defaults are better tested) and easier for my replacement. The "problem" admins are the ones that can't resist tweaking everything. Yes, they might get a 1% performance boost, but they're also more likely to generate system instability.
In terms of priorities, there are a few basic rules: #1 priority is security, #2 is stability, and #3 is performance or other user requirements.
Finally, there's the concept of structuring the environment. Think about dependencies. Try to consolidate services so there's a single point of failure. This means not having multiple fileservers with crossmounts. Running a single OS/distribution will make your life a lot easier, assuming your shop doesn't require the diversity.
As others have said, there's a lot you can teach them about how to read manpages and use google, but without the basic philosophy of how to be an admin, all their knowledge will probably just lead them to manage unstable systems.
Speaking as someone who is fairly new to world of linux based operating systems, I would suggest the courses on www.linux.org. They are based on a debian system, but most of the basics for all linux systems are there. I learned more from that then any other information I have come accross so far. First take a look at yourself and see what you would like to stress as important and go over those sections in the time you have with them. Then you can give them some homework by having them go over the courses at home.