From eb3679b997864674c77c5d3ea8eebe0f4aa839bd Mon Sep 17 00:00:00 2001 From: Chris Johnson Date: Sun, 11 Feb 2024 19:53:38 -0500 Subject: [PATCH] Updates A1 to Debian, using Jason Carman's OSL version with permission. --- docs/B-Assignments/assignment1.md | 159 +++++++++++++++++++++--------- 1 file changed, 113 insertions(+), 46 deletions(-) diff --git a/docs/B-Assignments/assignment1.md b/docs/B-Assignments/assignment1.md index 6fb2c9e..64fb55d 100644 --- a/docs/B-Assignments/assignment1.md +++ b/docs/B-Assignments/assignment1.md @@ -9,76 +9,143 @@ description: TBD > ![caution](/img/caution.png) > -> **_Do NOT start working on this assignment unless specifically told to do so by your Professor!!_** +> ***Do NOT start working on this assignment unless specifically told to do so by your professor!*** > -> - This assignment is currently out of date -> - Your Professor may choose to use a different assignment +> - Your professor may choose to use a different assignment. +> - Currently, this assignment is *only* for the following sections: **NFF** and **NGG** -The purpose of OPS245 assignments is to showcase your abilities in the course thus far, and conduct a bit of independent research. Some of what you'll be asked to complete will be familiar to you, while other parts will require you to think a bit and do some light Googling. It's expected you won't have all the answers right away, but you can find them. **As a result, unlike labs, your professor cannot provide any help or troubleshooting for your assignment.** +## Assignment Preparation -This assignment will be completed inside your local c7host virtual machine using additional KVM/QEMU nested VMs. +### Purpose of Assignments + +The purpose of OPS245 assignments is to showcase your abilities in the course thus far and conduct a bit of independent research. Some of what you'll be asked to complete will be familiar to you, while other parts will require you to think a bit and do some light online research. It's expected you won't have all the answers right away, but you *can* find them. + +**As a result, unlike labs, your professor cannot provide any help or troubleshooting for your assignment.** + +### Assignment 1 Overview + +This assignment will be completed inside your local debhost virtual machine using additional KVM/QEMU nested VMs. **Weight**: 15% of your overall grade **Due Date**: Refer to your section's Blackboard announcements. -## Create a new virtual machine +## Task 1: Create A New Virtual Machine (Ubuntu) + +Create a new Ubuntu 22.04 Desktop VM (Normal installation) as a nested VM in **KVM**, using the specifications below. You may refer to your lab instructions, logbook and google for any of the steps. The installation process is the similar to **deb1** in **Lab 2**. When asked for partition information, use the defaults. -1. Install a new CentOS Minimal VM. (Do **not** install the GUI version.) -2. The virtual machine name and the internal hostname for the machine must be your Seneca username. (Example: cjohnson30) -3. The regular user created during installation must also be your Seneca username. -4. Ensure LVM is used in your installation partitioning. +1. Install a new VM *inside* debhost using KVM. +1. Specifications: + > **OS:** Ubuntu 22.04 LTS - Minimal Installation (No GUI) + + > **Memory:** 2048 MB + + > **Disk space:** 15 GB + + > **CPUs:** 2 +1. The virtual machine name in Virtual Machine Manager and the internal hostname inside the VM's OS must include your Seneca username in the following format (example: jmcarman-ubuntu) +1. The regular user created during installation must also be your Seneca username (example: jmcarman). +1. Ensure LVM is used in your installation partitioning. +1. Use your existing virtual network +1. Select **Minimal Installation** on the **Updates and other software** screen +1. Use the default selections on the **Installation type** screen. The rest of this assignment should be done after the installation is completed successfully. -## Package Management +## Task 2: Post-Installation Tasks (Ubuntu) + +You will complete the rest of the assignment (including submission) while running the Cinnamon desktop environment. + +Use `apt` to accomplish the following: -Research the `rpm` and `yum` commands to: +1. Find and install the Cinnamon desktop environment: `apt install cinnamon` +1. Update the system. +1. Use systemctl to confirm the default firewall is running. (Hint: the default firewall in Ubuntu is **ufw**) +1. Use `apt` to install `Chromium`. You may need to use Google to accomplish this. -1. Verify the integrity of a package using `rpm` to see if any of its files have been altered since installation. (you will be asked to demonstrate this when your assignment is marked, it doesn't matter which package you choose) -2. Demonstrate the install, run, and removal of any rpm package. This means during the demonstration you will show the download, install, and run of any rpm-based package, after doing so show the removal of that package proving that previously installed rpm package is no longer available after removal. -3. Add the [EPEL](https://fedoraproject.org/wiki/EPEL) repository to the yum configuration. +## Task 3: Adding Users With A Modified Default Home Directory Structure -## Alternate Software Installation +Look at the `useradd` man page to figure out how to create a default home directory structure for new users (hint: look at the -m & -k options). You will need to uncomment the *skel* variable in the useradd default values file. -Review the `yum group*` commands and use them to: +1. Create the following default home directory structure for new users: +![Default Home Dir](/img/userhomea1.png) -1. Find and install the Cinnamon desktop environment. Feel free to use the power of Google. -2. Do the rest of the assignment (including the assignment submission) while running Cinnamon. (Hint: Think about default targets.) +1. Create the following users their associated full names. Don't forget to assign each a default password for security purposes. -[Lab 3](/A-Labs/lab3.md) contains practice in compiling source code. It is recommended you refer to these procedures for compiling and installing software from source code and use them to: + | Username | Full Name | + | :--------- | :----------- | + | tstark | Tony Stark | + | bbanner | Bruce Banner | + | thor | Thor Odinson | + | srogers | Steve Rogers | + | nromanoff | Natasha Romanoff | -1. Download and extract the source code for ISO Master. -2. Compile and install it (you will need gtk2-devel installed). -3. Run it and have a look at the _Help/About_ dialog box. **You will have to change the contents of that box**. -4. Edit the file about.c in the source you use earlier, and change "An application for editing ISO9660 images based on the bkisofs access library and the GTK2 GUI toolkit." to "An application used by YOURNAME for OPS245 Assignment 1". -5. Compile and install the application again, exactly the same way you did the first time. Your change should be simple enough that complicated bugs are unlikely. -6. Check that your changes appear in the application. +1. Create the group `avengers` and add the users you created to the `avengers` group. -## Install a Second Linux Distribution as a Virtual Machine +### Issue the following commands and take screenshots of the output for your submission: -- Create another virtual machine. -- The virtual machine name and the hostname for the machine must be your learn user ID followed by **-mint**. For example asmith15-mint -- Install **Linux Mint** as the OS for the new virtual machine (VMWare). +```bash +sudo tail -6 /etc/passwd +``` + +```bash +sudo tail -6 /etc/group +``` + +## Task 4: Install a Second Linux Distribution as a Virtual Machine +Create a new Linux Mint VM (Cinnamon Edition) in **KVM** as a nested virtual machine inside debhost, using the following information. Use the default partitioning and installation options. + +1. Install a new VM *inside* debhost using KVM. +1. Specifications: + + > **OS:** Linux Mint 21.3 - Cinnamon Edition + + > **VM name & Hostname:** youruser-mint (Example: jmcarman-mint) + + > **Username:** Your Seneca Username + + > **Memory:** 2048 MB + + > **Disk space:** 20 GB + + > **CPUs:** 2 + +1. Use the defaults for anything not specified. + +## Task 5: Post-Installation Tasks (Mint) +1. Update the system using `apt`. +1. Use `apt` to install `Chromium`. You may need to do some light Internet research to accomplish this. ## Submission -Submit screenshots that show you've completed the work. +Submit the following screenshots on Blackboard to demonstrate you've completed the work. + +### Ubuntu VM +1. Ubuntu VM installed. +1. Output of the hostname command. +1. Cinnamon desktop installed and in use. +1. Chromium installed. +1. Users and group created, users added to the `avengers` group. + +### Linux Mint VM +1. Linux Mint VM installed. +1. Output of the hostname command. +1. Chromium installed. ## Rubric -| Task | Maximum mark | Actual mark | -| -------------------------------------------------- | ------------ | ----------- | -| New CentOS VM installed (Seneca username) | 1 | | -| Correct hostname (Seneca username) | 1 | | -| Using LVM (run lsblk to check) | 1 | | -| Add, run, and removal of a rpm package | 1 | | -| Adding EPEL to list of available repositories | 1 | | -| RPM integrity verification command | 2 | | -| Command to display repository information | 2 | | -| Using Cinnamon | 2 | | -| Modified ISO Master about dialog box | 2 | | -| Second VM installed and running Linux Mint | 2 | | -| Second VM using proper hostname | 1 | | -| Screenshots clearly show you've completed the work | 4 | | -| **Total** | 20 | | +| Task | Maximum mark | Actual mark | +| --- | --- | --- | +| Ubuntu VM: Newly installed (Seneca username) | 5 | | +| Ubuntu VM: Correct hostname (Seneca username) | 2 | | +| Ubuntu VM: Using Cinnamon | 2 | | +| Ubuntu VM: Chromium installed | 2 | | +| Ubuntu VM: Users created and added to the `avengers` group | 5 | | +| Mint VM: Newly installed (Seneca username) | 5 | | +| Mint VM: Correct hostname (Seneca username) | 2 | | +| Mint VM: Chromium installed | 2 | | +| **Total** | 25 | | + +## Resources +- [Ubuntu](https://ubuntu.com) +- [Linux Mint](https://linuxmint.com)