6 - System Administration Concepts and Tasks
6 - System Administration Concepts and Tasks
This lecture covers basic system administration concepts and tasks, namely:
The superuser is a privileged user who has unrestricted access to all commands and
files on a system regardless of their permissions. The superuser's login is usually
root. Access to the root account is restricted by a password (the root password).
Because the root account has huge potential for destruction, the root password
should be chosen carefully, only given to those who need it, and changed regularly.
One way to become root is to log in as usual using the username root and the root
password (usually security measures are in place so that this is only possible if you
are using a "secure" console and not connecting over a network). Using root as
your default login in this way is not recommended, however, because normal
safeguards that apply to other user accounts do not apply to root. Consequently
using root for mundane tasks often results in a memory lapse or misplaced
keystrokes having catastrophic effects (e.g. forgetting for a moment which
directory you are in and accidentally deleting another user's files, or accidentally
typing "rm -rf * .txt" instead of "rm -rf *.txt" ).
A better way to become root is to use the su utility. su (switch user) lets you
become another user (at least as far as the computer is concerned). If you don't
specify the name of the user you wish to become, the system will assume you want
to become root. Using su does not usually change your current directory, unless
you specify a "-" option which will run the target user's startup scripts and change
into their home directory (provided you can supply the right password of course).
So:
$ su -
Password: xxxxxxxx
#
Note that the root account often displays a different prompt (usually a #). To return
to your old self, simply type "exit" at the shell prompt.
Page 1 of 7
You should avoid leaving a root window open while you are not at your machine.
Consider this paragraph from a humorous 1986 Computer Language article by
Alan Filipski:
# sync
System startup:
Page 2 of 7
drivers to communicate with hardware devices, mounting file systems
and creating the init process (the parent of all processes). init's
primary responsibility is to start up the system services as specified in
/etc/inittab. Typically these services include gettys (i.e. virtual
terminals where users can login), and the scripts in the directory
/etc/rc.d/init.d which usually spawn high-level daemons such as
httpd (the web server). On most UNIX systems you can type dmesg to
see system startup messages, or look in /var/log/messages.
# fsck filesys
useradd is a utility for adding new users to a UNIX system. It adds new
user information to the /etc/passwd file and creates a new home
directory for the user. When you add a new user, you should also set
their password (using the -p option on useradd, or using the passwd
utility):
# useradd bob
# passwd bob
adduser <username>
Page 3 of 7
# groupadd groupname
groups
# groups username
Linux has a modular, customisable kernel with several switchable options (e.g.
support for multiple processors and device drivers for various hardware devices). It
may happen that some new hardware is added to a Linux machine which requires
you to recompile the kernel so that it includes device driver support (and possibly
new system calls) for the new hardware. To do this, you will need to rebuild the
Linux kernel from scratch as follows:
Look in /usr/src/linux for the kernel source code. If it isn't there (or
if there is just a message saying that only kernel binaries have been
installed), get hold of a copy of the latest kernel source code from
http://www.kernel.org and untar it into /usr/src/linux.
Change directory to /usr/src/linux.
To configure the kernel type either
Now type:
Finally, you may need to update the /etc/lilo.conf file so that lilo
(the Linux boot loader) includes an entry for your new kernel. Then
run
# lilo
to update the changes. When you reboot your machine, you should be
able to select your new kernel image from the lilo boot loader.
crond is a daemon that executes commands that need to be run regularly according
to some schedule. The schedule and corresponding commands are stored in the file
/etc/crontab.
Each entry in the /etc/crontab file entry contains six fields separated by spaces or
tabs in the following form:
Page 5 of 7
minute 0 through 59
hour 0 through 23
day_of_month 1 through 31
month 1 through 12
weekday 0 (Sun) through 6 (Sat)
command a shell command
You must specify a value for each field. Except for the command field, these fields
can contain the following:
You can also specify some execution environment options at the top of the
/etc/crontab file:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
To run the calendar command at 6:30am. every Mon, Wed, and Fri, a suitable
/etc/crontab entry would be:
30 6 * * 1,3,5 /usr/bin/calendar
The output of the command will be mailed to the user specified in the MAILTO
environment option.
You don't need to restart the cron daemon crond after changing /etc/crontab - it
automatically detects changes.
rs:2345:respawn:/home/sms/server/RingToneServer
Page 6 of 7
Here rs is a 2 character code identifying the service, and 2345 are the runlevels (to
find about runlevels, type man runlevel) for which the process should be created.
The init process will create the RingToneServer process at system startup, and
respawn it should it die for any reason.
Page 7 of 7