Wayne Johnson writes: > Installing Linux (we have a lab with ~20 PCs, might as well > give them some behind the wheel). This is a problem. What distro do you use? Do any of the distros with an easy installer offer a free, automatic system for security updates? With Debian, you could easily setup security updates to run nightly from cron. Unfortunately, Debian does not have the easiest installer. As much as everyone would like to believe that UNIX software is magically immune to security holes, it simply isn't true. Almost all popular programs have had security holes that allow arbitrary code execution. Setting newbies up with Linux systems that aren't automatically updated with security fixes is just as irresponsible setting them up with Windows boxes. Another issue is the operating system becoming obsolete. Some companies such as Red Hat make their operating systems obsolete faster than even Microsoft. How does the user upgrade without reinstalling from scratch? Ideally, the operating systems needs a way to update itself from any version to any version with no user intervention besides a few questions. > Access Control (passwd, group, file system security) There is a lot more to UNIX security than just that. Understanding file permissions is almost useless without understanding process credentials. Why shouldn't things run as root? Why shouldn't all daemons run as "nobody"? If a process is compromised, what other files and processes can become compromised? > GUI vs Command line (including a tutorial in Vi) Haha. The vi interface is not at all intuitive. Trying to teach newbies how to use it is pointless and stupid. They have no need to use it. After the course, if the user is so inclined, he can spend the months it takes to learn an archaic interface designed for incredibly slow machines that were accessed using terminals with different keyboard layouts. vi is not efficient in the default setup with the keyboards on most PCs. A Happy Hacking keyboard or a mapping like it would make vi much more efficient. But with the default setup, having to take your hand off the home row to press escape slows you down and increases hand stress. Here is an interview with Bill Joy, the original author of vi, along with a picture of the terminal it was designed for: http://www.cs.pdx.edu/~kirkenda/joy84.html http://www.tentacle.franken.de/adm3a/ The above is my opinion. Perhaps vim has better default key mappings, or even a modeless interface. If so, I would love to hear about it. At any rate, it is counter productive to attempt to teach vi to newbies. nano, joe or ee would be a much better choice. My pick would be joe, because it almost as easy to use and has basically any feature an advanced user would want from a text editor, except for syntax highlighting. It even has a pico imitation mode, run by running jpico. > E-mail Serving Make sure to pick a secure MTA, such as qmail or Postfix. > PHP If you need to teach a user what a CPU is, you should not be trying to teach them a programming language in the same course, especially not one that makes it easy to have huge remote security holes. This isn't to say it's difficult to write secure PHP, but looking at all the security holes in various open source PHP applications demonstrates that amateurs make a lot of mistakes. > MySQL, Postgres Databases are an advanced concept that you probably shouldn't be trying to teach. If a user doesn't know what a database is, a Linux intro course probably isn't the time. If you want to give a two minute demo on databases, MySQL would be my pick, since it's a lot easier to use. > Perl The thing for PHP also applies here, basically. Perl is not a good first language. If the user wants to learn Perl later, recommend a good book. If you are really intent on an intro to programming, I recommend Python. It is much more elegant, user friendly and makes it easier to teach concepts. The interactive interpreter can be a wonderful teaching tool. This book is excellent, even for non programmers: http://www.amazon.com/exec/obidos/tg/detail/-/0201748843 > At this rate, It'll be a 4 year course. Yep. > Any suggestions? Don't. Newbies should not be deploying machines on the Internet, period. Teaching them how to setup a Linux operating system for a desktop machine that will be behind a hardware NAT router is probably alright. Take a hint from Apple on usability. How many average Mac users know about UNIX permissions? The average user doesn't care and shouldn't need to. Focus on what the user needs to do, not on general UNIX concepts. Need an email server? Web hosting? Outsource it. If an organization can't afford $15 a month for that, they certainly can't afford to be deploying machines on the internet. Businesses exist to make money, not do something a certain way because you think it is cool (case in point: vi). Make sure a solution's total cost of ownership is cheaper than the alternatives. Software cost is usually a small factor. -- David Phillips <david at acz.org> http://david.acz.org/ _______________________________________________ TCLUG Mailing List - Minneapolis/St. Paul, Minnesota http://www.mn-linux.org tclug-list at mn-linux.org https://mailman.real-time.com/mailman/listinfo/tclug-list