Top Ten Linux Configuration Tools?
jman251 asks: "I am presenting at a conference in September on a couple of Linux-centric topics. One of these is a collection of tips, tricks, and tools for configuring, securing, and maintaining a Linux-based server. I have a short list of tools I use, but would like some community input on the subject. What tools do you use that make your admin responsibilities easier or more automated on the Linux platform?"
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
rm -rf /home
That'll teach those pesky users....
Xconfigurator used to be the key thing if you had any graphical needs. But the KDE GUI makes all that graphical tweaking as transparent as windows desktop nowadays.
Webmin. Grab Usermin while you're there.
I use it on several of my servers to do basic configuration.
Your thin skin doesn't make me a troll
su
df
du
ls
rm
passwd
chown
vi
more
bash
Hey, you asked for it - No clicky links to read.
man and vi
Seriously.
That's all ya need ;p
What is music when you despise all sound?
As admin tool.
http://www.cs.unm.edu/~dlchao/flake/doom/
"What tools do you use that make your admin responsibilities easier or more automated on the Linux platform"
Perl is your friend
Most of the pc's I see are windows, so I'd have to say my most used tool is fdisk.
Knoppix is a nice solution too when I don't have time.
=================
Unix is very user friendly, it's just picky about who its friends are.
I use Computer Management. It's located under Administrative Tools in the Control Panel. It's really great for... wait a minute... looks around... wrong site...
takes a couple steps back...
PHPMyAdmin
My at least top 4...
grep
gawk
xargs
for
Sig (appended to the end of comments you post, 120 chars)... oops
CVS or your favorite equivalent is vital in any multi-sysadmin environment. Operating without your configurations in CVS is like juggling priceless eggs in variable gravity.
Emacs! No, vi! No, Arrrrrrgh!
Run all the servers (or lab gentoo boxes) at once. Great for mass updates,testing, etc.
Source Forge Page
Spell check? Why bother. That is what grammer/spelling Nazi freaks who waiste band width posting "spell right" are for.
Tripwire is a very easy to use intrustion detection system. If you follow the documentation, and implement it properly (storing the statically linked binary + database files on read-only media), it will make things very hard on a potential hacker.
What good are all your commands with no shell? ? ?
Llywelyn Fawr
I would really love a nice BIND configuration utility. Something where a whole package like webmin isnt necessary, but it makes life a whole lot easier. Redhats bindconf/redhat-bind-config was nice once upon a time, but getting it to run on anything but redhat requires about 2 gigs worth of obscure dependancies... I want something I can throw on say, a slackware machine, and it just go.
Even better would be something that also tied into dhcpd (these are the ISC daemons Im talking about, folks), that would serve to configuring them both, even on working together in a ddns/dhcp setup.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
cfengine (http://www.cfengine.org) is
the best automation tool for unix and unix-like
environments. Hands down.
It's a little hard to configure sometimes, but
worth the effort.
It's easy to use, I just pick up the phone, ask Tim to fix this Linux thing.
Easy-peasy.
Or I just do what Vigor tells me to do.
The Kruger Dunning explains most post on
Bastille after I have the server built. The interactive mode also provides a great security tutorial.
RCS to provide rollback and change control.
No professionally administered Linux box should be without it.
Always value the individual over the system. --Bruce Lee "I don't need a Sig - I have a custom 191" - me
...to help maintain various GForge systems.
Nothing fancy, just twiddling configuration files (httpd.conf, etc), pushing data into a PostgreSQL database, automating StatCVS runs, etc. I keep them in CVS, of course, here.
The Army reading list
... the most important tool is the brain :) As an admin, whatever you do, if you don't think enough on it you deserve what could happen.
As "admin suite", i.e. a single program to do a lot of administrative tasks, maybe YaST could be a good start. I'm not use webmin, tried it some years ago and don't liked the idea, but could be useful for a lot of people too.
And about individual tools, well, bash, vi, perl, mc, awk, the gnu text/file/shell utilities (cat, grep, ls, cut, chmod, etc) are essential.
Last but not least, a "tool" is also something that help you to use what you have available already. Man pages, the HOWTO collection, a lot of O'Reilly books, and Google are examples of that kind of tools.
Vi user 1: KILL THE TROLL
....
Vi user 2: Mesmerize this so-called-pico-mesiah
Slashdot winfiend1: I for one....
Slashdot winfiend2: Imagine a
Emacs user 1: Damn, the vimers beat us to the hangin!... we cant say kill him, they already did...
Emacs user 2: Its Gnu-Pic.... oh wait...
NO SIG
sudo!
Learn it in detail. If you work with other people on the same machine, it will make your life a lot easier.
screen is pretty handy, too. Being able to detach sessions is also nice for when you've started sprouting icycles from your nostrils from the cold, cold server room.
...when you have portaged the very latest version and compiled it from source for your processor and architecture... it still isn't configured.
...which I believe is what this poll is about. Top Ten Configuration Tools.
Everyone will start to cheer when you put on your sailin' shoes.
That's all I can think of now. I'll think of others later.
I can't believe with all these posts that the only one(s) that actually respond to the question are about Webmin!
Don't get me wrong, Webmin is great, it's at the top of my list fer shure, but that's not the be-all and end-all of systems management!! What about actual convenient tools like MRTG, Novell's eDirectory, RedCarpet, etc. etc.?
Heck, I'm reading this article hoping to pick up a few tips myself and all I'm seeing are scripting languages and text-editor flame wars, (all of which can/should be moderated Off-topic or Funny).
So, anybody actually got anything useful to contribute besides Webmin?
"Ed is the standard text editor."
/bin/ed /usr/ucb/vi /usr/bin/emacs
l o?
And ed doesn't waste space on my Timex Sinclair. Just look:
-rwxr-xr-x 1 root 24 Oct 29 1929
-rwxr-xr-t 4 root 1310720 Jan 1 1970
-rwxr-xr-x 1 root 5.89824e37 Oct 22 1990
Of course, on the system *I* administrate, vi is symlinked to ed.
Emacs has been replaced by a shell script which 1) Generates a syslog
message at level LOG_EMERG; 2) reduces the user's disk quota by 100K;
and 3) RUNS ED!!!!!!
"Ed is the standard text editor."
Let's look at a typical novice's session with the mighty ed:
golem$ ed
?
help
?
?
?
quit
?
exit
?
bye
?
hel
?
eat flaming death
?
^C
?
^C
?
^D
?
---
Note the consistent user interface and error reportage. Ed is
generous enough to flag errors, yet prudent enough not to overwhelm
the novice with verbosity.
"Ed is the standard text editor."
Ed, the greatest WYGIWYG editor of all.
Computer Science is no more about computers than astronomy is about telescopes. --E. W. Dijkstra
Also, it kills me to see *NIX people still using passwords all the damn time. CVS + ssh keys = godlike.
/usr/local over nfs is good too. The only issue is that you may have to configure some packages to use a local filesystem for configuration files, keys, etc.
:)
Things I do. syslog to a common place. I have cloning scripts to dup a machine to a basic setup (poor mans jumpstart but faster and easier).
Perl and sed come in handy. Rsync (again with ssh keys) is good.
Oh yeah,
With these tips and tricks I can do whatever I need to do over a dialup connection anywhere in the world (I've only tested this from coast to coast in the US thought, but I believe it will scale worlwide
netstat -nlp
Turn off all the services you don't need.
vimr l
sudo
apt-get
wget
rsync
ssh
ps
php
pe
make
Jason Lotito
vi for editing perl.
vi for adding perl scripts into crontab.
theres not much else to do
There are four of us who do *nix admin for over 600 *nix machines, more than half of which are linux boxes (both workstations and servers.) SSH with X displayback on a 100Mbit switched network is such a godsend I can't even begin to imagine life without it. I probably generate more SSH sessions in a normal workday than I do HTTP sessions. (Yes, that does include
I also think it's well worth your while to understand SSH's more esoteric tunneling capabilities... Recently I had to support a research group who was doing a demo at JPL and they were behind a very restrictive firewall but needed to do control and image transfer from a robot framework here in Massachusetts, and the researchers who'd coded the software hadn't implemented any kind of authentication layer. We were able to do everything using SSH tunneling over one of the three ports allowed through JPL's firewall (and they could IMAP their mail from our servers as a side bonus) without exposing our servers or JPL to unencrypted protocols of any kind.
Need a UNIX/Linux/network guru in the Boulde
how boring it gets wading through all the posters trying to be clever..?
It's all about subversion . Quite mature - can import former CVS collections, too.
Whatever runs from the bash command line is good enough for me.
No bloated fancy GUI needed, can run remotely over a secure ssh connection, and has all the raw power you need.
I am not a luddite. For some tasks, I will use the GUI tool (e.g. Mandrake Control Center, or Webmin) to do things, when it is faster to do so. But the bulk of what I do is command line.
2bits.com, Inc: Drupal, WordPress, and LAMP performance tuning.
Seriously, you need to have a drive to constantly learn more. That's more valuable than any pre-written config tool out there.
I know that's not what you wanted; but it's really true. A desire to constantly increase your own knowledge is paramount.
Hot Damn! It's the Soggy Bottom Boys!
1. Nagios: monitors your servers/services, amails, pages, sends a carrier pigeon when one goes down.
2. Logwatch: Logwatch is something that should be used by every Unix/Linux SA everywhere. It gives you a daily snapshot of events in your logs
3. Mon: Nice, simple, easy. If your webserver goes down, your secondary can bring up a virtual ip a couple of seconds later. No more annoying three am phone calls
4. Snort/ACID: lets me know if a virus breaks out, or if there are stupid script kiddies trying to brute force their way in.
5. Nessus: run it early, run it often. Figure out any holes you have in your security, and make sure you fix them.
There's more, but you should really do some of your own homework.
RandomAndInteresting.comdefending the world from stupidity since 1979
> CVS + ssh keys = godlike.
Until someone steals your ssh key. Then they will be godlike too.
Sure, ssh keys are convenient, but they don't always replace passwords.
I'm Trappped at Berkeley.
we at the university of michigan use radmind to update and deploy software to our linux environment. it is a great tool that helps us centrally manage our environment and rapidly deploy security updates. update one machine, take a snapshot of the differences, and push it out to 50 machines or more. command line freaks will love it.
learn more at radmind.org
To configure Linux, I refer to the Windows XP blue CD-ROM boot screen AFTER I give up on installing Linux.
Dammit. I hate being a Linux virgin. Or does a semi-successful installation of Mandrake Linux 8.x on a Dell laptop count? No? Still got the Linux cherry? DAMMIT!
IronChefMorimoto
"Kill zcat," sed ed.
"Awk!" sed perl.
"Make sum nice tee, joe," sed man.
Keyboard not found.
Press F1 to continue.
Who exactly is your target audience? People who've never seen UNIX, people who've worked on UNIX environment for years? What is it you are attempting to accomplish with them?
Most of my list would be boring to people who know a lot about UNIX, however some of them are Linux specific.
Plagiarism isn't cool. the original post
Is it like Anger management ?
"more", in its "standard" *NIX form, is forward-scroll only, among many other limitations. "less" takes care of all those limitations. Think if it as "less" is "vi" and "more" is "ex" (or "edlin", from the DOS days if you're unfamiliar with ancient tools).
Until someone steals your ssh key. Then they will be godlike too.
Sure, ssh keys are convenient, but they don't always replace passwords.
Passwords suck. Oh, and I have a 10 character passphrase on my privatekey that sits on my password protected computer.
I would guestimate that the liklihood that a password has been found or guessed or shown up in a plain text file (my ISP used to have a world readable radius logfile that had passwords in it) or sniffed is much greater than someone logging into my laptop (I have no remote services running) or physically beating me up and getting my key and passphrase from me.
I love the classic:
sj (misstyped su)
followed by the root password in plaintext. Gotta love that!
1) Yast (I know it's SuSE centric, but it's being open sourced!)
2) OpenSSH... Oh yeah baby!
3) GCC and make... DUH!
4) FTP...I know I know SFTP if you prefer
5) Perl...YUM and even better with perl expect
6) Bash...we all need a CLI
7) Jumpstart...If you manage a lot of solaris boxes, this is your friend
8) Sendmail or postfix...pick your poison
9) nmap...oh yeah, let the Windows guys drool
10) Nagios...monitor that network in style!
GeneralKael -- Slacker Extraordinaire
UN*X/Linux doesn't work that way. You are looking for a one size fits all administrative interface and it doesn't exist.
/etc. You can use this to write program to update different pieces as needed. Any problem you do, you can undo. You can then run a program or use "kill -HUP" to get a process to reread that configuration.
But I can sum up some the key points and bits of wisdom I have picked up over the years.
1) Ascii text is your friend. 98% of all the configuration files for UN*X programs live in ascii files and they "usually" live in
2) Pick a programming language. Perl, AWK, Sed, ksh, all of them. You can use that programming language to role out changes as needed, or make a lot of changes really quickly. RSH/SSH allows you to do that across multiple systems. Use it carefully!
3) Design your environment. If you know what you are going to be using the servers, workstations and/or Linux embedded appliances for you can better decide how to automate it.
4)"Crunchy Cookie, Liquid Center".
In the end you will be automating certain administrative tasks over and over, but not all of them. That's why one size fits all won't work. It becomes a bloated security hole, so you only automate what you need and you automate it in an original and secure fashion.
As for some rock solid TLA recommendations.
SSH - SSH is your friend and as a replacement for RSH and its ilk you can use it to securely automate tasks. read up on ssh-agent for automating ssh access across multiple machines.
mon - How do you know it's working if you don't test it? You need to turn on monitoring, the more specific the test and monitor the better. mon is a good PERL framework for performing any test, and it has a lot of prepackaged/contributed test scripts that come in handy.
LDAP - Lots of UN*X environments are moving to LDAP to store enterprise wide information. It depends on how big of a UN*X environment you are setting up but having a centralized directory ala LDAP can be quite handy.
PAM/NIS - Plug In Authentication Modules. You can use these to have a centralized authentication server, cuts down on password updates. NIS+ is a tried and true system for stitching UNIX Systems together but I've only seen it installed in 1 UN*X environment and I've worked in several.
If you are looking for a prebuilt system or paradigm like Microsoft Server then you need to look to Redhat, Debian, else you are going to work from the need/application outwards.
Whatever you do more than once you will automate. When you no longer can budget the amount of UN*X Admins you will need you will start to build "tools" to delegate routine tasks, these will eventually become web pages, the web page will become an application. The application will become an acronym. The acronym will become a skill. The skill will become a job requirement HR will use to backfill a position. That's the way it goes.
Enjoy!
"Don't fear death... fear not living..." -me
Ask for the Top Ten tools, and most of your time spent reading the responses will be wasted, because of the overlap of the answers. If people list what they *genuinely* think are the Top Ten, there will be very few answers which are unusual or surprising (and still useful).
I think it would more useful to ask for the Top Ten MOST OVERLOOKED tools, or the most under-used, the most mis-used, or the ones whose full power is forgotten, unrecognized, or unused.
and the console spits out junk until you close that shell.
Just so you know, when you accidentally cat a binary file and it changes all the letters in your console to garbage characters, just blindly type
reset
and hit Enter. Fixes it every time.
Intelligent Life on Earth
If Perl is God, then nobody would be able to understand the bible.
... oh wait.
When I don't have time to figure out goddamn control chars, and just want to edit a config file without having to resort to IRC, man pages, and poor documentation -
I USE FUCKING PICO.
All the commands are right there. On the screen.
Maybe this elitist attitude is why Linux isn't ready for the desktop. Now mod me Troll, bitches.
To me, *nix mastery involves learning a bunch of little tricks. There is no 'grand unified front end' that will do it all. Over time, you'll memorize the ones you use all the time. But some you'll figure out but forget if you don't write them down somewhere (e.g., how to do a 'find' with regular expressions and execute a command on each result). I keep mine in a wiki, a bit haphazzard, but always ready on the web and easy to edit, which means you'll use it.
Oh yeah, learn regular expressions. The O'Reilly book is great. The time investment *will* pay off.
Does it hurt to hear them lying? Was this the only world you had?
I regularly access dozens of *nix systems (mostly linux & solaris). I love the fact that I can enter my privatekey password once on booting my laptop, and then have a tool handle all the ssh-agents in subsequent sessions. Entering one (very long and tangled :) password once is so much nicer than having to enter passwords every time I connect to a new system...
http://www.gentoo.org/proj/en/keychain.xml
Also, (obligatory) perl is great and larry wall is my hero...
RPM records the MD5sum, change time, permissions, and a bunch of other stuff on every file it installs.
/var/lib/rpm.
/mnt/cdrom
This is saved into the RPM database in
You can use RPM as an IDS by backing up the database to a read-only media and then use, for example:
rpm -V coreutils procps net-tools --dbpath
To see if someone's installed a root kit (if someone has, they'll have to at least modify top, ps, and netstat, which are included in these packages).
Unlike tripwire, you're not forever having to update policy files.
What good is your shell without commands? :P
-- Grey d'Miyu, not just another pretty color.
If you look at Mandrake, there's tons of great config tools there:
diskdrake for disk partitioning
harddrake for hardware configuration
userdrake for user configging (or userconf)
XFdrake for X config
mousedrake for mouse config
printerdrake absolutely rules for CUPS, better than localhost:631 if you ask me
drakconf for ALL mandrake tools together
rpmdrake is good for package managing...
Oh and of course linuxconf is still nice! netconf is the network partition of that I think. The list goes on i bet
Berto
Good for you, though it's probably not a great idea to name customers on a public forum like this. Advertising "JPL have exactly 3 open ports on their firewall" isn't the kind of thing they'd necessarily choose to air in public. Just my 2p,
Author, Shell Scripting : Expert Re
-
Task: Add this printer to 200 machines. You have 5 different un*xes (and different versions of each of those around).
- We need to change the sudo file on 200 servers.
- Update
/etc/mail/access on 6 machines in 4 locations (and 3 continents). Oh, we forgot this, do it again.
- Make sure $THIS is in the sybase's crontab on all the sybase server.
- Patch all the Solaris 7 machines with this new patch cluster. It's urgent. (and we have 50 of those machines scattered around the world).
- Change the (locally stored) root password on all the machines we take care of because X just got fired, but we couldn't tell you till now).
- Rebuild the 2 HA database servers (one at a time) and make sure they have the current patches and access to the new partitions on the SAN
vi! webmin. heh.no, nfs is not used
My partner took the Solaris Advanced Certification tests (someone else was paying and what the hell). She screwed up the parts about AdminTool. Someone who'd been using Unix since the 80s. She came home raging: AdminTool!! If I ever hired a senior admin and they kicked up admin tool, I'd fire them before the windows finished opening.
I find these single machine solutions quite quaint.
No, I'm delighted to have my cfengine scripts that go through /etc/ and make sure that inetd.conf is stripped, and that rpcbind and nfs aren't running on standalone servers and that the Right Stuff is in the Right Config files and that permissions are correct.
Best part is that I can run it again anytime later to redo that (or with '-n' to just show me what's changed).
And if it uses CVS to pull down $Today's configs, then so be it.
Seriously, that's the number one configuration tool you could possibly own. It always baffles me how many "Technology Coordinators" or other official IT guys know jack (or less!) about systems administration. These are the type of people you'd never consider giving root to on a server you administer. These are the type of people that don't understand why a server that's a month old would need to have patches and other updates done on any of the hundreds of packages that run on it. (I ran into this comment again just the other day by an "admin") Hands down the best tool available on the market today for Linux system configuration is a half-assed decent administrator. That's one area where you can't afford to be a cheapskate.
Admitedly when I started writing my book (Automating UNIX and Linux Administration) I had barely used cfengine and it was going to be just a small part of my book, but it turned out that I liked it so much that it became one of the major focuses in the book.
I think that even with as few as 5 systems it is worth the effort... especially if the systems are largely similar.
Nano also doesn't depend on any major packages. Pico is part of pine. And I don't want to install an entire email client that I will NEVER use (and have heard terrible things about) just to use a text editor. Nano works out of the box.
I've also heard nano is a smaller executable and runs much faster. I haven't really tested that, however.
Hypocrisy is the 8th deadly sin.
> A is for awk, which runs like a snail ;-)
Yeah, these days we use Perl for that stuff.
> B is for biff, which reads all your mail
Emacs/Gnus takes care of this, thanks. (Yeah, I know that's not really
what biff does, but hey, it's what the poem says.)
> C is for cc, as hackers recall
C is for nursing along old legacy code that hasn't had the good graces to be
rewritten in a real language yet; for new stuff we use high-level languages.
> D is for dd, the command that does all
I must admit that this one is still handy from time to time...
> E is for emacs, which rebinds your keys
Can't live without that...
> F is for fsck, which rebuilds your trees
One word: journaling.
> G is for grep, a clever detective
I admit I still occasionally use this, but Perl's regexen are more powerful.
> H is for halt, which may seem defective
I usually use shutdown or init when I need to do hardware maintenance.
> I is for indent, which rarely amuses
Emacs does this automatically, of course. Has for years.
> J is for join, which nobody uses
Indeed, what does it even do? From a quick look at the man page, it looks
at first glance like a Perl one-liner, give or take a dozen strokes.
> K is for kill, which makes you the boss
I do still use this sometimes.
> L is for lex, which is missing from DOS
Isn't that one of those C things? Its days are numbered.
> M is for more, from which less was begot
With eshell (the Emacs shell), there's no need for a pager any longer.
This letter should now go to man, IMO.
> N is for nice, which really is not
Here's another one I must admit to using occasionally. Also renice.
> O is for od, which prints out things nice
I had to use man to even find out what this does, and then it turns out
to be something I'd almost never use, but if I did need that functionality,
I could do it in a Perl one-liner faster than look up the od manpage again.
> P is for passwd, which reads in strings twice
> Q is for quota, a Berkeley-type fable
Okay, those might still be relevant.
> R is for ranlib, for sorting a table
Definitely a Perl job, that.
> S is for spell, which attempts to belittle
Emacs has ispell/aspell integration these days.
> T is for true, which does very little
Indeed.
> U is for uniq, which is used after sort
Another thing we use Perl for in the modern era.
> V is for vi, which is hard to abort
If you really want vi (*WHY*?), Emacs has a version of it built in.
> W is for whoami, which tells you your name
If you need a program for that, commands aren't going to solve your problems.
> X is, well, X, of dubious fame
Emacs has better colors if you use X. 24-bit. Without it, 16 colors.
> Y is for yes, which makes an impression, and
I suppose...
> Z is for zcat, which handles compression
Most of us use either zip (or Archive::Zip) or gzip (or Zlib) for that now.
We'll say zip, because it starts with z and so won't screw up the poem any
worse than I already have
Cut that out, or I will ship you to Norilsk in a box.
I think rm -rf / is right... [ra@gentoo ~] $ rm --help Usage: rm [OPTION]... FILE...
Yes, but rm FILE [OPTIONS] is much safer. Compare hitting enter to early when deleting a directory.
Man pages are generally unmaintained. Eg, man resolv.conf says the file is generally unnecessary as most machines have a DNS server installed on them.
And I would move to joe if I ever encountered a configuration file that contained anything but US-ASCII, which I have not.
And even if I did (let's say I was looking at a file with messages in multiple languages), nano won't munge the Unicode, it would just ignore it. I definitely wouldn't be using a terminal-based editor when entering text with extended character sets in a document.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
My 10 favorite linux configuration tools? Let's see:
- Left little finger
- Left ring finger
- Left middle finger
- Left index finger
- Left thumb
- Right little finger
- Right ring finger
- Right middle finger
- Right index finger
- Right thumb
Yapp, that sums it up nicely.If a train station is a place where a train stops, what's a workstation?
you can also type 'tack' then q this is the way i fix it