CST8207 Week 03 Notes
absolute and relative paths, ROOT and HOME, finding files

Ian! D. Allen – www.idallen.com

Winter 2018 - January to April 2018 - Updated 2018-04-04 12:11 EDT

1 Readings, Assignments, Labs, Tests, and ToDoIndexup to index

1.1 Read (at least) these things (All The Words)Indexup to index

  1. Week 03 Notes HTML – this file – Read All The Words
  2. File System and Pathnames – ROOT, current directory, absolute, relative, . (dot), .. (dot dot)
  3. Directories – ROOT, /root, HOME, /home, and the current directory
  4. Finding files – searching for files by name, size, use, modify time, etc.
  5. Shell GLOB patterns – wildcard pattern matching of pathnames
  6. List of Commands – Command names you should know, listed by week
  7. Video Tutorials on Lynda.com – tagged by week number
  8. Linux and Sysadmin News in the World

1.2 Assignments this weekIndexup to index

Check the due date for each assignment and put a reminder in your agenda, calendar, and digital assistant. Just like in the Real World, not all due dates are on the same days or at the same times.

1.3 Lab work this weekIndexup to index

1.3.1 WorksheetsIndexup to index

Worksheets are preparation for your assignments. You can’t do the assignments without having done the worksheets first, and you can’t do the worksheets without having first read the Course Notes: 1. Read. 2. Worksheets. 3. Assignment.

Make notes from the worksheets on how each command works. What do the options used in the worksheets mean, for each command? (See the weekly List of Commands.)

Form a small study group to do the worksheets. Each person tries the example given, and you make sure you all get the same answers. Worksheets are not for hand-in; they are not worth marks; the assignments test your knowledge of the lectures and worksheets.

The worksheets are available in four formats: Open Office (ODT), PDF, HTML, and Text. Only the Open Office format allows you “fill in the blanks” in the worksheet. The PDF format looks good but doesn’t allow you to type into the blanks in the worksheet. The HTML format is crude but useful for quick for viewing online.

Do NOT open the Worksheet ODT files using any Microsoft products; they will mangle the format and mis-number the questions. Use the free Libre Office or Open Office programs to open these ODT documents. On campus, you can get a copy here: Course Introduction: Install Libre Office.

Worksheets #02 and #03 require you to have read File System and Pathnames:

Worksheet #06 is for the optional VIM Bonus Assignment (extra credit):

Worksheets prepare you for the upcoming assignments.

1.4 Upcoming testsIndexup to index

Midterm Test #1 updated February 7 to exclude GLOB and I/O redirection

Note that your upcoming Midterm Test #1 is worth more than three assignments put together. Don’t spend all your time doing an assignment at the expense of studying the Practice Tests and Answers for the Midterm Test.

For full marks, read the Test Instructions (all the words) before your midterm tests. Midterm tests and the final exam are closed-book, no aids (just like your job interview). You will be given scrap paper to write on, and you may write on the question sheet.

Put these test dates into your phone! Use the Algonquin Registered Name Game link to test your name before the test. I don’t answer questions about the instructions during the test.

  1. First Midterm test: 45 minutes; in your one-hour lecture class at 3pm on Wednesday in Week 5 (February 14).
  2. Second Midterm test: 45 minutes; in your one-hour lecture class at 3pm on Wednesday in Week 9 (March 21).

Midterm tests take place in your 50-minute lecture class, not in your lab period. Each midterm test is 45 minutes long and contains approximately 45 multiple-choice questions similar to those found in the Practice Tests posted under Practice Tests and Answers. You must write the test in the lecture class in which you are registered.

1.4.1 Midterm Test #1 – Wednesday February 14 at 3pm in C346Indexup to index

Midterm Test #1 updated February 7 to exclude GLOB and I/O redirection

  • Midterm #1 takes place in Week 5 on Wednesday February 14 at 3pm in C346 in your scheduled lecture class (not in your lab period).
  • The tests and exams are all closed-book, no aids, just like your job interview. You will be given some scrap paper to write on.
  • For full marks, you must read the Test Instructions before the test for important directions on how to enter your name, student number, answers, your lab (not lecture) section number, and the test version code on the question sheet and the mark-sense forms.
  • There may be more questions on the test than you can answer in the time allowed; answer the ones you know, first.

1.4.2 Midterm #1 TopicsIndexup to index

Midterm Test #1 updated February 7 to exclude GLOB and I/O redirection

  • Weekly Notes 1, 2, and part of Week 3, including the readings.
  • Weekly web pages up to and including Finding Files.
  • Worksheets 2 and 3
  • Assignments 2 and 3.
  • The 150 questions in the (new) first practice test in Practice Tests and Answers.
    • This 150-question test PDF was updated on February 7. Refresh your browser to get the latest version, labelled CST8207 Winter 2018, containing 150 questions. Do not use the old 2017 test.
  • Does not include anything about editors vim or nano.
  • Does not include anything about the Course Introduction.

For full marks, you must read and understand the Test Instructions before you write the test. I don’t answer questions about the instructions during the test.

1.4.3 Practice Test #1 and Blackboard Quiz #1Indexup to index

Practice Test #1 updated February 7 to exclude GLOB and I/O redirection

  • A new set of 150 practice questions, answers, and quizzes for the first midterm test is posted in Practice Tests and Answers.
  • This 150-question test PDF was updated on February 7. Refresh your browser to get the latest version, labelled CST8207 Winter 2018, containing 150 questions. Do not use the old 2017 test.
  • The tests use the semicolon ; to separate multiple commands on the same line, to save space and paper, e.g. three separate commands can be written on one line like this: date ; echo "hi" ; ls
    • Do not use semicolons as an interactive human user! Type each command on its own line with the [Enter] key.

Blackboard Quiz #1 updated February 7 to exclude GLOB and I/O redirection

  • If you submitted any of the old quizzes on Blackboard, you will need to re-do them using the new Quiz content; the old attempts don’t count. (You can send me email if you want your old quiz score to be used instead of the new quiz score.)

  • Blackboard has some quizzes taken randomly from the first practice test in Practice Tests and Answers.

  • The practice test itself is not part of your course grade, but these quizzes are part of your course grade. Do the quizzes for marks.

  • See the Blackboard Quizzes section located in Practice Tests and Answers.

1.5 Assignment #2: Read All The WordsIndexup to index

Please Read All The Words.

2 Notes from the ClassroomIndexup to index

Pathnames Diagram on Whiteboard

2.1 Simplifying pathnamesIndexup to index

  1. Rewrite as a simplified absolute path: /home/me/../you/../../etc/../home/me/../you/../me/../foo

  2. Rewrite as a simplified absolute path: /usr/./bin/../lib/../../etc/../usr/./lib/../bin/./bar

  3. Rewrite as a simplified absolute path: /../../var/./a/../../var/b/../../etc/./bar/../foo

2.2 Draw File System DiagramsIndexup to index

Draw File System Diagrams on paper to understand where files are when you do the worksheets, the assignments, and the tests and exams!

See the note in Assignment #03 HTML about drawing file system diagrams on paper. Do it!

2.3 Did not change password – CLS access revokedIndexup to index

Students will have their CLS accounts disabled if they have not changed their default password. (I do not want people breaking into my machine because of you.)

See my online timetable for how to make an office appointment to see me if you want your account back.

2.4 Fifteen minute rule: don’t waste your timeIndexup to index

See the Course Introduction: fifteen minute rule

2.5 Commands UsedIndexup to index

Keep a notebook with a List of Commands in it.

  • You need to write down yourself what each command does.
  • Check the updated list of commands each week.
  • I will check for this list in your lab periods.
  • Bring your notes to class! Stop wasting time looking up commands.

2.6 Not Reading All The WordsIndexup to index

These do not produce the same output file:

$ find . >foo ; mv foo dir/foo
$ find . >dir/foo

If the assignment asks you to redirect the output into a file in a specific directory, then only the second answer above is correct. The first answer, using mv, will have the wrong pathnames in it.

2.7 Working hard, not working smartIndexup to index

2.8 Not doing worksheets: working hard, not smartIndexup to index

This student below (from a previous term) didn’t do the worksheets and doesn’t know about any options to the mkdir command. Instead of typing one command to make the directory tree, he has to use ten (!), and gets the name wrong, too. He also didn’t hear me talk about not using cd all the time, so he marks himself as a Windows newbie. This won’t look good in a job interview:

$ mkdir 1ldIr
$ cd 1ldIr
$ mkdir one
$ mkdir two
$ mkdir one/0neOne
$ cd one
$ ls
$ cd ..
$ ls
$ mkdir two/tw0two

Don’t be this guy. No employer wants to pay you to type ten commands when one will do the job. Work smarter, not harder. Do the worksheets!

3 Attacks on the CLSIndexup to index

Commands to show the number of locked out IP addresses and attempts to use locked-out IP addresses in /etc/hosts.evil:

$ wc /etc/hosts.evil
$ fgrep -c 'refused connect' /var/log/auth.log
$ fgrep 'refused connect' /var/log/auth.log | less

Count the unique locked-out addresses, and then show the top twenty:

$ fgrep 'refused connect' /var/log/auth.log | awk '{print $NF}' | sort -u | wc
$ fgrep 'refused connect' /var/log/auth.log | awk '{print $NF}' | sort | uniq -c | sort -nr | head -n 20

Password failures:

$ fgrep -c 'Failed' /var/log/auth.log
$ fgrep 'Failed' /var/log/auth.log | less

Userid failures:

$ fgrep -c 'input_userauth' /var/log/auth.log
$ fgrep 'input_userauth' /var/log/auth.log | less

You can use the whois command on Linux to identify which country is responsible for an IP address, or use a Web Whois Lookup.

The Linux whois command is blocked from use at Algonquin College, except if you are on the CLS. You can’t use the whois command in your own Linux machines while you are on campus. Use whois on the CLS or do a lookup via the web interface instead.

3.1 HTTP attacks on Course Linux ServerIndexup to index

In addition to the SSH attacks, machines on the Internet receive attacks using bogus HTTP requests. These unsuccessful attacks below attempt to use a chain of parent directories to fetch a file out of the file system:

[Dec 13 13:50:57 2015] [client 54.201.251.33] Invalid URI in request GET /../../ratings.html HTTP/1.1
[Dec 13 13:51:01 2015] [client 54.201.251.33] Invalid URI in request GET /../../index.html HTTP/1.1
[Apr 26 17:09:59 2016] [client 67.79.37.250] Invalid URI in request GET /../../../../../../../mnt/mtd/yqcP HTTP/1.1
[May 02 12:21:45 2016] [client 222.235.67.147] Invalid URI in request GET /../../../../../../../mnt/mtd/IJSj HTTP/1.1
[Jun 27 17:54:40 2016] [client 222.198.128.207] Invalid URI in request GET /../../../../../../../mnt/mtd/3qS9 HTTP/1.1
[Oct 07 09:34:11 2016] [client 64.137.234.42] Invalid URI in request GET /../../../../../../../mnt/mtd/ahMk HTTP/1.1
[Oct 15 06:49:57 2016] [client 177.142.99.103] Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
[Oct 19 20:49:33 2016] [client 189.100.188.31] Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
[Oct 23 00:43:39 2016] [client 191.189.55.9] Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
[Nov 02 21:35:09 2016] [client 201.37.223.72] Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
[Jan 07 20:51:33 2017] [client 201.17.154.181] Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
[May 10 21:22:29 2017] [client 187.67.167.31] Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
[28/Sep/2017:23:57:19 -0400] "GET /?i=../../../../../proc/self/environ HTTP/1.1"
[10/Feb/2018:04:44:53 -0500] "GET /index.php?option=com_jimtawl&Itemid=12&task=../../../../../../../../../../../../../../../configuration.php HTTP/1.1"
[01/Apr/2018:23:35:23 -0400] "GET /wp-content/plugins/wp-ecommerce-shop-styling/includes/download.php?filename=../../../../../../../../../etc/passwd HTTP/1.1"
[02/Apr/2018:06:02:56 -0400] "GET /cst8207/17w/notes/data//wp-content/plugins/ibs-mappro/lib/download.php?file=../../../../wp-config.php HTTP/1.1"
[02/Apr/2018:06:02:57 -0400] "GET /cst8207/17w/notes/data//wp-content/plugins/s3bubble-amazon-s3-html-5-video-with-adverts/assets/plugins/ultimate/content/downloader.php?path=../../../../../../../wp-config.php HTTP/1.1"

The Apache web server blocked all the above attacks.

4 Locked out of the CLSIndexup to index

When you are locked out, follow the directions in the notes to get your IP address re-enabled.

Take Notes in Class
Ian! and the Pathnames Diagram
Author: 
| Ian! D. Allen, BA, MMath  -  idallen@idallen.ca  -  Ottawa, Ontario, Canada
| Home Page: http://idallen.com/   Contact Improv: http://contactimprov.ca/
| College professor (Free/Libre GNU+Linux) at: http://teaching.idallen.com/
| Defend digital freedom:  http://eff.org/  and have fun:  http://fools.ca/

Plain Text - plain text version of this page in Pandoc Markdown format

Campaign for non-browser-specific HTML   Valid XHTML 1.0 Transitional   Valid CSS!   Creative Commons by nc sa 3.0   Hacker Ideals Emblem   Author Ian! D. Allen