Source Code, Object Code, Binary Code, Library
The source code for a program is the raw, un-processed by the compiler, file. Written in a programming language and used to further develop the software. The object code is produced by the compiler. It is generally a sequence of instruction that is used within the running the code. The Binary code is the machine language that is the final output of the compiler. This is actually was produces the desired results by the source code. The Library is the standard set or characters used in the correct syntax to tell the compiler what is needed to do.
Source Code example
#include<stdio.h> int main() { printf("yo dude"); return(0); }
Pattern Matching
Pattern matching is using the syntax of search programs to find conditions that meet the requested quarry. The most commonly used program for searching is the grep command. Taken from the man pages, Grep is defines as, “Grep searches the named input FILEs (or standard input if no files are named, or the file name - is given) for lines containing a match to the given PATTERN”.
Syntax for grep
grep 'word' filename grep 'string1 string2' filename cat otherfile | grep 'something' command | grep 'something' command option1 | grep 'data' grep --color 'data' fileName
Example taken from another source
grep -v bash /etc/passwd | grep -v nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt news:x:9:13:news:/var/spool/news: mailnull:x:47:47::/var/spool/mqueue:/dev/null xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false rpc:x:32:32:Portmapper RPC user:/:/bin/false nscd:x:28:28:NSCD Daemon:/:/bin/false named:x:25:25:Named:/var/named:/bin/false squid:x:23:23::/var/spool/squid:/dev/null ldap:x:55:55:LDAP User:/var/lib/ldap:/bin/false apache:x:48:48:Apache:/var/www:/bin/false
Regular Expressions
The term regular expressions is speaking about a set of characters that make up the words of patterns of a search. These are used when looking for specific strings of text that match the quarry. This is very much like the explained grep command earlier but focuses us into the actual, expression, wording used.
For example
grep -i man heroes.txt
We are searching for any string that meets the expression “man” in the text file “heroes.txt”. The output is the following.
Catwoman Batman Spider Man Wonder Woman Ant Man Aquaman Martian Manhunter
Filtering
In Unix a filter is a way of using commands and pipes command that can manipulate the output of file. Two of the most powerful and popular Unix filters are the sed and awk commands.
The “sed” command allows us to look search a file and replace characters. For example in the following junk file. I have call cat to present the contents of the file. I then use a pipe to link in the sed command. Sed then looks as what is being outputted by cat and finds anything that is an “e” and replaces it with “E”.
$ cat junk.txt | sed -e "s/e/E/" corE worm sEed jEwel
Shell Scripting
Shell scripting is a way that you can automate routine tasks. It allows the user more flexibility and control over the operation of the system.
Following example from the SSH manual. You can see by this example, that the more complex shell scripts take on the look and feel of the C programming language. We have presented a list and are going to work through the list.
#!/bin/sh fruitlist="Apple Pear Tomato Peach Grape" for fruit in $fruitlist do if [ "$fruit" = "Tomato" ] || [ "$fruit" = "Peach" ] then echo "I like ${fruit}es" else echo "I like ${fruit}s" fi done
Output of the script
I like Apples I like Pears I like Tomatoes I like Peachs I like Grapes
networking, UNIX Networking Tools
I love networking.. and there are many flexible tools with unix. Networking is the communication between computers. It is bringing those computers together to share resources, make work groups or just set up a game of QuakeIII.
Some common commands
Examples from the lab46 side
ab46:~$ hostname lab46 lab46:~$ ifconfig -bash: ifconfig: command not found lab46:~$ nslookup -bash: nslookup: command not found lab46:~$ telnet telnet> lab46:~$ lab46:~$ finger Login Name Tty Idle Login Time Office Office Phone jdavis34 Joshua Davis pts/22 1d Mar 6 12:57 (cpe-67-252-69-1:S.0) jdavis34 Joshua Davis pts/88 5d Mar 29 16:18 (cpe-67-252-69-1:S.3) jjohns43 Jeffrey Johnson pts/24 18d Jan 23 12:18 (cpe-74-65-82-173:S.0) jjohns43 Jeffrey Johnson pts/82 18d Feb 27 11:03 (cpe-74-65-82-173:S.0) jpettie Jacob Pettie pts/5 Mar 8 18:05 (pool-96-247-148-158:S.0) jpettie Jacob Pettie pts/31 46d Mar 6 14:35 (pool-96-247-148-158:S.1) jpettie Jacob Pettie pts/35 5d Mar 20 14:43 (pool-96-247-148-158:S.8) jpettie Jacob Pettie pts/44 38d Mar 6 16:39 (pool-96-247-148-158:S.3) jpettie Jacob Pettie pts/77 47d Mar 13 11:22 (pool-96-247-148-158:S.4) jpettie Jacob Pettie pts/75 56d Mar 6 15:17 (pool-96-247-148-158:S.2) jpettie Jacob Pettie pts/95 1:31 Mar 8 11:00 (pool-96-247-148-158:S.7) jpettie Jacob Pettie pts/91 40d Mar 8 10:58 (pool-96-247-148-158:S.5) jpettie Jacob Pettie pts/92 40d Mar 8 10:59 (pool-96-247-148-158:S.6) mfaucet2 Mason Faucett pts/65 1:06 Mar 22 13:17 (172:S.0) skinney1 Shane Kinney pts/55 May 1 11:54 (65-124-85-125.dia.static.qwest.net) squirrel Pressly Dowler pts/8 12d Apr 19 22:53 (softscope.lair.lan) tgalpin2 Tyler Galpin pts/12 11 Jan 30 21:25 (:pts/72:S.0) tgalpin2 Tyler Galpin *pts/72 11 May 2 11:06 (172.16.192.234) thakes3 Thomas Hakes pts/41 2d Apr 27 22:48 (172.16.198.198:S.0) thakes3 Thomas Hakes pts/62 2 May 2 10:43 (172.16.198.198:S.2) thakes3 Thomas Hakes pts/68 17 May 2 10:44 (172.16.198.198:S.3) thakes3 Thomas Hakes pts/2 3 Apr 30 11:36 (172.16.198.198:S.1) wedge Matthew Haas *pts/14 1 May 2 08:49 (telstar.lair.lan) lab46:~$ finger wedge Login: wedge Name: Matthew Haas Directory: /home/wedge Shell: /bin/bash On since Wed May 2 08:49 (EDT) on pts/14 from telstar.lair.lan 1 minute 34 seconds idle (messages off) Mail last read Wed May 2 09:49 2012 (EDT) Plan: ---------------------------------------------------------------------------- Lab46 System Administrator
FYI, that is a pointing finger.. not the one that goes up but strait out… lol
Security
Security on a Unix system comes from a few areas of concentration. Using permissions for users and groups is one way to keep key areas of the system out of the reach of unwanted side effects. Another way is to use smart passwords. Insuring that passwords are change every 3 months, are unique and have both alpha and numeric elements. When it comes to a Unix server patching is the most frequently used method. Finding exploits and deploying methods to fix the seen threat. Other best practices are firewalls, iptables, white/black lists etc.
Use of the lsof commands that shows a list of open files and what or who opened them.
lab46:~$ lsof | less COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd unknown /proc/1/cwd (readlink: Permission denied) init 1 root rtd unknown /proc/1/root (readlink: Permission denied) init 1 root txt unknown /proc/1/exe (readlink: Permission denied) init 1 root NOFD /proc/1/fd (opendir: Permission denied) kthreadd 2 root cwd unknown /proc/2/cwd (readlink: Permission denied) kthreadd 2 root rtd unknown /proc/2/root (readlink: Permission denied) kthreadd 2 root txt unknown /proc/2/exe (readlink: Permission denied) kthreadd 2 root NOFD /proc/2/fd (opendir: Permission denied) migration 3 root cwd unknown /proc/3/cwd (readlink: Permission denied) migration 3 root rtd unknown /proc/3/root (readlink: Permission denied) migration 3 root txt unknown /proc/3/exe (readlink: Permission denied)
Use of the netstat command showing current connected protocols and their state.
lab46:~$ netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:35801 *:* LISTEN tcp 0 0 *:nfs *:* LISTEN tcp 0 0 *:3939 *:* LISTEN tcp 0 0 *:3333 *:* LISTEN tcp 0 0 lab46.offbyone.lan:5000 *:* LISTEN tcp 0 0 lab46.offbyone.lan:5007 *:* LISTEN tcp 0 0 *:59343 *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:csync2 *:* LISTEN tcp 0 0 lab46.offbyone.lan:4242 *:* LISTEN tcp 0 0 lab46.offbyone.la:60002 irc.offbyone.lan:ircd ESTABLISHED tcp 0 0 lab46.offbyone.la:41572 auth1.offbyone.lan:ldap ESTABLISHED tcp 0 0 lab46.offbyone.la:47089 irc.offbyone.lan:ircd ESTABLISHED tcp 0 0 lab46.offbyone.la:47998 irc.offbyone.lan:ircd ESTABLISHED tcp 0 0 lab46.offbyone.la:42140 auth1.offbyone.lan:ldap ESTABLISHED
X Window System
The X Window System, X11, is the basic graphical user interface (GUI). X11 sits between the computer and the user acting like a translator. Taking the input from the user in the form of the mouse and keyboard and translating it to changes within the system.
Example of a GUI
Utilize the ntpq command
The ntpq command is a utility program that monitors the NTP deamon, ntpd. NTPQ stands for Network Time Protocol Query. It runs and interactive mode by using the command line and can write variables. “Ntpq uses NTP mode 6 packets to communicate with the NTP server, and hence can be used to query any compatible server on the network which permits it”, Man pages.
Research, discover and implement.
The ntpq command give and output requesting arguments.
lab46:~$ ntpq ntpq>
Check to make sure that the deamon is monitor is running. The following pgrep will feed back the process code ot ntpq.
lab46:~$ pgrep ntpd 961
The -p arguments shows the servers and their sink…
lab46:~$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *juicebox.lair.l 116.204.3.124 2 u 385 1024 377 0.742 -0.054 4.615 caprisun.offbyo .STEP. 16 u - 1024 0 0.000 0.000 0.000
Well… nothing really amazing with ntpq. I did find out a fun new command so mission done.
Perform the following steps:
I am going to reinact the double connection by thakes.
http://lab46.corning-cc.edu/opus/spring2012/thakes3/start#experiment_4
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Answer the following:
Answer the following:
Perform the following steps:
I am going to do asowers xfc4 panel experiment.
http://lab46.corning-cc.edu/opus/spring2012/asowers/start#experiment_1
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
First I needed to attain my IP then I attempted to bring me up
lab46:~$ ssh -X skinney1@192.168.1.112 ssh: connect to host 192.168.1.112 port 22: Connection timed out
attempt to bring panel
lab46:~$ sudo xfce4-panel [sudo] password for skinney1: skinney1 is not in the sudoers file. This incident will be reported.
Answer the following:
Perform the following steps:
I am going to retest Brain Robbins play on the break command.
http://lab46.corning-cc.edu/opus/spring2012/brobbin4/start#experiment_1
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
No additional research was needed.
Answer the following:
Answer the following: