<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rising Felix</title>
    <description>The latest articles on DEV Community by Rising Felix (@ph0cx_).</description>
    <link>https://dev.to/ph0cx_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F244322%2F6cb6d5f4-d374-4a9c-890a-20f8b40af88d.jpg</url>
      <title>DEV Community: Rising Felix</title>
      <link>https://dev.to/ph0cx_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ph0cx_"/>
    <language>en</language>
    <item>
      <title>Linux Basics for DevOps: Files, Directories and Permissions (Hands-On on Kali WSL)</title>
      <dc:creator>Rising Felix</dc:creator>
      <pubDate>Wed, 21 Oct 2026 18:21:07 +0000</pubDate>
      <link>https://dev.to/ph0cx_/linux-basics-for-devops-files-directories-and-permissions-hands-on-on-kali-wsl-3mmi</link>
      <guid>https://dev.to/ph0cx_/linux-basics-for-devops-files-directories-and-permissions-hands-on-on-kali-wsl-3mmi</guid>
      <description>&lt;p&gt;I'm learning DevOps, and my first assignment was all about the Linux command line: moving around the file system, managing files, and understanding permissions. I worked through it on &lt;strong&gt;Kali Linux running in WSL (Windows Subsystem for Linux)&lt;/strong&gt;, and every screenshot below is real output from my terminal.&lt;/p&gt;

&lt;p&gt;If you're just starting out, this is a compact tour of the commands you'll use every single day.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip for WSL users:&lt;/strong&gt; work inside your Linux home folder (&lt;code&gt;~&lt;/code&gt;), not on a Windows drive under &lt;code&gt;/mnt/c&lt;/code&gt;. Windows drives don't support Linux permissions properly, so &lt;code&gt;chmod&lt;/code&gt; won't behave as expected there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Part 1: The Concepts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is Linux?&lt;/strong&gt;&lt;br&gt;
An open-source, Unix-like operating system. It runs most of the world's servers, cloud infrastructure, containers and embedded devices, which is why it's the foundation of DevOps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;cp&lt;/code&gt; vs &lt;code&gt;mv&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;cp&lt;/code&gt; &lt;em&gt;copies&lt;/em&gt; a file, so the original stays put. &lt;code&gt;mv&lt;/code&gt; &lt;em&gt;moves&lt;/em&gt; or &lt;em&gt;renames&lt;/em&gt; it, so the original is gone from its old location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does &lt;code&gt;chmod&lt;/code&gt; do?&lt;/strong&gt;&lt;br&gt;
It changes a file's permissions: who can read, write or execute it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Absolute vs relative paths&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Absolute&lt;/strong&gt; paths start from the root &lt;code&gt;/&lt;/code&gt;, for example &lt;code&gt;/home/p0cx/notes.txt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relative&lt;/strong&gt; paths start from where you are now, for example &lt;code&gt;docs/notes.txt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;ls -la&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Lists &lt;em&gt;all&lt;/em&gt; files, including hidden ones that start with &lt;code&gt;.&lt;/code&gt;, in long format: permissions, owner, size and date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;r, w, x&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Letter&lt;/th&gt;
&lt;th&gt;On a file&lt;/th&gt;
&lt;th&gt;On a directory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;r&lt;/code&gt; (read)&lt;/td&gt;
&lt;td&gt;view contents&lt;/td&gt;
&lt;td&gt;list contents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;w&lt;/code&gt; (write)&lt;/td&gt;
&lt;td&gt;modify&lt;/td&gt;
&lt;td&gt;add or delete files inside&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;x&lt;/code&gt; (execute)&lt;/td&gt;
&lt;td&gt;run it as a program&lt;/td&gt;
&lt;td&gt;enter it with &lt;code&gt;cd&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;mkdir&lt;/code&gt;&lt;/strong&gt; creates a directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;rm&lt;/code&gt; vs &lt;code&gt;rmdir&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;rm&lt;/code&gt; deletes files (and whole directories with &lt;code&gt;-r&lt;/code&gt;). &lt;code&gt;rmdir&lt;/code&gt; only removes &lt;em&gt;empty&lt;/em&gt; directories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File extensions&lt;/strong&gt; are the suffix that hints at a file's type: &lt;code&gt;.txt&lt;/code&gt;, &lt;code&gt;.sh&lt;/code&gt;, &lt;code&gt;.log&lt;/code&gt;, &lt;code&gt;.py&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/strong&gt; runs a command with administrator (root) privileges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 2: Command Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Show current directory&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;List files and directories&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Create a directory&lt;/td&gt;
&lt;td&gt;&lt;code&gt;mkdir linux_lab&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Create an empty file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;touch notes.txt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Show a file's contents&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cat notes.txt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Copy a file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cp notes.txt backup.txt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Rename a file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;mv backup.txt report.txt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Delete a file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rm old.txt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Add execute for the owner&lt;/td&gt;
&lt;td&gt;&lt;code&gt;chmod u+x script.sh&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Show logged-in user&lt;/td&gt;
&lt;td&gt;&lt;code&gt;whoami&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Show OS information&lt;/td&gt;
&lt;td&gt;&lt;code&gt;uname -a&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Show disk space&lt;/td&gt;
&lt;td&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;Show memory usage&lt;/td&gt;
&lt;td&gt;&lt;code&gt;free -h&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Find a file in the directory tree&lt;/td&gt;
&lt;td&gt;&lt;code&gt;find . -name error.log&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Show the first 10 lines of a file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;head app.log&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Who am I, and where am I?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;pwd&lt;/code&gt;, &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;whoami&lt;/code&gt; and &lt;code&gt;uname -a&lt;/code&gt;. Note the kernel string &lt;code&gt;microsoft-standard-WSL2&lt;/code&gt;: that's how you can tell you're inside WSL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F23p15ho5elsz9q1xtkkk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F23p15ho5elsz9q1xtkkk.png" alt="Screenshot 1: pwd, ls, whoami and uname -a in Kali WSL" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating, copying, renaming and deleting files
&lt;/h3&gt;

&lt;p&gt;I created &lt;code&gt;linux_lab&lt;/code&gt;, added two files, wrote a line into &lt;code&gt;notes.txt&lt;/code&gt;, then copied, renamed and deleted. The final &lt;code&gt;ls -l&lt;/code&gt; confirms &lt;code&gt;old.txt&lt;/code&gt; is gone and &lt;code&gt;report.txt&lt;/code&gt; exists.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fra8c11jljaw6niirovsq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fra8c11jljaw6niirovsq.png" alt="Screenshot 2: mkdir, touch, cat, cp, mv and rm" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissions, searching and reading logs
&lt;/h3&gt;

&lt;p&gt;Watch the permission string on &lt;code&gt;script.sh&lt;/code&gt; change from &lt;code&gt;-rw-r--r--&lt;/code&gt; to &lt;code&gt;-rwxr--r--&lt;/code&gt; after &lt;code&gt;chmod u+x&lt;/code&gt;. Only the owner gained execute. &lt;code&gt;find&lt;/code&gt; locates &lt;code&gt;error.log&lt;/code&gt; in a subfolder, and &lt;code&gt;head&lt;/code&gt; stops at line 10 of a 20-line log.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F642lpfwxb1kzvvi24abj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F642lpfwxb1kzvvi24abj.png" alt="Screenshot 3: chmod u+x, find and head" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Disk and memory
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;df -h&lt;/code&gt; and &lt;code&gt;free -h&lt;/code&gt; print sizes in human-readable units (G, M, K) instead of raw bytes. In WSL, &lt;code&gt;df&lt;/code&gt; also shows your Windows drives mounted under &lt;code&gt;/mnt/c&lt;/code&gt; and &lt;code&gt;/mnt/d&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy3qggjjq43ty5eywqhjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy3qggjjq43ty5eywqhjw.png" alt="Screenshot 4: df -h and free -h" width="799" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 3: Hands-On Exercises
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Task 1: Build a project structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;span class="nb"&gt;mkdir &lt;/span&gt;DevOps
&lt;span class="nb"&gt;mkdir &lt;/span&gt;DevOps/Scripts DevOps/Logs DevOps/Backup
&lt;span class="nb"&gt;touch &lt;/span&gt;DevOps/Scripts/deployment.sh
&lt;span class="nb"&gt;touch &lt;/span&gt;DevOps/Logs/application.log
&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; DevOps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;ls -R&lt;/code&gt; lists the whole tree recursively. It's a quick way to verify the structure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgh9e70ev6h7306aq32ys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgh9e70ev6h7306aq32ys.png" alt="Screenshot 5: DevOps folder structure with ls -R" width="799" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Task 2: Write, copy and rename
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/DevOps
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"This is my first Linux assignment"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Scripts/deployment.sh
&lt;span class="nb"&gt;cp &lt;/span&gt;Scripts/deployment.sh Backup/
&lt;span class="nb"&gt;mv &lt;/span&gt;Backup/deployment.sh Backup/deployment_backup.sh
&lt;span class="nb"&gt;cat &lt;/span&gt;Backup/deployment_backup.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;&amp;gt;&lt;/code&gt; redirects output into a file and &lt;strong&gt;overwrites&lt;/strong&gt; it. Use &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; if you want to append instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz666xbir3kyoxql8ihsr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz666xbir3kyoxql8ihsr.png" alt="Screenshot 6: copying and renaming deployment.sh" width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Task 3: 755 vs 644
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt; Scripts/deployment.sh
&lt;span class="nb"&gt;chmod &lt;/span&gt;755 Scripts/deployment.sh
&lt;span class="nb"&gt;chmod &lt;/span&gt;644 Scripts/deployment.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb0fbgmrrny7atnpvfaz8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb0fbgmrrny7atnpvfaz8.png" alt="Screenshot 7: chmod 755 then chmod 644" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each digit is the sum of &lt;strong&gt;r = 4, w = 2, x = 1&lt;/strong&gt;, for owner, group and others in that order:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;String&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;th&gt;Group&lt;/th&gt;
&lt;th&gt;Others&lt;/th&gt;
&lt;th&gt;Typical use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;755&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rwxr-xr-x&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;read, write, execute&lt;/td&gt;
&lt;td&gt;read, execute&lt;/td&gt;
&lt;td&gt;read, execute&lt;/td&gt;
&lt;td&gt;scripts and programs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;644&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rw-r--r--&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;read, write&lt;/td&gt;
&lt;td&gt;read&lt;/td&gt;
&lt;td&gt;read&lt;/td&gt;
&lt;td&gt;config and text files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference: &lt;strong&gt;755 makes the file executable&lt;/strong&gt;, while &lt;strong&gt;644 leaves it as a plain, non-executable file&lt;/strong&gt; that only the owner can edit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 4: Permissions Challenge
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;chmod 777 file.txt&lt;/code&gt;&lt;/strong&gt;: everyone can read, write and execute. Almost never a good idea.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;chmod 600 secret.txt&lt;/code&gt;&lt;/strong&gt;: only the owner can read and write; nobody else has access. This is ideal for private keys and credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;chmod u+x deploy.sh&lt;/code&gt;&lt;/strong&gt;: adds execute permission for the owner only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;chmod -R 755 project/&lt;/code&gt;&lt;/strong&gt;: applies &lt;code&gt;rwxr-xr-x&lt;/code&gt; to &lt;code&gt;project/&lt;/code&gt; and everything inside it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;-rw-r--r--&lt;/code&gt; → &lt;code&gt;-rwxr-xr-x&lt;/code&gt;&lt;/strong&gt;: &lt;code&gt;chmod 755 file&lt;/code&gt; (or &lt;code&gt;chmod +x file&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why not give everyone write access to sensitive files?&lt;/strong&gt;&lt;br&gt;
Because anyone, or any compromised process, could change, corrupt or delete them, or inject malicious code. Follow the &lt;strong&gt;principle of least privilege&lt;/strong&gt;: grant only the access each user actually needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;These commands are the foundation for everything that comes next in DevOps, from shell scripting to CI/CD pipelines and container work. The best way to make them stick is to type them yourself, break things, and run &lt;code&gt;ls -l&lt;/code&gt; to see what happened.&lt;/p&gt;

&lt;p&gt;What was the first Linux command that tripped you up? Let me know in the comments. 👇&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
