Date post: | 07-Apr-2018 |
Category: |
Documents |
Upload: | girishbhollah |
View: | 219 times |
Download: | 0 times |
of 50
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
1/50
Unit 1 Connecting a Unix server to network and enabling services
1.1 Setting the hostname
The host name is set up when the system is installed. But if not, or if you entered an
incorrect name, you can set it with the command
# hostname s gw.example.org
1.2 Assigning addresses to network interfaces
The kernel detects the interfaces automatically when it start
need to tell it what interfaces are connected to which networks and which address
the system has on each network.
if the network is a broadcast network such as an Ethernet, you need to specify a
range of addresses, which can be reached directly on the network. This selection is
performed with the network mask.
1.3 ifconfig utility
The ifconfig utility is used to assign an address to a network interface and/or
configure network interface parameters.
The ifconfig utility must be used at boot time to define the network address of
each interface present on a machine;
Can be used at a later time to redefine an interface's address or other operating
parameters.
The command to configure an Ethernet interface with a network address is
# ifconfig ep0 inet 220.147.37.5 netmask 255.255.255.0 up
This command tells the interface to use the Internet protocols (the default) and
up tells it to bring it up. The address is class C .
Point to point connection
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
2/50
# ifconfig tun0 139.130.136.133 139.130.136.129 netmask 255.255.255.255
Can be used to set up ppp
Checking configuration
# ifconfig -a
-a flag lists the configuration of all interfaces
1.4 Daemons
These are programs that are not designed to be run with continuous user input
and they disconnect from the terminal at the first opportunity.
There is a convention to name program that normally run as daemons with a
trailing d.
Exception - sendmail
Signals with daemons
SIGTERM is a polite a way of killing a process. It will close all the files it may have
opened and generally finish whatever it is doing at the time before shutting down.
The process cannot ignore SIGKILL
SIGHUP is used to send a hangupsignal to make daemon read a changed file
1.5 inetd The internet daemon
This program should be run at boot time by/etc/rc.
It then listens for connections on certain Internet sockets.
When a connection is found on one of the sockets, it decides what service the
socket corresponds to and invokes a program to service the request.
After the program is finished, inetdcontinues to listen to the socket .
inetdallows running one daemon to invoke several others.
Inetd
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
3/50
Upon execution, inetdreads its configuration information from a configuration file
which by default is/etc/inetd.conf.
A typical entry in this file will be
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd l
#telnet stram tcp nowait root /usr/libexec/telnetd telnetd
Upon execution, inetdreads its configuration information from a configuration file
which by default is/etc/inetd.conf.
A typical entry in this file will be
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd l
#telnet stram tcp nowait root /usr/libexec/telnetd telnetd
Daemons started by inetd
Telnetd
Rshd
Rlogind
ftpd.
Running daemons directly
To runftpddirectly
Add the following line in/etc/rc.local
echo n starting local daemons:
#put your local stuff here
echo ftpd && ftpd -D
Option D tells ftpd to run as a daemon
However you should comment out the ftp line in/etc/inetd.conf by adding a hash
mark (#) in front of it
Either reboot or cause inetdto reread it in the configuration file
#ps waux | grep inetd ( to determine the pid number for inetd)
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
4/50
# kill 1 [pid] (pid number ofinetd
sshd The daemon program for ssh
Secure shell is set of network connectivity tools used to access remote machines
securely. ssh encrypts all traffic to effectively eliminate eavesdropping, connection
hijacking and other network level attacks
Enabling daemons
rc command is used for autoreboot and daemon starting.
When the system starts up/etc/rcfirst reads the description files
/etc/defaults/rc.confwhich contains the defaults for a number of configuration
variables and /etc/rc.confwhich contains your modification to the defaults.
Starting daemons
If the configuration file for a daemon process such as inetdor httpd is changed,
the configuration file is to be reread.
Start and restart will create an outage.
Most daemons however are written to respond to SIGHUP signal.
By sending a SIGHUP signal to the daemon processes, the file will be reread and
the changes in the file will be implemented.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
5/50
Unit 2 Installation of peripheral devices
2.1 Installation of a printer
2.2 Installation of a terminal
2.3 Exercises
2.4 Summary
Important commands in printing
lpr adds a job to a print queue by copying the file into its spooling directory
lpq Lists jobs that are currently in the printer queues.
lprm Delete jobs. Nobody other than root can delete someone elses job from aprint queue
lpd The printer daemon responsible for sending data from spooling directory to a
printer
lpc Administrative interface to printer subsystem.
/etc/printcap file
This file lists all devices serviced by the spooling system.
Usually describes many common printers all commented out.
Colons separate all individual items in a printcap entry
/dev/lpt0 indicates device special file
mx maximum file size
mx # 10000
pl page length in lines
pw page width in characters
Spooling directory
This holds files destined for a particular printer until the daemon lpdcan print
them.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
6/50
Spooling directories are conveniently located in/var/spool
Each printer should have its own spooling directory
Terminals
Terminals provide a convenient and low-cost way of accessing the UNIX system
when you are not at the computer console or a connected network.
Using a terminal attached to an unused serial port, you can log in and run any text
program that you would normally run on the console.
Dumb terminals
Are specialised pieces of hardware that let you connect to computers over serial
lines.
Have the computational power to display send and receive text
Examples : Digital Equipment Corporation VT 100 and Wyses WY-75.
Init process
Responsible for all process control and initialisation at system start up
Reads the /etc/ttys file and start a gettyprocess on the available terminals.
Gettyprocess is responsible for reading a login name and starting the login
program.
/etc/ttys file
The first field normally specifies the name of the terminal special file as found in
/dev
The second field is the command to execute for this line, which is usually getty.
The third field is the type of terminal usually connected to a ttyline
The fourth field specifies if the port should be enabled
The final field is used to specify whether the port is secure. If it is secure, rootlogin
are allowed from this port.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
7/50
Virtual terminals
UNIX is a multitasking system.
PC has only one screen.
In Free BSD, virtual terminals solve this problem.
In text mode you can change up to 12 different screens with the combinations of
Alt key and a function key
UseAlt-F1 toAlt-F12
By default 8 terminals are active./dev/ttyv0to /dev/ttyv7.
The system console is/dev/ttyv0.
Pseudoterminals
FreeBSD offers an additional class of terminals called pseudo terminals.
They come in pairs
a master device also called aptyis used by processors which use the interface and
has a name like/dev/ptyp0or /dev/pty/0.
The slave device looks like a terminal and has name like /dev/ttyp0.
Major and minor device numbers
Major device number is an index into a list of drivers and the minor number is a
number, which the driver uses to distinguish the individual device
Devices can be either block or character type
On block devices , you can store a file system Eg: disk drive, floppy drive
On character devices you cannot store a file system. Printer, terminal
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
8/50
Unit 3 Monitoring Security
examine the different methods of improving the security of UNIX system.
Physical security
Search path issues
Plugging security holes due small mistakes
Using groups more effectively
Minimising the risks from freely available software
Preventing theft and vandalism
Limiting access to the console and cpu unit to prevent someone form crashing thesystem and rebooting to single user mode
Controlling environment factors such as UPS, line conditioners, surge suppressors
Restricting or monitoring other parts of the system like terminals, workstation
cable
Limiting access to backup tapes
Search path issues
Place the current directory and bin sub directory of user at the end of the path list
after the standard location of the commands
Plugging security holes
Do not use/tmp as any users home directory
Think carefully about which users can be supplementary members of the group 0
and any other systems groups. Implications should be correctly understood.
Roots umask should be 057 or more restrictive setting
Using groups more effectively
Creating new groups
SGID access
User private groups
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
9/50
Minimising the risks from freely available software
freely available software should be checked for potential problems
Detecting problems
Checking Password files
Monitoring the file system
Looking for SUID andInvestigate system activity
Monitoring unsuccessful login attempts
History on the root account.
Configuring error logging
SGID files
Checking modification dates and inode numbers
Checking password files
The password file should be examined regularly for potential account-level security
problems.
The master password file or shadow password file should also be checked
Accounts without passwords
# grep ^[^:]*:: /etc/passwd or
# grep ^[^:]*:: /etc/master.passwd
Detecting accounts without password
Accounts with UID or GID of 0 can be located with grep
#grep :00*: /etc/passwd
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
10/50
Checking new accounts
New accounts created can be checked using a diffcommand
# diff /etc/passwd /usr/local/bin/old/wps
Where /usr/local/bin/old/wps is a copy of the password file stored in an obscure
location
Checking ownership of password files
#cd /etc ; ls l passwd master.passwd
Thepasswdfile should be readable and writeable by root and readable by group
and others.
The master.passwdfile or the shadow password file should be readable and
writeable by root only.
Monitoring file systems
Checking file ownership and protection
This will involve
Checking the ownership and protection of important system configuration files
Checking the ownership and protection of important directories
Verifying the integrity of important binary files
Checking modification dates and inode numbers
It is important to check modification times and inode numbers to find if any system
files have been modified
The following command checks inode numbers and modification times for files and
directories starting with rc.
# ls lsid /etc/rc*
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
11/50
Investigating system activity
If you regularly monitor the system you will be able to check for security breaches
It will be worthwhile checking for processes that remain idle for long periods of
time, users logged in at unusual times or from unusual locations and the like.
# ps auxww | head 3
Monitoring unsuccessful login attempts
Repeated unsuccessful attempts for any user accounts can indicate someone trying
to break into the system.
In Free BSD you can see a list of events in
/var/log/auth.log
Some versions of UNIX provide some mechanism for logging all attempts to
become superuser. Such logs can be very useful when trying to track down who did
something untoward
History on the root account.
Give root a shell that can support a history mechanism (the C shell or Korn shell )
Set the number of commands saved across login sessions to a large number in the
roots initialisation file
The different commands executed as root can be traced. C
Copy the history file to some secure location periodically using the cron facility
Configuring error logging
The syslog message logging facility provides a general way to specify where and
how some types of system messages are saved
syslogd collects messages sent by the various system processes and routes them to
the final destination based on instructions given in its configuration file.
/etc/syslog.conf
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
12/50
/etc/syslog
Structure of the file
Facility.level destination
Facilities- kern, mail, lpr, daemon
Severity level emerg, alert, crit, err, notice, info debug, none
Tracking user activities
Use utilities that can determine what users have been doing on the system
Will enable you to track down the cause of a security problem
The lastcommand displays data for each time a user is logged into the system. Last
may also be followed by a list of usernames and/or terminal names
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
13/50
Unit 4 Monitoring system performance
Monitoring the system parameters
Monitoring the system parameters
Monitoring CPU activity
Monitoring Memory use and paging activity
Monitoring CPU activity
UNIX provides the ability to monitor process execution
Allows to a limited extent, specify their execution priorities
Monitoring Memory
A system should have adequate memory not just for the largest jobs but also for
the overall mix of jobs run every day
Paging and swapping are the means by which UNIX distributes available memory
among current processes when their total memory needs exceed the amount of
physical memory
Swapping
Swapping refers to writing an entire process to disk thereby freeing all its memory.
A swapped out process should then be reread into memory from the disk when
execution resumes
Paging
Paging involves moving sections of a processs memory in units called pages to disk
in order to free up memory needed by that process or another one.
Apage faultoccurs when a process needs a page of memory that is not resident
and must be reread it from the disk
Problem with paging
The main problem occurs when there is not enough memory on the system for all
the processes currently running
An appreciable CPU time is spent for page faulting and the whole process is very
inefficient.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
14/50
Uptime command
The uptime command will give a rough estimate of the system load.
#uptime
3:25PM up 2 days, 2:41, 16 users , load average: 1.90, 1.43, 1.33
ps command
The ps command gives a more complete picture of system activity. This utility
gives a report summarising execution statistics for current processes.
ps aux produces a table of all processes, arranged in the order of cpu usage.
ps aux command
USER username of process owner
PID Process ID
% CPU Estimated fraction of CPU consumed.
% MEM Estimated fraction of system memory consumed.
VSZ Virtual memory used in K
RSS Real memory used in K
TT, TTY Terminal port associate with process
STAT Current process state
Top utility
This provides a continuous display of the system status and most active processes
which it automatically updates every few seconds.
-dcount show only countdisplays and then exit. A display is considered one
update of the screen
-stime set the delay between screen update in seconds. Default is 2 secs
-Uusername Show only those processes owned by username.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
15/50
Typical display
Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K
Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out
Priority for processes
Unix has two priority levels
Its nice number, which is the requested execution priority with respect to other
processes. Rootor the processors owner sets this.
Its current execution priority, which is computed and dynamically updated by
the operating system ( shown as PRI)
Nice command
Nice execute a utility at an altered scheduling
Syntax
nice [ -n increment ] utility [argument]
# nice n 5 date
renice alter priority of running processes
# renice 10 -u tjones
Sets the nice value of all processes owned by tjones to 10
# renice n +10 -g users1
Increments the nice number of all processes of the group users1 by 10.
# renice -20 567
Sets the nice number of process ID 567 to -20
Vmstat
vmstat reports certain kernel statistics kept about process, virtual memory, disk,
trap and cpu activity.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
16/50
Unit 5 Downloading and installing programs in UNIX
Learn how to archive and compress files
Use ftp to download files
Set up the UNIX machine on the network
Download a program and install it
Archiving and Compressing files
Tar utility
gzip and gunzip
Tar Utility
stores a number of files and directories into a single file.
designed to read and write data on tape and the name is derived from tape
archive.
can be used for packaging directories and unpackaging them
Options with tar command
a Adds files to an existing tarfile
c Creates a new tarfile
-- delete Deletes a file from tar file
f Name of output tar file
t Lists contents of file
v Produce verbose listing of file processed
x Extracts files from tarfile
z applies compression to tar file using gzip and gunzip
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
17/50
gzip and gunzip
gzip ( gnu zip) command is generally considered a good option for compressing files
gunzip decompresses files compressed by gzip.
Downloading files using ftp
Used to download files directly to your computer from another computer on the
Internet
can be used on the command line of the console or a terminal window
ftp name of a remote site.
FTP download
% ftp ftp.tenon.com
% ftp 206.246.150.88
FTP commands
! Run a shell command
ascii Specify text file downloads
binary Specify binary file downloads
bye Close the open connection and exit ftp
cd nnn Change to directory nnn
close Close the open connection and quit
get file Downloadfile from the current directory of the remote computer
help List help topics forftps commands
? gives a list of commands
open Open connection on a remote computer
pwd Print current working directory on the remote computer
put Send (upload) a file from your computer to the remote computer
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
18/50
Using ftp to download files
Use theftp command from the command line followed by the name of a remote
system.
After ftp connects to the remote computer, the remote computer usually presentsa login prompt.
If you do not have an account, on the remote computer system, type anonymous
at the Name prompt and press Enter. At the password prompt, type your e-mail
address.
Installation of a program
Building programs with make command
The make utility provides a scripting capability to automate the compilation and
linking of files
If the program source comes with a makefile and the documentation says the file
supports Linux, making the program work on your system will be quite easy.
Make command
make < make target >
Make runs only on dependencies which means that certain action must be
completed successfully before the system can carry out another action.
This process is usually implemented to force make to build the program before
initiating the install script
It has built in defaults
Configure
usually walks you through a script to establish the programs configuration and to
configure other files before you can run make and make install.
If the documentation says the program supports configure option, you can run it
by typing make configure or make config depending upon your program
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
19/50
install
To build and install the program, use the make installcommand.
This tells make to build the program and if everything is successful to install its
executable and configuration files in the appropriate directories with the correctpermissions ready for users on your system to use.
Clean
Large program often leave a substantial number of intermediate files lying about in
their source directories, which can consume a significant amount of space.
To make sure that these are cleaned up or to clean up after a failed build of the
program use the command make clean.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
20/50
Unit 6 Building a custom Unix Kernel
Overview of Kernel
There are three layers of the UNIX system.
Hardware
Operating System Kernel
User level program
Functions of Kernel
Kernel manages resources in the UNIX system.
It manages the processes, signals, virtual memory, file systems and network
connections.
All device drivers are linked into the kernel. It translates the request from
processes to device driver instructions.
Advantages of Custom Kernel
Faster boot time.
The kernel will probe only the hardware on your system.
Less Memory usage
Allows operating system upgrade and addition of new device drivers
Configuration file
The configuration file is contained in the directory /usr/src/sys/i386/confand is
named GENERIC
Each line contains a keyword and one or more arguments
An exhaustive list of options and more detailed explanation of the device lines is
present in the LINT configuration file, located in the same directory as GENERIC.
Mandatory fields
machine i386
Type of cpu
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
21/50
ident GENERIC
maxusers n
# Floating point support do not disable
# Pseudo devices the number indicates how many units to allocate
Configuration of custom kernel
Make a list of your system hardware
Get the components required to make a kernel for your system. If it is not already
available, install it from the CDROM.
Make a duplicate of the GENERIC kernel. You may call it MYKERNEL. The generic
kernel will be available in/usr/src/sys/i386/confdirectory
Store a copy of the file MYKERNEL in another directory.
Configuration of Kernel
Build up a configuration file by making necessary changes to MYKERNEL.
Run configuration of the files while you are in /usr/src/sys/i386 directory
Run make depend
Type
# make on the command prompt
Install the kernel.
# make install
The new kernel is installed in the boot directory and the old kernel is saved as
kernel.old.
Test, debug and reboot from the new kernel.
Document the changes
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
22/50
Unit 7
System Initialisation in Linux
Setting initial run-level
The initial run level in Centos Linux can be set by modifying the/etc/inittab file.
The default setting for this Linux is level 5 which starts up the system in multi-user
mode with full networking support with GUI.
Common runlevels and what they mean
0 halt the systems
1- single user mode
2- multi-user mode but with no networking support
3- multi-user mode with full networking support
5 multi-user mode with full networking support and start the graphical user
interface.
id:5:initdefault:
Entry in/etc/inittab shows the default setting in Centos.
Respawning process in Linux
you will learn how to configure a process so that it is respawned or restarted, if it is
terminated for any reason.
The most obvious practical application is to restart virtual consoles when users log
out of them.
The init process may be configured via the/etc/inittab file to run a processforever.
6:2345:respawn:/sbin/mingetty tty6
This line in /etc/inittab tells the init program to start the sixth virtual console
(tty6) whenever Linux is running in run levels 2,3,4 and 5 and to start the program
anytime it stops.
6:2345:once:/sbin/mingetty tty6
The login will not be spawned when a user logs out. It will be run only once
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
23/50
Once changes are made to/etc/inittab files, you need to type
kill HUP 1 or
kill -1 1
showkeys comand
Shows the key code for any keys on the key board.
Type showkeys on the command line and press the key to find its key code
Page up ------ 104
Page down --- 109
Upper arrow --- 103
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
24/50
Unit 8
Managing Linux processes
Displaying parent/child relationships
ps f
you can see PID and PPID values. The PPID is the PID of the parent process
Using the PPID values, you can see the parents of all processes
ps eH
e option selects all processes and the H option produces a process hierarchydisplay. Child process appears below their parents and is indented by two spaces.
ps axjf
The f option causes ps to use graphical characters ( \ and _) rather than spaces to
show the parent/child relationships.
pstree
all the processes on the system arranged in a parent/child hierarchy.
Customising ps output
ps e
-e option tells ps to display all processes. There are four columns: PID, TTY, TIME
and CMD
Other options
-f full listing
-j jobs formt
j job control format
l long listing
s signal format
v virtual memory format
X i386 register format ( only with Intel processor-based system)
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
25/50
Selective listing of outputs
ps eo pid,cmd | more
Displays only PID and CMD columns
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
26/50
Unit 9
Common Administrative tasks in Linux
Configuring virtual consoles
Edit /etc/inittab file to include new virtual terminals
Use the command kill -1 1 to let init know the changes
Check whether these terminals are active using w command
Testing your logging
In this section you will learn about the setting up logging options in
/etc/syslog.conffile in Centos Linux
You can test the syslog logging ( the file is called syslog) to see if it worked the way
you intended when you created or modified the/etc/syslog.conffile.
Syslog file
Entries in/etc/syslog.confhave the following format.
Facility.level destination
Facility is the name of the subsystem sending the message, level is the severity
level of the message and destination is the file, device computer of user name to
send the message to
facilities
kern The Kernel
mail The mail system
lpr The printer subsystem
daemon System Server processes.
auth Login authentication system
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
27/50
Levels in the order of decreasing seriousness
Emerg System Panic
Alert Serious error requiring immediate attention
Crit Critical errors like hard device errors
Err Errors
Notice Non-critical messages
Info Informative messages
Debug Extra Information helpful for tracking down problems
None Ignore messages from this facility
Finding broken links and files with no owners
If there are files with no owners it is likely that they will be allotted to new users
when they are created. There can also be symbolic links that no longer point to a
file.
This section discusses techniques to find such files and links. The commands to
delete unowned files and redundant symbolic links are discussed.
To find all dangling links
# symlinks r / | grep dangling
To remove all dangling links
# symlinks r d /
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
28/50
Understanding date and time stamps of files
Three time stamps for files
ctime
mtime
atime
Helps administrators with housekeeping
How do you determine the time stamp for a file
ls l gives mtime
ls l -time=ctime gives ctime
ls l --time=atime gives atime
How to create an alias to fine all the three time stamps
alias dir=ls l -time=ctime | grep root ;
ls l | grep root ; ls l -time=atime | grep root
When we type dir all the three time stamps are displayed
In Ex 9.4.1 , it should be entered while in /home/betty after creating a file file1
cat file1 changes the atime
Modification of file changes all the three time stamps
Except in cases where the file is opened and read, ctime changes for all instancessuch as the use of chmod, chown, chattr
Study the option +d and +a for chattr
Touch command
By default changes all the three time stamps
Study the a and m options of touch
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
29/50
Unit 10
System Initialisation - Redefining Keyboard Lock/LED Operation
What will you learn in this unit?
To control the state of Caps Lock, Num Lock and Scroll Lock function of your
keyboard for your virtual consoles
By default, these three key locks are off for all virtual consoles.
You must press the lock keys to enable lock.
For example you must press the Num Lock key to put the keyboard in the Num
Lock state where the numeric keypads used for entering numbers rather than
controlling the cursor.
The state is indicated by a corresponding LED
setleds D +num
The Num Lock light or LED should turn on
Num Lock is set back to its default state by running the reset program .
You can also control the state of the associated lights or LEDs independent of the
associated key lock.
For example, you can turn on the caps Lock light or LED regardless of the state of
the keyboards Caps Lock state.
Eg : setleds L +caps turns on Caps Lock light regardless of the state of Caps Lock
state
Use of setleds command
You can set up the light to indicate that the user has mail, the file server cannot be
reached, the user is reaching the limit of his disk space and so forth.
You can run the program anytime you like from the command prompt or a script.
You can also run the program in the system startup scripts to preset the locks to a
known state.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
30/50
Unit 11 File systems in UNIX
File systems
Logical and physical disk drives
File system types
Organisation of directories in UNIX
Mounting a file system
Unmounting a file system
Shutting down a UNIX system
File system
is a collection of files and directories on a disk or tape in standard UNIX file system
format.
Logical drives
A logical drive refers to a subdivision of physical disk, which you can refer to as if itwere a disk by itself
Partitions in UNIX
FreeBSD uses the term partition differently as compared to Microsoft. It refers to
Microsofts partition as slices.
Microsoft designates one slice as the primary Microsoft partition, the C: drive.
Unix partitioning
Unix systems have their own form of partitioning and are not compatible with the
Microsoft methods.
UNIX implements their own partitioning within a single slice (Microsoft partition).
BSD systems define up to 8 partitions per slice
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
31/50
Naming partitions in Free BSD
The device entries are in the directory/dev
The name of the driver comes next. It also indicates whether it is an IDE or SCSI
drive
The first disk is indicated by /dev/ad0.
Next is the partition information. The strict slice name is specified by adding the
letter s (for slice) and the slice number. /dev/ad0s1 indicates slice 1 in first disk.
BSD systems name partitions by appending the letters a to h to the disk name.
Thus the first Unix partition of the first slice (which is typically a root file system)
would be called /dev/ad0s1a.
Partition c is an exception. It represents the whole BSD disk where the FreeBSD
resides.
File system types
ufs is the UNIX Files System.
cd9660 is ISO 9660 CD-ROM format with the so called Rock Ridge Extensions whichenable UNIX-like file names to be used.
nfs is the Network File System which is a means of sharing file systems across a
network.
Microsoft files can be accessed with msdos and ntfs file systems
Organisation of directories in Free BSD
/ rootdirectory
/sbin System executable programs needed at start time - System administration
files
/bin executable programs of general use which are needed at start up time
(binary files)
/dev directory of device nodes
/etc Contains many of the configuration files
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
32/50
/root home directory of user root
/usr/bin common user binaries not required at start time
/usr/sbin System administration programs not needed at start time
/usr/share dictionaries, configuration files for user programs
/usr/share/man manual pages
/var a file system for log files , files which grow or change frequently
/var/spool mail and printer queues
/usr traditionally for users home directories but no longer. Second file system
/usr/local locally installed software
/home home directories of the user
Mounting a file system
Information on a disk slice or partition becomes available for user only after the
kernel has been notified of its existence through the mountcommand
Mounting a file system logically attaches the information stored in that file systemto a specific directory that already exists.
Mounting a file system
Each file system is itself a tree with a root directory.
It can be attached or mounted on any directory in the UNIX tree.
Mounting it on one directory versus another changes the path name of the files
down to the root of the file system but has no effect on the structure of the files
and directories within the file system.
Unmounting a file system
For repair
To save memory resident information about the file
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
33/50
If any part of the file system were used, UNIX would not unmount it.
Some useful commands
df
prints a summary of the free space in all the mounted file systems.
du
Shows the usage of the disk ( Disk Usage )
Shutting down a UNIX system
Shutdown provides an automated shutdown procedure for super users to nicely
notify users when the system is shutting down
Use shutdown [+ time in minutes] command
Options
No options goes to single user mode
Shutdown +1 sends to single user mode in 1 minute
-h halt
-r reboot
shutdown -h now
Shutdown and halt the system immediately
Single user mode
This mode has only one user the person at the console
The user must be at the console.
There is no password protection, so physical security is the only security
Not many processes are running generally- only initand shellyou are using areactive.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
34/50
Generally the prompt is #
Limited set of tools
Getting into single user mode
Set boot flag in the boot program. Typically s represents single user mode.
Boot -s
Once operating system is running , use shutdown command
Getting out of single user mode
CTRL-D will exit and take you into multi-user mode provided there are no
problems with the boot process.
Issue reboot or halt command
Use of a single user mode
There is only one user on the system. There is less activity and less damage if acrash occurs.
It is minimal mode that the system can boot if other file systems are corrupt.
Allows the user to unmount the/usrand other normally busy file systems.
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
35/50
Unit 12
Unit 12 Compiling and linking with gcc
gcc compiler
gcc is a C compiler developed by Free Software Foundation , which has developed a
number of tools for use on a UNIX system
It compiles the source code and assembles the assembly language code .
The compiler produces and invokes the UNIX loader ldto produce an executable
file.
It also includes a compiler for the C++ language.
Fig 12.1 Stages of compilation of gcc
Stages of compilation
Pre-processing
It is this step which resolves directives like #define #include. A separate utilitycalled cpp is used to do the pre-processing
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
36/50
Compilation
This produces assembly language files from the input files. The assembler is usually
invoked right away. So output is not normally saved in files.
Assembly
This takes the assembly language as input and produce object files with .o
extensions.
Linking
In this final stage, the various .o modules are placed in their proper places in the
executable files. The library files are also placed in the file. UNIX compilers perform
this phase by internally invoking the linker, which is called Id.
options
c implies Compile but not link
-g Generates an expanded symbol table for debugging. This option enables
debugging with GNU debugger gdb
-v prints the compilers version number and completer details about how each
pass is executed.
-w Suppress all warning messages
-W produce some additional warning messages about legal ( but questionable )
coding practices.
-Wall Produces even more warning messages about questionable coding
practices
-Werror Make all warnings into errors. Do not attempt to produce an object file ifa warning has occurred.
mainprg.c
#include
void printheading (void), printmaxnum(int m);
int funmax (int m, int n);
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
37/50
int main (void)
{
int a,b,max;
printf("Enter two numbers\n");
scanf("%d%d", &a, &b );
printheading();
max=funmax(a,b);
printmaxnum(max);
return(0);
}
util1.c
#include
int funmax ( int m, int n)
{
if ( m > n)
return (m);
else
return(n);
}
void notused(void)
{
printf ("\n not all functions have to be used \n");
return;
}
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
38/50
util2.c
#include
void printheading(void)
{
printf("This is a multiple source project \n");
return;
}
void printmaxnum ( int m)
{
printf("The larger number = %d\n", m);
return;
}
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
39/50
Unit 13
Awk and Sed utilities
Awk utility
Awkutility is a powerful data manipulation programming language that allows the
user to select lines of input based on specified criteria, take action on the data on
these lines.Awkworks on information arranged in a database file.
General structure of an awk command
The general form of the awkcommand is as follows
command pattern {action} input file
awk /Chicken/ {print} groc_base
Selecting lies with specific patterns
The patterns can be matched by operator (~) for a specific field.
awk $1~/C/ groc_base
selects all lines which have C in the first field.
The caret (^) in a regular expression forces a match at the beginning of a line orfield
awk $2~/^M/ groc_base
selects all lines which have M as the first letter of second field.
The dollar ($) forces a match at the end of a line or field.
awk $2~/eg$/ groc_base
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
40/50
selects all lines which have eg as the last part of a field
Printing a specific field
To print a specific field, specify the first field as $1, second as $2 and so on
awk /Veg/ {print $1 $3 } groc_base
awk /Veg/ {print $1, $3 } groc_base
awk $1~/^[CM]/{print $1, $2, $$3} groc_base
Selecting specific fields
We can select records which satisfy a certain condition using equal to ( = =), greater
than (>), less than ( 1.00 groc_base
Creating a command file
We can create a file which contains the pattern and action. This file can be run with
the awkcommand
Create a file calledprint_dairywhich contains the following line
/Dairy/{print $1,$3}
using catcommand
To run the program enter the following command.
awk -f print_dairy groc_base (-f option tells awkto read a file for its program)
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
41/50
Improving the readability of files
/Dairy/ {
print $1 , $3
}
/Dairy/ {
name = $1
price = $3
print name, price
}
Mathematical operations
The words within print statement can be quoted and operations can be indicated
in the statement. Operations can be indicated with the variables.
The operations are addition (+), subtraction (-), multiplication (*), division (/)
Example of program with mathematical operations
groc1
name=$1
type=$2
price=$3
qty=$4
taxable=$5
discount=0.1
saleprice=price - discount * price
print name, type, saleprice, qty, taxable
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
42/50
To run groc1 use the command
awk -f groc1 groc_base
BEGIN and END patterns
The awk utility performs the action associated with BEGIN before it processes any
of the lines of the data file. The END pattern works in a manner similar to BEGIN
pattern except that awktakes action associated with it after it has processed the
last of its input lines.
Example of begin and end patterns
BEGIN {
print The list of groceries purchased
print --------------------------------------
print Name Type Unit price Quantity Taxable}
{print}
END {
print NR, items were purchased}
Flow control in awk
Awkuses the if, if-else, forand while loops of C language.
We will have a simple example of a if- else loop here
{ if ( $3 < 1.00)
print $1, $4
else
print $3, $4 }
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
43/50
Sed editor
UNIX filter
Takes input from a file but its output is sent to standard output without altering
the original file
Syntax
sed line specifier, editing instructions filenames
Line specifier
You can give a line number or a range of line numbers..
3 -third line
5,10 - lines 5 through 10
10,$ - lines 10 through the last line
You can specify a line for sedby providing a matching pattern enclosed in slashes.
/large/ lines containing string large
/[Pp]at/ all lines containing Pator pat
You can combine two forms of line identification.
2, /talk/ from line 2 to the first mention oftalk
Editing instructions
s (substitute)
p(print)
d(delete)
q (quit)
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
44/50
1i\
text inserts the text before the line 1
2a\
text appends the text after the line 2
Options for sed
-n suppresses the automatic printing of each processed line
-f option followed by a space and filename takes editing commands from anamed file
sed -f edit speech
Commands in editfile are applied to speech
-e option allows the mixing of a command line editing command with commands in a
file
Examples
sedscript1
10 a\
January
sed f sedscript1 months
Appends January after the 10th line
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
45/50
Practice Exercise
Create a file days
Sunday
Monday
-------
Thursday
Add Friday and Saturday after Thursday
sed f addfile1 days
Create the file addfile1
Add a heading for the file using a file addfile2
Days of the week
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
46/50
Unit 14
Testing sedscripts
The command
% sed f sedscr testfile
does not make the change in testfile.
It sends to the screen the lines that were modified and the lines that were
unchanged.
You have to capture this output in a new file if you want to save it.
% sed f sedscr testfile > newfile
The output from the command should not be redirected to the input file. This
would overwrite the input file.
Use the diff program to point out the differences between the two files.
% diff testfile newfile
When the results are verified, a backup copy of the original input file can be made
. you can use the mv command to overwrite the original with the new version.
for x
do
sed f sedscr $x > tmp.$x
done
The shell script testsedautomates the process of saving the output of sed in a
temporary file. It expects to find the script file sedscrin the current directory and
applies these instructions to the input file named on the command line.
The output is placed in a temporary file
The name of the file must be specified on the command line. The shell script savesthe output in a temporary file with prefix tmp
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
47/50
% testsed filename
Diff command
You can also incorporate diff command into the shell script.
add diff $x tmp.$x after the sed command
Modify the file to incorporate the diff command.
#!/bin/sh
for x
do
echo "editing $x: \c"
if test "$x" = sedscr
then
echo "not editing sedscript!"
elif test -s $x
then
sed -f sedscr $x > ./tmp/$x
if test -s ./tmp/$x
then
cmp -s $x ./tmp/$x && echo "file not changed: \c";\
cp ./tmp/$x $x ; echo "done"
else
echo "sed produced an empty file - check your sedscript."
fi
else
echo "original file is empty"
fi
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
48/50
done
echo "all done"
To run runsed, create a sed script named sedscrin the directory where you want to
make the edits. Supply the name and names of the files to edit on the commandline.
%./ runsed chapter1
runsed invokes sed f sedscr on the named files one at a time and redirects the
output to a temporary file. The program then tests this temporary file to make
sure that the output was produced before copying it over the original
The shell script incorporates testsed. The additional lines are intended to test for
unsuccessful runs for instance when no output is produced.
It compares the two files to see if changes were actually made or to see if an
empty output file was produced before overwriting the original.
You should used testsed first to verify your changes before actually making them
permanent with runsed
Create a new program testsedmod, which can do the same task as testsedwhen
you enter the command
% ./testsedmod sedscript1 months
There should be a reference to sedscript1 and months inside the program as $1
and $2
A program prog1
echo $1 $2 $3
echo $1 $2 $3
echo $1 $2
echo $0
After exec permission is given
Run the script ./prog1 one two three
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
49/50
What is the output?
Answer
one two three
one two
prog1
8/4/2019 Unit 1 Connecting a Unix Server to Network and Enabling Services
50/50