Table of Contents

CS 471 Assignments

Assignment 4 - Software management, chroot

Due: Friday, 3/23/2018, 11:59pm

Write your answers in a plain text file or Google doc, and dropbox the text file (or link to a Google doc). Make sure your name appears in what you submit.

1. On your Linux systems (VM and container), is the firefox web browser a package that can be installed using the apt package management system? How did you arrive at your answer?

2. On your Linux systems (VM and container), run 'apt-get update' and then 'apt-get upgrade'. Follow the prompts to download and install software upgrades. What packages were upgraded on your 2 systems? Include output from 'apt-get upgrade' that indicates the packages that were upgraded.

3. See information on the AppImage package format. Download an AppImage from the list of available AppImages, and run it on any Linux system (root privileges are not required). Identify the AppImage that you downloaded and ran, and detail the steps that were required to run the AppImage. Include a screenshot of the running AppImage.

4. An OS container is akin to a chroot jail. On your Linux container system, follow the tutorial at https://linuxconfig.org/how-to-automatically-chroot-jail-selected-ssh-user-logins to automatically chroot jail selected ssh user logins. You will need to create the tester user to complete the tutorial. For user tester, use the password unixfool. I will login to your container to verify completion.


Assignment 3 - Sudo, run levels, passwords

Due: Friday, 2/16/2018, 11:59pm

Write your answers in a plain text file or Google doc, and dropbox the text file (or link to a Google doc). Make sure your name appears in what you submit.

1. On your VM, configure the sudo tool to allow the user jchung to perform package management tasks using the commands /usr/bin/apt-get, /usr/bin/dpkg and /usr/bin/aptitude. Write the details of sudo configuration as your answer (include contents of the sudo config /etc/sudoers). Also add the same details to your admin journals.

Sudo should be configured so that jchung can run only those three commands (apt-get, dpkg and aptitude) as root.

Links:

2. Login to your VM using either rdesktop or the virtualbox GUI and become root (Don't use ssh to login). Answer the following questions:

  a) How do you force the system into run level 1 (single-user mode)?

  b) When your system is in single-user mode, can a normal user login using ssh?
  
  c) Can your system be pinged when it's in single-user mode?
  
  d) How do you force the system into run level 2 (multi-user mode)?
  
  e) What happens when you try to force your system to enter run level 5?

3. On your VM, which configuration file specifies the encryption method (cryptographic hash function) used for user passwords? (The encryption method should be SHA512.) HINT: Find the file under the /etc directory that contains the string “SHA512” or “sha512”. A recursive grep command would probably find it.


Assignment 2 - System data, cron

Due: Friday, 2/2/2018, 11:59pm

Write your answers in a plain text file or Google doc, and dropbox the text file (or link to a Google doc). Make sure your name appears in what you submit.

1. See p. 1057 of the book (“Commands for systems monitoring”). Using some of the commands on that page, provide the following information about your systems, including command output:

2. See the information about the grep command on p. 197 of the book and elsewhere. Using grep, find at least 3 files in the /etc system directory whose contents contain the hostname you chose for your system. List the files that you find.

3. Install the mlocate package (mentioned on p. 21 of the book) on your systems. Using the /usr/bin/updatedb and /usr/bin/locate commands from the mlocate package, list all the filenames on your system that contain “ssh_host”.

4. The mlocate system updates its file system database daily (See the /etc/cron.daily/mlocate shell script and the system crontab in the /etc/crontab file). At approximately what time does mlocate update its database?


Assignment 1 - Start journaling

Due: Thurs, 1/25/18, 11:59pm

Create an electronic journal of your system administration activities. You'll have to keep this journal updated through the semester.

To give you an idea of what a sysadmin journal might look like, see an old portion of my sysadmin log at

 http://rockhopper.monmouth.edu/~jchung/cs471/admin.notes.sample.txt

The journal should ideally be a plain text file, but you can use other formats such as word processor, google doc, etc. The journal name should correspond with the name of the system that you are administrator of. You can keep a written journal in a notebook, but it should eventually be transferred to electronic format.

In your newly-created journal, in as much detail as you can, write about the installation of Linux that we began, what your system's hardware is, what your system is called, where it is physically located. DO NOT write what your passwords are. The quality of your journal is an indication to me of how much you understand about your system and about the administration tasks you are asked to perform.

Your first journal entries should be for 1/16/18 and should include the following:

Dropbox the file containing your journal or provide a link if your journal can be accessed via the web.