Lab 2 – Working with the Command Line
In this lab, I learned the foundational commands needed to navigate and manage files in the Kali Linux terminal. I practiced using pwd to see my current location, cd to move between directories, and ls and ls -l to list files and view detailed directory information. I also learned how to create and manage files using commands like mkdir to make new directories, touch to create empty files, cp to copy files, mv to move or rename them, and rm to remove them. One of the most important concepts I learned was the use of sudo, which temporarily gives a user administrative privileges without logging in as the root user. Learning these basic commands helped me understand how to navigate the Linux file system efficiently and gave me the confidence to work directly in the terminal. This foundation made later labs much easier, since almost every task in cybersecurity involves using the command line in some way.
Lab 3 – VI Editor
Working through the VI editor lab gave me hands‑on experience with one of Linux’s most essential tools. At first, switching between insert mode and command mode felt unfamiliar, but as I practiced commands like i, o, dw, dd, yy, and search functions such as /word, the workflow started to make more sense. I also learned how to perform global replacements, shown in the document with the command :%s/http/HTTP/g, and how to navigate quickly using gg and G. One of the challenges I faced was remembering the correct keys for saving and exiting, since VI behaves differently from normal text editors. However, repeating commands like :w, :q, and ZZ helped build confidence. Overall, this lab taught me how powerful VI is for editing configuration files directly in the terminal, which is a critical skill for cybersecurity and system administration.
Lab 4 – User and Group Accounts
This lab introduced me to managing user and group accounts in Linux, giving me practical experience with commands that system administrators use every day. I created new users, set passwords, modified shells, and added accounts to groups, as shown when I ran commands like grep will /etc/passwd and sudo useradd -m -d /home/wdema003 wdema003. I also explored /etc/passwd, /etc/shadow, and /etc/group to understand how Linux stores account information. One challenge I encountered was forgetting a screenshot, which led to confusion when I attempted to rename a group and received the error “group ‘test’ does not exist.” This helped me realize the importance of verifying group names before modifying them. Overall, this lab strengthened my understanding of how Linux handles identity, permissions, and group membership, which is essential for maintaining secure systems.
Lab 5 – Password Cracking & Account Security
In this lab, I created several user accounts with different passwords and then used unshadow and John the Ripper to test password security. After generating a combined hash file using sudo unshadow /etc/passwd /etc/shadow > wdema003.hash, I attempted to crack the passwords with the RockYou wordlist. The output showed “0 password hashes cracked, 3 left,” which demonstrated that the passwords I created were strong enough to resist dictionary‑based cracking. This experience helped me understand how password hashing works and why /etc/shadow is protected. A challenge I faced was interpreting the results from John the Ripper, especially when no passwords were cracked, but this reinforced the importance of choosing strong, unpredictable passwords. Overall, the lab gave me valuable insight into how attackers attempt to break weak passwords and why strong password policies are essential in cybersecurity.
Lab 6 – File Permissions, Groups, and Access Control
This lab focused on Linux permissions, group management, and access control, giving me a deeper understanding of how to secure shared directories. I created users with specific groups, set directory permissions, and used commands like chmod, chgrp, and umask to control access. For example, I applied the setgid bit, shown in the output drwxrws-, to ensure files created in /home/cyse_project inherited the correct group. I also tested access by switching users, which led to permission errors such as “Permission denied” when Emma tried to read Sophia’s file. These moments helped me understand how Linux enforces ownership and group restrictions. Later, I applied the sticky bit to prevent users from deleting files they didn’t own, which is why Olivia couldn’t remove Sophia’s homework. Overall, this lab taught me how permissions, groups, and special bits work together to secure multi‑user environments, an essential concept for cybersecurity and system administration.
Lab 7 – Manage Local Storage
In this lab, I learned how to identify, partition, format, and mount storage devices in Linux. I started by listing available disks using commands like sudo ls /dev/sd*, which showed entries such as “/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdb1.” From there, I used fdisk and parted to examine disk layouts and understand how Linux organizes partitions. One of the most important steps was creating a new partition on /dev/sdb and formatting it with mkfs.ext4, which produced output like “Creating filesystem with 203776 1k blocks and 51000 inodes.” After formatting, I mounted the new filesystem to /cyse, wrote a test file, and verified that the mount worked correctly. A challenge I faced was keeping track of multiple virtual disks and ensuring I was modifying the correct device, especially after adding new virtual storage. Overall, this lab helped me understand how Linux handles storage devices and gave me confidence working with partitions, filesystems, and mount points.
Lab 8 – Shell Scripting
This lab introduced me to writing basic shell scripts that use conditionals, user input, and file checks. I began by creating a script that compared a number to 10, using logic such as if [ $number -gt 10 ]; then to determine the output. Running the script produced results like “input number is not greater than 10” and “input number is greater than 10,” depending on the input. I then created a second script that checked whether a user‑provided name referred to a file or directory, using commands like -d and -f to test the type. The script displayed file contents when appropriate, shown in the output: “it is a regular file and the file exists.” One challenge I encountered was ensuring variables were referenced correctly, especially when quoting paths or using user input. This lab helped me understand how shell scripts automate tasks and respond dynamically to user input, which is essential for cybersecurity work where automation and system checks are common.
Lab 9 – Backup Automation with Tar and Cron
In this lab, I created a user named Alice and wrote a shell script to automatically back up her home directory. The script prompted for a MIDAS ID, generated a timestamp using date +%Y.%m.%d-%H.%M.%S, and created a tar archive with a filename such as “-2026.04.20-02.33.56.tar.gz,” as shown in your output. I used tar -cf to create the archive and then moved it to /var/backups/ before compressing it with gzip. Running the script produced the message “success! backup saved as /var/backups/-2026.04.20-02.33.56.tar.gz,” confirming everything worked. A challenge I faced was making sure the filename variable was constructed correctly, since a small typo could break the script. I also learned how to verify backups using ls -lh /var/backups/*.gz, which showed multiple compressed archives. Overall, this lab taught me how to automate backups, work with tar archives, and understand how cron jobs can schedule system tasks—skills that are crucial for maintaining secure and reliable systems.
Lab 11 – Networking Tools and Configuration
This lab focused on understanding Linux networking tools, interfaces, routing, and hostname configuration. I began by examining the network interface using ifconfig eth0, which displayed details such as “inet 10.0.2.15 netmask 255.255.255.0.” I then checked the routing table with route -n, which showed the default gateway at “10.0.2.2.” Using netstat, I viewed active connections, including entries like “udp 0 0 10.0.2.15:bootpc 10.0.2.2:bootps ESTABLISHED.” I also tested connectivity with ping -c 10 ubuntu.com, which returned “10 packets transmitted, 10 received, 0% packet loss,” confirming the network was functioning. Later, I changed the system hostname by editing /etc/hostname with VI and verified the change when the file displayed “wdema003.” A challenge I faced was interpreting the large amount of output from netstat, since it lists many active UNIX sockets and system processes. Overall, this lab strengthened my understanding of Linux networking, routing, hostname configuration, and diagnostic tools, all of which are essential for cybersecurity and system administration.
Final Reflection
Throughout this course, I gained a much deeper understanding of Linux, system administration, and the foundational skills that support real‑world cybersecurity work. At the beginning of the semester, I was still getting comfortable with the command line, but each lab built on the last in a way that steadily strengthened my confidence and technical ability. Looking back, I can clearly see how my skills have grown—from basic navigation to scripting, automation, and system security.
Learning the command line in the early labs was one of the biggest turning points for me. Commands like pwd, cd, ls, mkdir, and sudo became second nature, and I realized how essential they are for almost every task in cybersecurity. Working directly in the terminal no longer felt intimidating; instead, it became a powerful tool I could control. The VI editor lab pushed me further by teaching me how to edit configuration files efficiently, something I had always heard was important but never fully understood until I practiced it myself.
As the labs progressed, I moved from simple navigation to managing users, groups, and permissions. These labs helped me understand how Linux enforces security at a fundamental level. Creating accounts, modifying group membership, applying permissions, and using special bits like setgid and the sticky bit showed me how multi‑user systems stay organized and secure. These concepts weren’t just theoretical—they directly connected to real administrative tasks that professionals handle every day.
The password‑cracking lab was one of the most eye‑opening experiences. Using tools like unshadow and John the Ripper gave me a hands‑on look at how attackers attempt to break weak passwords. Seeing that none of my test passwords were cracked reinforced the importance of strong password policies and helped me understand why /etc/shadow is so heavily protected. It was the first time I truly saw the defensive and offensive sides of cybersecurity come together.
Later labs, such as storage management and shell scripting, expanded my skill set even more. Partitioning disks, formatting filesystems, and mounting storage devices helped me understand how Linux organizes data at a low level. Writing shell scripts taught me how to automate tasks, handle user input, and build logic into my work. By the time I created a backup automation script and learned how cron can schedule system tasks, I realized I was no longer just following instructions—I was actually thinking like a system administrator.
The networking lab tied everything together by showing me how Linux systems communicate. Using tools like ifconfig, route, netstat, and ping helped me understand interfaces, routing, and connectivity. Editing the hostname and interpreting network output gave me a clearer picture of how systems identify themselves and interact on a network.
Overall, this course significantly improved my technical confidence and problem‑solving skills. I learned how to approach issues methodically, verify my work, and understand why certain commands behave the way they do. More importantly, I now have a strong foundation in Linux—one of the most essential skill sets in cybersecurity. Whether I pursue penetration testing, system administration, digital forensics, or security operations, the knowledge I gained in this course will directly support my future career. I’m walking away with practical experience, a stronger mindset, and a clearer understanding of what it means to work in cybersecurity.