{"id":375,"date":"2026-05-01T01:40:25","date_gmt":"2026-05-01T01:40:25","guid":{"rendered":"https:\/\/sites.wp.odu.edu\/seliquini\/?page_id=375"},"modified":"2026-05-01T01:40:25","modified_gmt":"2026-05-01T01:40:25","slug":"cyse-270-linux-systems-for-cybersecurity","status":"publish","type":"page","link":"https:\/\/sites.wp.odu.edu\/seliquini\/cyse-270-linux-systems-for-cybersecurity\/","title":{"rendered":"CYSE 270: Linux Systems for Cybersecurity"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\"><\/h4>\n\n\n\n<p><strong>Lab 1 &amp; 2: Working with the Command Line<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> These first two labs were my real introduction to running a Kali Linux VM and actually using the Command Line Interface (CLI) instead of just clicking around a desktop.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> I picked up the core navigation commands. This included figuring out where I was with <code>pwd<\/code>, using <code>echo<\/code> and <code>date<\/code>, and learning how to move around the file system using absolute paths (like typing <code>\/etc<\/code>) versus relative paths (like just typing <code>skel<\/code> depending on my current directory).<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> The hardest part was honestly just breaking the habit of relying on a GUI. It\u2019s a bit of a mental shift trying to visualize the whole directory tree in your head without being able to actually see the folders.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> I quickly realized that getting comfortable with the terminal is the absolute bedrock of everything else in cybersecurity. You really can&#8217;t do the advanced administration stuff efficiently without it.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 3: VI Editor<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> This lab threw me into the VI text editor. I&#8217;ll admit, it was pretty frustrating at first since you can&#8217;t just use a mouse and keyboard like you would in Microsoft Word.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> We practiced on the <code>zstd\/copyright<\/code> file, and I learned how to swap between insert and command modes to edit text. I also got to use some bulk edit functions, like running <code>:%s\/http\/HTTP\/g<\/code> to instantly swap out every lowercase &#8216;http&#8217; for an uppercase one.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> Memorizing the keystrokes was tough. Trying to copy and paste entire lines using <code>yy<\/code> and <code>p<\/code>, and just remembering to type <code>:wq<\/code> to save and quit took a lot of repetition to get used to.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Even though it has a steep learning curve, I see why system admins use it. Being able to edit configuration files straight from the terminal without needing a graphical editor is a mandatory skill.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 4: User and Group Accounts<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> Here, we shifted gears into actual system administration by managing different user accounts inside our Linux environment.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> I practiced making and tweaking accounts, like setting up a new user named <code>dseli001<\/code>. I also used <code>usermod<\/code> to handle group memberships and dug into the <code>\/etc\/shadow<\/code> file using <code>grep<\/code> to check out password encryption and aging rules.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> The syntax got a bit tricky when we had to pipe commands together. For instance, piping an <code>echo<\/code> string directly into <code>chpasswd<\/code> to force a password change meant I had to double-check my spacing so it wouldn&#8217;t throw an error.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Managing exactly who has access to what is basically the first line of defense. If you don&#8217;t structure your users and groups correctly, applying the principle of least privilege is impossible.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 5: Password Cracking<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> This was definitely one of my favorite labs. We got to play the role of the attacker and try to crack local credentials to see how secure our system actually was.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> I extracted password hashes and ran them through John the Ripper. By using the famous <code>rockyou.txt<\/code> wordlist, I was able to successfully crack dictionary-based, numeric, and even raw MD5 hashes.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> John the Ripper can be really picky about how it reads files. I had to make sure the hashes were formatted perfectly in the text document, otherwise the tool would just error out and refuse to parse them.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> It was eye-opening to see how incredibly fast weak passwords can be broken by automated tools. It really proved why organizations need to force people to use long, complex passwords.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 6: File Permissions<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> Building off the user accounts lab, we looked at how to lock down shared directories so different departments couldn&#8217;t mess with each other&#8217;s files.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> Besides standard read\/write\/execute permissions, I applied special access controls. I set up a Set Group ID (SGID) on a directory so any new file automatically belonged to that group, and I applied the Sticky Bit to secure user deletions.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> Wrapping my head around the sticky bit took a minute. It felt counterintuitive that a user could have write access to a folder, but still be blocked from deleting another user&#8217;s file inside that same folder.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Setting up groups isn&#8217;t enough on its own; you have to lock down the file-level permissions too. It&#8217;s the only way to stop unauthorized edits or accidental deletions in a shared workspace.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 7: Manage Local Storage<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> This one was all about the hardware side of things\u2014specifically how Linux handles physical hard drives and logical partitions.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> I got comfortable checking out connected disks with <code>ls \/dev\/sd*<\/code> and reading partition tables using <code>fdisk -l<\/code> and <code>parted -l<\/code>. The main task was successfully mounting and unmounting a specific partition (<code>\/dev\/sdb1<\/code>) to a <code>\/cyse<\/code> directory.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> The whole concept of &#8220;mount points&#8221; was new to me. It was weird at first to realize that if you unmount a drive, the files are still safely on the disk, but they completely disappear from the folder you were just looking at.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Whether you&#8217;re doing forensic data recovery or just attaching a new backup drive, knowing how block devices mount to the filesystem is a critical admin skill.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 8: Shell Scripting<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> This lab was a big step up. Instead of just running single commands, we started writing Bash scripts to actually automate our work.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> I learned the core structure of a script: starting with the Shebang (<code>#!\/bin\/bash<\/code>), grabbing user input using <code>read<\/code>, and building <code>if\/elif\/else<\/code> statements to check if numbers were greater than 10 or if specific directories existed using <code>-d<\/code>.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> Bash is incredibly strict about syntax. I spent a good amount of time debugging errors just because I missed a space inside the <code>[ ]<\/code> brackets for my conditional statements, or because I forgot to run <code>chmod +x<\/code> to make the file executable first.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Writing scripts is a massive time-saver. If you have to do an administrative or security task more than twice, you should probably just write a Bash script for it.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 9: Task Automation (Crontab)<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> Since we knew how to write scripts from Lab 8, this lab taught us how to make the system run those scripts automatically on a set schedule.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> I wrote a custom bash script that used <code>tar<\/code> and <code>gzip<\/code> to compress and back up a user&#8217;s home directory. Then, I set up a root <code>crontab<\/code> to run it automatically. I even added some extra cleanup logic to automatically delete the oldest backups so the hard drive wouldn&#8217;t fill up.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> Troubleshooting a cron job is a bit blind because it runs in the background. I had to double-check my cleanup logic carefully to make sure it kept exactly three backups and didn&#8217;t accidentally delete the wrong data.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Automation via Cron is something every admin relies on. You can&#8217;t count on a human to remember to run daily backups or rotate security logs\u2014the system needs to handle it automatically.<\/li>\n<\/ul>\n\n\n\n<p><strong>Lab 10: Networking Basics and Subnetting<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>My Experience:<\/strong> This lab was a mix of network math and bash scripting. It really connected the dots between how local machines talk to the broader network instead of just working in an isolated environment.<\/li>\n\n\n\n<li><strong>Key Skills Learned:<\/strong> Half the lab was focused on subnetting\u2014taking an IP like 192.168.100.4\/28, converting it to binary, and calculating the network address, broadcast address, and usable host ranges. The other half was writing <code>FOR<\/code> and <code>WHILE<\/code> loops in Bash to automate counting processes in the terminal.<\/li>\n\n\n\n<li><strong>Challenges Faced:<\/strong> The subnetting math was definitely tedious. Converting back and forth between binary and decimal formats to find the exact network boundaries made it really easy to make an off-by-one error if I wasn&#8217;t paying close attention to my calculations.<\/li>\n\n\n\n<li><strong>Overall Takeaway:<\/strong> Understanding IP subnets is an absolute must for setting up firewalls or segmenting a network securely. Plus, mixing in the <code>while<\/code> loops proved how much you can automate once you really get the hang of Bash scripting.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Lab 1 &amp; 2: Working with the Command Line Lab 3: VI Editor Lab 4: User and Group Accounts Lab 5: Password Cracking Lab 6: File Permissions Lab 7: Manage Local Storage Lab 8: Shell Scripting Lab 9: Task Automation (Crontab) Lab 10: Networking Basics and Subnetting<\/p>\n","protected":false},"author":29386,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/pages\/375"}],"collection":[{"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/users\/29386"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/comments?post=375"}],"version-history":[{"count":1,"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/pages\/375\/revisions"}],"predecessor-version":[{"id":376,"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/pages\/375\/revisions\/376"}],"wp:attachment":[{"href":"https:\/\/sites.wp.odu.edu\/seliquini\/wp-json\/wp\/v2\/media?parent=375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}