LPIC 101-102

[top] Accounts useradd -d /home/[username] -m /etc/skel [username] - add a user usermod - modify user userdel - delete user passwd - sets a user password chage - set account expiration policy groupadd [groupname] - add a group groupmod - modify group groupdel - delete group gpasswd - sets a group password newgrp - switch between groups /etc/profile - global shell settings /etc/skel - skeleton home directories chmod - change permissions (can only be run by root or owner of file) chown - change ownership chown .[group] filename - change group chgrp - change group


[top] Apache # /etc/init.d/apache reload - same as apachectl restart


[top] Backups cpio - dump - restore - used to restore dump archives dd - makes an exact copy of a partition


[top] Boot Loaders LILO (Linux Loader) /etc/lilo.conf - if changed type "lilo" to re-install boot sector - type "lilo -u" to uninstall lilo from the bootsector GRUB (Grand Unified Boot Loader) /boot/grub/grub.conf OR /boot/grub/menu.lst - no need to re-install once changes are made, only after installing GRUB - hd0,0 = first partition on first disk (hda1) - hd0,4 = first logical partition on first disk (hda5) - fd0 = floppy drive


[top] Clocks /etc/localtime rm /etc/localtime ln -s /usr/share/zoneinfo/US/Eastern localtime hwclock --set --date "" - set hardware clock hwclock --hctosys - set software clock to hardware clock hwclock --systohc OR hwclock -w - set hardware clock to software clock date MMDDhhmmYYYY - set software clock NTP - /etc/ntp.conf /etc/init.d/ntpd restart ntpq - verify an NTP server is functioning properly ntpdate [ntp host] (deprecated) instead use ntpq -g


[top] Cron anacron - keeps a record of programs it should run & how frequently if a time interval greater than a program's executation interval has passed, it runs /var/spool/cron/tabs - user crons are stored here /etc/cron.allow /etc/cron.deny /etc/crontab - system cron jobs format: minute hour dom month dow (0 or 7 = Sunday) user command /etc/cron.interval - scripts run at certain intervals crontab - utility to create user cron jobs at - run a job once at a specified time at [command] [MMDDYY/noon/teatime (4pm)/midnight]


[top] DNS named - program for BIND /etc/named.conf - config for BIND # /etc/init.d/named reload - do if changes are made to BIND


[top] Documentation http://www.tldp.org - The Linux Documentation Project


[top] /etc /etc/issue - displays message above login: prompt /etc/issue.net - same as above but for telnet clients /etc/motd - message of the day (GUIs do not display typically) /etc/services - service ports


[top] Filesystems fsck - check a filesystem for errors /etc/fstab - filesystem table tuning ------ dumpe2fs - retreive info about current config. for filesystems tune2fs - change filesystem parameters reported by dumpe2fs debugfs - dumpe2fs, tune2fs plus others all rolled into one journaling filesystems ---------------------- ext3fs, ReiserFS, XFS, JFS disk quotas ----------- /etc/fstab - add usrquota OR grpquota options edquota - edits user quotas quotacheck - verifies & updates quota information (run as a cron job) repquota - summarizes quota info quota - similar to repquota od - used to view binary data ln -s - if file removed link points to, link becomes a broken link ln - if file is removed so is hard link create an ext3 filesystem: -------------------------- mkfs -t ext3 /dev/hda1 mke2fs -j /dev/hda1 (the -j option adds the journalling required for ext3) mkfs.ext3 /dev/hda1 Must reside on root: -------------------- /etc, /lib, /root, /sbin Would NOT want in backups: -------------------------- /dev, /tmp, /proc


[top] Firewalls ipfwadm ipchains iptables (Newer, prefered)


[top] Hardware BIOS (Basic Input/Output System) - provides config tools and initiates booting process /proc/ioports - IO addresses used /proc/interrupts - IRQs used (0 - 15) /proc/dma - DMA channels used /proc/bus/usb/devices OHCI (1.x, ohci-hcd.ko) - Compaq, non-Intel, non-VIA chipsets, add on cards UHCI (1.x, uhci-hcd.ko) - Intel, VIA chipsets EHCI (2.0, ehci-hcd.ko) - newer devices /proc/scsi/scsi - attached SCSI devices setserial - displays/configures serial modem settings (/dev/ttyS0) pnpdump - displays current configurations for isa pnp devices (pnpdump > isapnp.conf) isapnp - makes changes to isapnp.conf and then issues this command to put changes input af fect (isapnp isapnp.conf, must be done at every boot) setpci - configures a pci device lspci - list pci device settings lsusb - list usb device settings usbmodules --device /proc/bus/usb/005/004 - displays what driver is associated w/ a specif ic usb device usbmgr (/etc/usbmgr, /etc/usbmgr/usbmgr.conf) \__ manages usb dev ices hotplug (/etc/hotplug, /etc/hotplug/usb.usermap, 2.4.x kernel support) / SCSI ids (8 bit) - 0-7 (7 high , 0 low priority) ( 7->0 ) SCSI ids (16 bit) - 0-15 (7 high , 8 low priority) ( 7->0, 15->8 ) sndconfig - configure sound cards hda1 - master, primary, channel 1 hdb1 - slave, primary, channel 1 hdc5 - master, logical, channel 2 hdd5 - slave, logical, channel 2


[top] Hot Keys CTRL+ALT+F1 - exit X-Windows to command prompt CTRL+ALT+F7 or F8 - return to X-Windows CTRL+ALT+BACKSPACE - restart X-Windows (ps ax | grep X ; kill PID - Debian)


[top] Kernel uname -a - get all kernel info lsmod - list installed kernel modules depmod - rebuilds the module dependancies file (/lib/modules/kernel-version/modules.dep) for the modules in the current kernel's module's directory insmod - insert a single module into the kernel rmmod - unload a single kernel module modinfo - get module info. modprobe - loads a module into the kernel + any depended upon modules (/etc/modprobe.conf) /etc/modules.conf - holds module aliases module-update (Debian) - using /etc/modules.d rebuilds /etc/modules.conf make config - executes a command line oriented view allows you to respond interactively du ring the kernel build make xconfig - can be used to load an X-based interface for interacting with during the ke rnel build. make dep - dependencies for the kernel can be created using this command create a custom kernel ---------------------- 1) goto www.kernel.org 2) download linux-version.tar.bz2 download linux-version.tar.bz2.sign 3) verify authneticity gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E gpg --verify linux.2.6.11.10.tar.bz2.sign linux.2.6.11.10.tar.bz2 4) unpack cd /usr/src tar -xvjf linux.2.6.11.10.tar.bz2 rm linux ln -s linux.2.6.11.10 linux 5) configure cd /usr/src/linux.2.6.11.10 a) adapt old configuration (best method) cp old_kernel_dir/.config . make oldconfig b) text-mode config (tedious, last ditch method) make config c) text-mode menu config make menuconfig d) GUI config make xconfig (functionally same as make menuconfig) 6) compile make --> /usr/src/linux/arch/i386/boot/bzImage 7) put files in place cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.6.11.10 cp /usr/src/linux/System.map /boot ; make modules_install (optional) 8) configure boot loader LILO vi /etc/lilo.conf copy new working stanza in for new kernel section modify label= line to give copy a new name modify image= line to point to new kernel type lilo -> MBR GRUB vi /boot/grub/menu.lst (grub.conf on RH) grub-install /dev/hda OR '(hd0)' -> MBR grub-install /dev/hda1 OR '(hd0,0)' -> boot sector dmesg - /var/log/dmesg


[top] Libraries /etc/ld.so.conf - edit this file to make system wide changes to library configurations and then type ldconfig ldd - check which libraries a program uses ldconfig - updates the /etc/ld.so.cache. ld.so or ld-linux.so reads this when trying to l oad libraries reads the /etc/ld.so.conf file processes /lib & /usr/lib only


[top] Login Files LOGIN ===== 1) /etc/profile 2) ~/.bash_profile OR ~/.bash_login OR ~/.profile LOGOUT ====== 1) ~/.bash_logout LOGIN (SHELL) ============= 1) ~/.bashrc 2) ~/.inputrc (keybindings)


[top] Logs syslogd - log daemon /etc/syslog.conf priority codes - debug, info, notice, warning (warn), error (err), crit, alert, panic (eme rg) logrotate - rotates logs /etc/logrotate.conf


[top] Mail sendmail -------- /etc/mail/sendmail.cf - config file (very hard to understand) /etc/mail/sendmail.mc - used to generate the sendmail.cf file /etc/aliases - holds username translations newaliases - creates aliases.db from /etc/aliases (aliases.mc) /etc/mail/access - controls mail relaying # m4 < myconfig.mc > sendmail.cf - configure sendmail (edit myconfig.mc first) # /etc/init.d/sendmail reload /etc/mail/local-host-names - add hostnames to accept email from here mailq - check mail queue sendmail -q - force sendmail to send all messages in the mail queue /var/spool/mqueue - mail queue


[top] Man man [section] topic /etc/man.conf MANPATH


[top] Miscellaneous Commands tee nl pr nice - starts a process at a certain priority level renice - changes the priority of a running process ("top" can too) cat - display file tac - display file in reverse order sed tr file - indicates what type of file su - switch user sudo - run command as another user



[top] Networking nmap - does a basic check for open ports nmap -sT [host] nslookup - does dns lookups (deprecated) host - replaces nslookup dig - more flexible than host whois - lookup domain name information /etc/hosts - set /etc/hostname - set computer name /etc/resolv.conf - specify name servers setup a static IP (what you need) --------------------------------- - new IP Address - netmask - 1-3 DNS server IPs - gateway (router) address DHCP pump dhcpclient dhcpcd PPP pppd - deamon /etc/ppp/pap-secrets /etc/ppp/chap-secrets /usr/share/doc/ppp-2.4.2/scripts ppp-on - start connection ppp-on-dialer - start connection ppp-off - break connection /etc/ppp/options - pppd options /etc/ppp/ip-up \__ executed by pppd behind the scenes /etc/ppp/ip-down / wvdial - tex mode front end to pppd /etc/wvdial.conf ~/.wvdialrc ifconfig - display/set network hardware settings ifconfig wlan0 ifconfig wlan0 up 192.168.1.105 netmask 255.255.255.0 ping -c 4 xavier - send 4 packets to xavier route - setup route for traffic beyond your network route add default gw [ip] traceroute -n xavier - sends 3 packets between your system and target system netstat - swiss army knife netstat -ap netstat -i - interface such as ifconfig netstat -r - routing table similar to route netstat -M - NAT netstat -p - programs using network connections /etc/protocols - service protocols /etc/services - ports numbers for service types tcpdump - packet sniffer /etc/services - common services & ports 20 - FTP (data) 21 - FTP (control) 23 - Telnet 25 - SMTP (Simple Mail Transfer Protocol) 53 - DNS (Domain Name Service) 80 - HTTP (HyperText Transfer Protocol) 110 - POP3 (Post Office Protocol version 3) 119 - NNTP (Network News Transport Protocol) 143 - IMAP (Internet Message Access Protocol) 161 - SNMP (Simple Network Management) DHCP - can be used to automatically issue IP addresses, or you can enter them manually. IP addresses - are 32-bit entities given as four octets separated by periods. The first oc tet identifies the class of the network: * 1-126 is Class A * 128-191 is Class B * 192-223 is Class C The IP addresses must be unique within the world in which they communicate. If the host is connected only to two other computers, then the address need only be unique among the oth er computers; if the computer is connected to the Internet, the address needs to be unique within the world. There are a number of private IP addresses set aside for use by private networks. One priv ate range exists within each class, and these include: * 10.x.x.x for Class A * 172.16.x.x - 172.31.x.x for Class B * 192.168.x.x for Class C The subnet mask, also known as the netmask, identifies whether a host to be reached is loc al or on a remote network, The default subnet mask for Class A addresses is 255.0.0.0; for Class B is 255.255.0.0; for Class C is 255.255.255.0. 225.0.0.0 (172.16.10.1/8) 225.225.0.0 (172.16.10.1/16) 225.225.225.0 (172.16.10.1/24) 225.225.225.225 (172.16.10.1/32)


[top] NFS /etc/exports - shared directories and the list of hostnames that may access it # mnt -t nfs challenger.luna.edu:/opt /share/opt


[top] Package Managers RPM rpm - installs, upgrades or uninstalls RPMs (typically red hat) rpm -V [package] - does package verification rpm --nodeps - do not perform dependancy checks rpm -F - update package only if any earlier version exists Debian dpkg - installs a single or group of packages (typically debian) apt-get - retrieves installation software from internet or media drives. Can update en tire system. dselect - menu driven interface to apt-get apt-get update - updates packages apt-get dist-upgrade - upgrades system dpkg --configure [pkg].deb - configures package alien - converts between package types (rpm, deb, stampede, tarballs) rpm2cpio - converts rpm -> cpio acrhive. Enables users of non-rpm systems to access files in an RPM.


[top] Partitions primary partitions (4) extended partition - single partition logical partitions - partitions contained within the extended partition 0x82 (82) = linux swap partition 0x83 (83) = linux filesystem partition 0x0f, ox05 = linux extended partitions fdisk - used to partition/examine disks mkfs - creates a filesystem mkswap - creates swap space


[top] Passwords /etc/passwd /etc/group pwconv ; grpconv - creates shadow passwords /etc/shadow /etc/gshadow pwunconv ; grpunconv - undoes shadow passwords


[top] Printing lp commands lpr - submits a printing job lpq - display print queue info lprm - remove print jobs from queue lpc - starts, stops and re-orders job within print queue cups commands lpc - basically same as above but more limited lpmove - move one a print job from one queue to another /var/spool/lpd - lp queue /var/spool/cups - CUPS queue lpd - lp print deamon lpd.perms - sets permissions for lpd service lpd.conf - used to configure the lpd service cupsd - cups priont daemon /etc/rc.d/init.d/lpd restart ghostscript - takes postscript input, parses it and produces output in dozens of bitmap fo rmats smart filter - determines type of output (such as postscript) and sends it through the app ropriate programs (such as ghostscript) /etc/printcap - lp define printers file here, read once at startup by lpd /etc/cups - cups define printers directory /etc/cups/printers.conf - cups define printers file /etc/cups/cupsd.conf - cups server config


[top] Runlevels /sbin/init <- /etc/inittab 0 - shutdown system 1 - single user mode 2 - full X multi-user (Debian) 3 - full console multi-user (Others) 4 - undefined 5 - full X multi-user (Others) 6 - reboot - chkconfig --list OR chkconfig --list [service name] - checks runlevel status - ntsysv - menu to configure current runlevels - runlevel - determine current runlevel (first char is prev. run level, second is current) - init [runlevel] - immediately change runlevel - telinit [runlevel] - same as init but given the [qQ] option will re-read /etc/inittab fo r any changes (init will accept this as well, since telinit is usually just a symbolic link) - shutdown now - puts system into single user mode immediately (better for multi-user syst ems than using init 1) - halt reboot poweroff


[top] Samba /etc/samba /etc/samba/smb.conf SWAT - Samba Web Administration Tool (launched from super server) # /etc/initd.d/xinetd reload - do if changes are made to SWAT


[top] Search (s)locate [string] Searches for all files containing specified string.
Works from a database (updatedb used to update database).

find . -name [string] find . -name -exec grep blah {} \; Finds files in specifed directory trees.

whereis [string] Searches a pre-defined, restricted set of directories (/sbin, /lib, /us r/share/man).
A quick way to find executables, documentation or config files.

which [string] Searches PATH and returns complete path to first instance it finds (wea k)


[top] Security tripwire - records info about all important files on computer /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt /etc/tripwire/tw.cfg /etc/tripwire/tw.pol /etc/tripwire/twinstall.sh tripwire --init (create binaries) tripwire --check (check current state of system against db) tripwire --update (update db, incase package is upgraded) chkrootkit - scans for viruses chkrootkit /etc/security/limits.conf - system PAM limits /etc/nologin - if present only root can login


[top] Shell set -o noclobber - prevent overwriting of files $PS1 - environmental variable which holds the prompt


[top] Signals HUP 1 exit hangup or death of process INT 2 exit interrupt from keyboard KILL 9 exit this signal may not be blocked, kill process TERM 15 exit teminate process


[top] SSH /etc/ssh/ssh_config - ssh configuration file /etc/init.d/ssh reload # ssh-keygen -q -t rsal -f /etc/ssh/ssh_host_key -C '' -N '' # ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C '' -N '' # ssh-keygen -q -t rsal -f /etc/ssh/ssh_host_dsa_key -C '' -N '' - do only if computer does not have these keys already ~/.ssh/authorized_keys - put public keys here so won't have to login from remote server # ssh-keygen -t rsa - create a rsa key pair # ssh-keygen -t dsa - create a dsa key pair


[top] Super Server inetd TCP Wrappers - called by inetd o checks for client authorization (/etc/host.allow, /etc/host.deny) o then calls server program once auth. established xinetd - /etc/xinetd.conf -> /etc/xinetd.d /etc/rc.d/init.d/inetd restart /etc/rc.d/init.d/xinetd restart


[top] SysV Startup Scripts - /etc/init.d/rc [0-6] - runs the respective scripts in /etc/rc.d/rc[0-6].d - S scripts start K scripts stop - scripts are run in numeric order based on numeric script name - chkconfig - /etc/rc.d/init.d/server [start/stop/restart]


[top] SUID/SGID/Sticky Bit Values 4000 = SUID \__ 6000 = SUID + SGID \ 2000 = SGID / |--- 7000 = SUID + SGID + sticky bit 1000 = sticky bit /


[top] VI Modes: insert mode command mode ex mode Commands: k - up j - down h - left l - right ^ - beginning of line $ - end of line 1G OR :0 - goto start of file G OR :$ - goto end of file nG - goto line # a - append here A - append at end of line J - join 2 lines i - insert here I - insert at start of line R - overstrike o - open line below current line O - open line above current line p - put yanked line below current line u - undeo last change U - undo all changes x - delete character yy - yank line :%s/str1/str2/g - substitute string str1 to string str2 globally /pattern - search pattern n - repeat previous search N - repeat previous search in reverse n1,n2tn3 - copy lines from line n1-n2 and put after line n3 n1,n2mn3 - move lines from line n1-n2 and put after line n3 :q - quit :q! - quit w/o save :x OR :wq - save & quit

File: ~/.exrc

set number : sets numbering


[top] X-Windows xf86config - crude & text based to create X configuration (XFree86) XF86Setup - GUI used to adjust settings (XFree86) Xconfigurator - text based menu to create X configuration ( xorgcfg - (X.org) config files ------------ XFree86 <= 3.36 - /etc/X11/XF86Config or /etc/XF86Config XFree86 >= 4.x - /etc/X11/XF86Config-4 or /etc/XF86Config-4 X.org-X11 - /etc/X11/xorg.conf xdm - /etc/X11/xdm/xdm-config - /etc/X11/xdm/Xresources (greeting) user selection - gui, ~/.xinitrc OR ~/.xsession - display bar:0 - set a display parameter for an application - export DISPLAY=192.168.4.5:0 - output display on machine 192.168.4.5 telinit 3 - runlevel 3 (X does not start automatically at boot) telinit 5 - runlevel 5 (/etc/init.d/xdm start - Debian) startx - start X windows