Lab 1
Reflection
In this first lab for CYSE 270, students were tasked with setting up their virtual machines and running a few rudimentary commands. While I had already set up a Windows based virtual machine using Virtual Box over the summer, this assignment served as my first indroduction to working in Linux machines. Overall this lab was very simple yet important as it provided insight into how to start using Linux in a virtual environment while also intoducing a few basic commands to use in the shell.
Lab 2
Reflection
In the second lab we used a few basic commands to navigate directories and create directories as well as copy, move, create, and list files. The main challenge of this lab was ensuring that every step was completed successfully before continuing on to the next. This lab built the foundations of troubleshooting any issues faced while using commands which would be instrumental for future labs. Lab three also helped me gain more knowledge in basic file editing and managment.
Lab 3
Reflection
Lab four was one of the most important labs of the semester in my opinion. This lab focused on editing files with VI, which later became an important skill for shell scripting. This initial lab had us use some of the VI commands for navigation. The main difficulty of this lab familiarizing myself with VI’s UI while getting used to switching between insert mode and command mode. Remembering where the cursor would be inserted depending on which option was used also presented a challenge, but with more practice this became easier. Overall the goal of this lab was to get the user aquainted with VI and the commands used within it, which are fundamental for later assignments and future work.
Lab 4
Reflection
Lab four was used to practice group management and user creation. In it I created new users, a new group, and delved into adding groups and viewing which group certain files belong to. The main challenge of this lab was ensuring groups were appended properly i.e making sure to add to their secondary groups without removing all the other groups the user might be a part of. Lab four gave me first hand experience in creating and managing both users and groups while exploring how groups and group permissions work in Linux (Though group permissions would be explored more thoroughly in a later lab).This lab was extremely important for practicing and understanding group management skills on Linux machines.
Lab 5
Reflection
Lab five was fairly straightfoward, but very important in what it showed me when it comes to password security. This lab focused on password cracking and I was tasked with creating six users with six different passwords of varying complexity. The word hashes were put into a text document that was fed to the John the Ripper tool which checked the hashes of the passwords against a wordlist (the rockyou.txt file). The password cracker was allowed to run for ten minutes and during that time only cracked two passwords. The only challenge with this lab was making sure that the John the Ripper tool was working correctly, as the tool took a try or two to actual crack one of the passwords. While the lab was fairly straight foward, the bigger take away was the vulnerability of using simple passwords as even dictionary attacks can crack basic passwords.
Lab 6
Reflection
Lab six dealt with file permissions, user access, and group access. In this lab I created three different users and four different groups, assigning one each user to one of the groups and the assigning the fourth group to all three of the users. The main goal of this lab was to teach both how group permissions work with shared groups and how to change permissions of files and directories. This lab familiarized me with the chown and chmod commands along with getting me more comfortable with changing and adding groups and users.
Lab 7
Reflection
Lab seven’s focus was managing disk space and learning how to partition a disk. This lab was very helpful, as being able to see the changes in the hard drive and partition table as I was doing the lab assisted in my understanding of the materials discussed during the lecture on partitioning. For disk space in particular, I found that this lab helped me understand mounting partitions along with teaching me the basics of how to split up storage of my Linux device. The main challenge I had with storage management was understanding the architecture of primary, extended, and logical partition structures. This lab was significant is my understanding of partitioning and its construction.
Lab 8
Reflection
Lab eight’s main focus was shell scripting. The first script was a basic number checker that used a read and and if statement to check if a given number was less than ten. This first script was fairly easy with the biggest challenge being syntax; having mainly coded in python before this assignment, I had to get used to the differences in how things are written when writing code in Bash. For the second script, the user inputs a filename and the program uses an if, elif, and else statement to tell the user if the input is a file or directory and create a new file if it is neither. This program was slightly more difficult than the previous one, but again the main hinderance was getting used to the syntax. Overall this lab was a great introduction to shell scripting and it was useful in teaching some of the fundamental functions.
Lab 9
Reflection
Lab nine delved into the use of crontab. The first step of the lab was to create a script that would copy the directory of a user I created and store a backup. While the scripting wasn’t too difficult, getting the script to work with crontab was more challenging. Since the script used sudo commands, crontab could not execute the script unless it was run under the root. in this lab I gained much more knowledge of crontab than what I first expected. Learning the limitations and abilties of crontab was invaluable for which tasks I may chose to use it for in the future.
Lab 10
Reflection
Lab ten was a relatively short assignment on subnetting and understanding netmask. The assignment consisted of converting IP addresses in decimal to binary, then finding how many hosts there are in the network based on the netmask. There was also a short extra credit part of this assignment to create a script that counts to ten using a for loop and while loop. The scripting was interesting as getting more practice with loops in shell scripting was very useful. Overall this short assignment was more about understanding the concepts of networking and subnetting more than using any Linux commands.