<?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: AugustineOzor</title>
    <description>The latest articles on DEV Community by AugustineOzor (@austinozor).</description>
    <link>https://dev.to/austinozor</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1076920%2Fe10812b5-04e6-49c9-94a2-6e1c48529145.jpg</url>
      <title>DEV Community: AugustineOzor</title>
      <link>https://dev.to/austinozor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/austinozor"/>
    <language>en</language>
    <item>
      <title>Mastering User Management, Authentication, and Process Monitoring in Linux" published</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Fri, 23 May 2025 16:22:54 +0000</pubDate>
      <link>https://dev.to/austinozor/mastering-user-management-authentication-and-process-monitoring-in-linux-published-3ddp</link>
      <guid>https://dev.to/austinozor/mastering-user-management-authentication-and-process-monitoring-in-linux-published-3ddp</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
Switch Users and sudo Access
&lt;/li&gt;
&lt;li&gt;
Monitor Logged-In Users
&lt;/li&gt;
&lt;li&gt;
Communicate with Logged-In Users
&lt;/li&gt;
&lt;li&gt;
Linux Account Authentication
&lt;/li&gt;
&lt;li&gt;
Account Types and Directory Services
&lt;/li&gt;
&lt;li&gt;
Useful System Utility Commands
&lt;/li&gt;
&lt;li&gt;
Processes and Jobs
&lt;/li&gt;
&lt;li&gt;
Managing Services and Jobs
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;br&gt;
Learn how to manage users, monitor sessions, use sudo, and handle Linux processes and services with practical command-line examples.&lt;/p&gt;

&lt;p&gt;This guide covers a wide range of foundational topics in Linux system administration, including user switching, sudo access, monitoring user sessions, account authentication, and managing services and processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Switch Users and sudo Access
&lt;/h2&gt;

&lt;p&gt;Linux allows you to switch users or run administrative commands without fully logging into another account.&lt;/p&gt;

&lt;h3&gt;
  
  
  Switch User:
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;sudo su - username&lt;/code&gt;&lt;br&gt;
Temporarily switch to another user’s shell. Useful when performing actions as another user.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F7mtx12dn2rryzd8208wd.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.amazonaws.com%2Fuploads%2Farticles%2F7mtx12dn2rryzd8208wd.png" alt="Image description" width="800" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Run as Superuser
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo command&lt;/code&gt;&lt;br&gt;
Execute one command with superuser privileges. Safer than logging in as root.&lt;/p&gt;

&lt;h2&gt;
  
  
  sudo command
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;visudo&lt;/code&gt;&lt;br&gt;
This safely opens the *&lt;em&gt;/etc/sudoers *&lt;/em&gt; file for editing, which controls sudo permissions. Avoid editing this file directly.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fxtlg051sqek8gohaflvn.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.amazonaws.com%2Fuploads%2Farticles%2Fxtlg051sqek8gohaflvn.png" alt="Image description" width="800" height="107"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;alice ALL=(ALL) NOPASSWD: ALL&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
This allows the user alice to run any command as sudo without being prompted for a password.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fjtpug1td8nzylfj0q3a2.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.amazonaws.com%2Fuploads%2Farticles%2Fjtpug1td8nzylfj0q3a2.png" alt="Image description" width="800" height="78"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitor Logged-In Users
&lt;/h2&gt;

&lt;p&gt;Linux provides tools to view user activity and login history, which is helpful for security and troubleshooting.&lt;br&gt;
&lt;code&gt;who&lt;/code&gt;&lt;br&gt;
Shows who is currently logged in and from where.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fkzz9cdb9zveg1q4qnho5.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.amazonaws.com%2Fuploads%2Farticles%2Fkzz9cdb9zveg1q4qnho5.png" alt="Image description" width="800" height="126"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fyl3soh2knrhsrv2922lq.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.amazonaws.com%2Fuploads%2Farticles%2Fyl3soh2knrhsrv2922lq.png" alt="Image description" width="800" height="108"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;last&lt;/code&gt;&lt;br&gt;
Displays login history using data from /var/log/wtmp.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Ff8sajpfij4tuen2r7jyi.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.amazonaws.com%2Fuploads%2Farticles%2Ff8sajpfij4tuen2r7jyi.png" alt="Image description" width="800" height="124"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Famrfnpcdll9hlbno83dn.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.amazonaws.com%2Fuploads%2Farticles%2Famrfnpcdll9hlbno83dn.png" alt="Image description" width="800" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;w&lt;/code&gt;&lt;br&gt;
Gives detailed information about current users and their active processes.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F5hmcv7pnx82efkghg0q3.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.amazonaws.com%2Fuploads%2Farticles%2F5hmcv7pnx82efkghg0q3.png" alt="Image description" width="800" height="120"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F5w24aiiyzytnvgq82wf3.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.amazonaws.com%2Fuploads%2Farticles%2F5w24aiiyzytnvgq82wf3.png" alt="Image description" width="800" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;id&lt;/code&gt; Displays UID, GID, and group memberships of the specified user.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fpw1mtm9u7vbbozxo0ql7.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.amazonaws.com%2Fuploads%2Farticles%2Fpw1mtm9u7vbbozxo0ql7.png" alt="Image description" width="800" height="125"&gt;&lt;/a&gt;&lt;code&gt;id admin-1&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Ffps5lw0xdltt0klezdz4.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.amazonaws.com%2Fuploads%2Farticles%2Ffps5lw0xdltt0klezdz4.png" alt="Image description" width="800" height="92"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Communicate with Logged-In Users
&lt;/h2&gt;

&lt;p&gt;You can send messages to users on the system using these commands.&lt;br&gt;
&lt;code&gt;users&lt;/code&gt; Prints the usernames of users currently logged in. &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.amazonaws.com%2Fuploads%2Farticles%2Fbwhhob9dwksgpvyq61vx.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.amazonaws.com%2Fuploads%2Farticles%2Fbwhhob9dwksgpvyq61vx.png" alt="Image description" width="800" height="90"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;wall&lt;/code&gt; Broadcasts a message to all terminal users.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Flfjgtvavsn0uldwngok2.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.amazonaws.com%2Fuploads%2Farticles%2Flfjgtvavsn0uldwngok2.png" alt="Image description" width="800" height="127"&gt;&lt;/a&gt;&lt;br&gt;
`wall system will be updated on Monday 25th at 2pm&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F24r3f96sjusf9gzjnvah.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.amazonaws.com%2Fuploads%2Farticles%2F24r3f96sjusf9gzjnvah.png" alt="Image description" width="800" height="89"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;write&lt;/code&gt; Sends a direct message to another user’s terminal. Type your message and press** Ctrl+D **to send.&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.amazonaws.com%2Fuploads%2Farticles%2Fx822zkz6r2kubdojszgs.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.amazonaws.com%2Fuploads%2Farticles%2Fx822zkz6r2kubdojszgs.png" alt="Image description" width="800" height="122"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;write admin-1&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fqi3nw9fd7a6z4xulu0co.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.amazonaws.com%2Fuploads%2Farticles%2Fqi3nw9fd7a6z4xulu0co.png" alt="Image description" width="800" height="111"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fph7uel6fp5xmnz7qg7nr.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.amazonaws.com%2Fuploads%2Farticles%2Fph7uel6fp5xmnz7qg7nr.png" alt="Image description" width="778" height="87"&gt;&lt;/a&gt;&lt;br&gt;
I logged on to &lt;code&gt;admin-1&lt;/code&gt; user on a different terminal and you can see the message was sent to the user successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Linux Account Authentication
&lt;/h2&gt;

&lt;p&gt;Linux authentication verifies a user’s identity. Accounts can be stored locally or managed centrally through a directory service.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local accounts: Defined in /etc/passwd, managed on the local machine.&lt;/li&gt;
&lt;li&gt;Domain accounts: Managed through centralized systems like LDAP or Active Directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Account Types and Directory Services
&lt;/h2&gt;

&lt;p&gt;Different systems are used to manage identities and authentication across networks.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Directory Service&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Active Directory&lt;/td&gt;
&lt;td&gt;Microsoft’s centralized directory system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IDM&lt;/td&gt;
&lt;td&gt;Red Hat’s Identity Manager (based on FreeIPA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WinBIND&lt;/td&gt;
&lt;td&gt;Allows Linux systems to authenticate against AD via Samba&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenLDAP&lt;/td&gt;
&lt;td&gt;Open-source implementation of LDAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IBM Directory&lt;/td&gt;
&lt;td&gt;IBM’s enterprise-grade directory service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JumpCloud&lt;/td&gt;
&lt;td&gt;Cloud-based directory platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LDAP&lt;/td&gt;
&lt;td&gt;Lightweight Directory Access Protocol, used for querying and modifying directory services&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Useful System Utility Commands
&lt;/h2&gt;

&lt;p&gt;Basic system utilities that help admins quickly gather information about the system&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;date&lt;/td&gt;
&lt;td&gt;Displays current date and time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;uptime&lt;/td&gt;
&lt;td&gt;Shows how long the system has been running&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;hostname&lt;/td&gt;
&lt;td&gt;Displays or sets the system’s hostname&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;uname&lt;/td&gt;
&lt;td&gt;Displays kernel and system information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;which&lt;/td&gt;
&lt;td&gt;Finds the location of a command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cal&lt;/td&gt;
&lt;td&gt;Displays a calendar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bc&lt;/td&gt;
&lt;td&gt;Basic calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Processes and Jobs
&lt;/h2&gt;

&lt;p&gt;Processes are instances of running programs. Jobs may refer to background or scheduled tasks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applications: GUI or command-line programs&lt;/li&gt;
&lt;li&gt;Scripts: Shell or other language scripts&lt;/li&gt;
&lt;li&gt;Processes: Running instances of programs&lt;/li&gt;
&lt;li&gt;Daemons: Background services (e.g., sshd)&lt;/li&gt;
&lt;li&gt;Threads: Lightweight processes running within a parent process&lt;/li&gt;
&lt;li&gt;Jobs: Commands or tasks sent to the background or scheduled&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Managing Services and Jobs
&lt;/h2&gt;

&lt;p&gt;Manage services and processes using the following tool.&lt;br&gt;
&lt;strong&gt;systemctl / service&lt;/strong&gt; &lt;br&gt;
&lt;code&gt;sudo systemctl status crond&lt;/code&gt; Check service status (systemd and SysV init compatible).&lt;br&gt;
&lt;code&gt;sudo service nginx status&lt;/code&gt; - will show the same result&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fqym1upkbm7hrl7d4u7y6.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.amazonaws.com%2Fuploads%2Farticles%2Fqym1upkbm7hrl7d4u7y6.png" alt="Image description" width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ps&lt;/code&gt; Shows a snapshot of all running processes. There are several options you can with &lt;code&gt;ps&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.amazonaws.com%2Fuploads%2Farticles%2Fmvvuy0prc3ejpw81552d.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.amazonaws.com%2Fuploads%2Farticles%2Fmvvuy0prc3ejpw81552d.png" alt="Image description" width="800" height="131"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fe9awsiao48k6csft9he7.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.amazonaws.com%2Fuploads%2Farticles%2Fe9awsiao48k6csft9he7.png" alt="Image description" width="800" height="128"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Flide91y1vd27pfwmd1wx.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.amazonaws.com%2Fuploads%2Farticles%2Flide91y1vd27pfwmd1wx.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;top&lt;/code&gt; Real-time view of system performance and resource usage.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fl97ebu8o6qd5joqqwvjl.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.amazonaws.com%2Fuploads%2Farticles%2Fl97ebu8o6qd5joqqwvjl.png" alt="Image description" width="800" height="99"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fcfxfbaekohj372xuty9i.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.amazonaws.com%2Fuploads%2Farticles%2Fcfxfbaekohj372xuty9i.png" alt="Image description" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kill&lt;/code&gt; Terminates a process by PID.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fhpu2ux3jyklzgu5x2s9l.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.amazonaws.com%2Fuploads%2Farticles%2Fhpu2ux3jyklzgu5x2s9l.png" alt="Image description" width="800" height="240"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;kill process ID&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;crontab -e&lt;/code&gt; Schedules recurring tasks (cron jobs). &lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fhcacvaesejtr8g1q2wrv.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.amazonaws.com%2Fuploads%2Farticles%2Fhcacvaesejtr8g1q2wrv.png" alt="Image description" width="800" height="128"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Flpizejhf1043spv0s4ea.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.amazonaws.com%2Fuploads%2Farticles%2Flpizejhf1043spv0s4ea.png" alt="Image description" width="800" height="72"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F6ng9p9inx8e4bc99cg9q.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.amazonaws.com%2Fuploads%2Farticles%2F6ng9p9inx8e4bc99cg9q.png" alt="Image description" width="800" height="112"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Breakdown&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;0 → Minute (0th minute)&lt;/li&gt;
&lt;li&gt;17 → Hour (5 PM, in 24-hour format)&lt;/li&gt;
&lt;li&gt;* * * - Every day of the month, every month, every day of the week&lt;/li&gt;
&lt;li&gt;/home/student/backup.sh - Full path to the script or command to execute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These commands and concepts are essential for effective Linux administration. Whether you're building automation with Ansible, managing user accounts, or monitoring system processes, mastering these tools will greatly increase your confidence and efficiency.&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
      <category>rhcsa</category>
      <category>linux</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Efficient File Management in Linux</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Wed, 07 May 2025 20:22:46 +0000</pubDate>
      <link>https://dev.to/austinozor/efficient-file-management-in-linux-3hlh</link>
      <guid>https://dev.to/austinozor/efficient-file-management-in-linux-3hlh</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Table of Contents&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Comparing Files&lt;br&gt;
Compressing and Uncompressing Files&lt;br&gt;
Truncating File Size&lt;br&gt;
Combining and Splitting Files&lt;/p&gt;

&lt;h2&gt;
  
  
  Description
&lt;/h2&gt;

&lt;p&gt;Managing files effectively is a critical skill for system administrators and DevOps engineers. In this article, we'll cover file comparison, compression, truncation, and filensplitting techniques that will enhance your command line productivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Comparing Files&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Efficiently comparing files is crucial for version control and troubleshooting. Here are the primary commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;diff&lt;/strong&gt; (Line by line comparison)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Compare two text files line by line&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;diff file1.txt file2.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Example&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F3p60zxyk6btvb0khx68u.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.amazonaws.com%2Fuploads%2Farticles%2F3p60zxyk6btvb0khx68u.png" alt="Image description" width="800" height="58"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fgu81ug2aclaovjt5fx38.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.amazonaws.com%2Fuploads%2Farticles%2Fgu81ug2aclaovjt5fx38.png" alt="Image description" width="800" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;cmp&lt;/strong&gt; (Byte by byte comparison)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Compare two files byte by byte&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;cmp file1.txt file2.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Example&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F05i229t97ybe54cqxr3r.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.amazonaws.com%2Fuploads%2Farticles%2F05i229t97ybe54cqxr3r.png" alt="Image description" width="800" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Compressing and Uncompressing Files&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;File compression saves space and reduces transfer time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;tar&lt;/strong&gt; (Tape Archive, often used for creating compressed archives)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create an archive&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;man tar&lt;/code&gt; - to check the function of tar&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.amazonaws.com%2Fuploads%2Farticles%2Fxwvq2bkuwkmsga7c7hev.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.amazonaws.com%2Fuploads%2Farticles%2Fxwvq2bkuwkmsga7c7hev.png" alt="Image description" width="800" height="490"&gt;&lt;/a&gt;&lt;br&gt;
Example&lt;br&gt;
&lt;code&gt;tar -cvf archive.tar logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F17w33we0o1mw47dxbpij.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.amazonaws.com%2Fuploads%2Farticles%2F17w33we0o1mw47dxbpij.png" alt="Image description" width="800" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extract the archive&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;tar -xvf archive.tar&lt;/code&gt;&lt;br&gt;
Example&lt;br&gt;
&lt;code&gt;tar -xvf files.tar&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fh6a92pr21jm7zwu2bnif.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.amazonaws.com%2Fuploads%2Farticles%2Fh6a92pr21jm7zwu2bnif.png" alt="Image description" width="800" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;gzip&lt;/strong&gt; (Compress files)&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.amazonaws.com%2Fuploads%2Farticles%2F6i3zbz4jvmdnp4dv85r9.png" alt="Image description" width="800" height="411"&gt;
&lt;code&gt;gzip logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fw4319x3v396ntj0mowxy.png" alt="Image description" width="800" height="223"&gt;
&lt;code&gt;gzip -d logfile.txt.gz&lt;/code&gt; # Decompressing with gzip&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.amazonaws.com%2Fuploads%2Farticles%2Fgs0pmd3r8sdqp3pqbr3v.png" alt="Image description" width="800" height="218"&gt;
&lt;code&gt;gunzip file.txt.gz&lt;/code&gt;   # Alternative decompression&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.amazonaws.com%2Fuploads%2Farticles%2F2pvii0ox3kl3nw8zd2hr.png" alt="Image description" width="800" height="248"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Truncating File Size&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Reduce or extend file sizes to a specific size using the &lt;strong&gt;truncate&lt;/strong&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Truncate or extend a file to 10 bytes&lt;/strong&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.amazonaws.com%2Fuploads%2Farticles%2F6eub4dhlg1c1hwb81hna.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.amazonaws.com%2Fuploads%2Farticles%2F6eub4dhlg1c1hwb81hna.png" alt="Image description" width="800" height="266"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;truncate -s 10 testfile1&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fvdd2zw67vy473mojgsb1.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.amazonaws.com%2Fuploads%2Farticles%2Fvdd2zw67vy473mojgsb1.png" alt="Image description" width="800" height="80"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F0ylpqt89fdrxqr74qia6.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.amazonaws.com%2Fuploads%2Farticles%2F0ylpqt89fdrxqr74qia6.png" alt="Image description" width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Combining and Splitting Files&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Combining Multiple Files&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Combine multiple files into one&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;cat testfile1.txt testfile2.txt &amp;gt; combined.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fvwjs1hrhgif8yq8ekmhv.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.amazonaws.com%2Fuploads%2Farticles%2Fvwjs1hrhgif8yq8ekmhv.png" alt="Image description" width="800" height="72"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Ff225c5s5n4y580ne0h6r.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.amazonaws.com%2Fuploads%2Farticles%2Ff225c5s5n4y580ne0h6r.png" alt="Image description" width="800" height="60"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fi7xjzmd7kks6vlpin5es.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.amazonaws.com%2Fuploads%2Farticles%2Fi7xjzmd7kks6vlpin5es.png" alt="Image description" width="800" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Splitting a File&lt;/strong&gt;
Split a file into smaller chunks:
&lt;code&gt;split -l 100 split.txt childfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fc25to7sseds4zi5r9e62.png" alt="Image description" width="800" height="54"&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.amazonaws.com%2Fuploads%2Farticles%2Fzdm2xlkcd41o8q5doibt.png" alt="Image description" width="800" height="136"&gt;
This command will split &lt;strong&gt;split.txt&lt;/strong&gt; into 100-line chunks, creating files like &lt;strong&gt;childfile.txtaa&lt;/strong&gt;, &lt;strong&gt;childfile.txtab&lt;/strong&gt; so on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These commands are essential for efficiently managing files on Linux servers. Understanding their capabilities can significantly streamline your workflow as a system administrator or DevOps engineer.&lt;/p&gt;




</description>
      <category>cloudwhistler</category>
      <category>redhat</category>
      <category>linux</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Mastering Linux Text Processing Commands: cut, awk, grep, and more</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Mon, 05 May 2025 17:25:59 +0000</pubDate>
      <link>https://dev.to/austinozor/mastering-linux-text-processing-commands-cut-awk-grep-and-more-1lap</link>
      <guid>https://dev.to/austinozor/mastering-linux-text-processing-commands-cut-awk-grep-and-more-1lap</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;cut: Extracting Specific Parts of a Line&lt;/li&gt;
&lt;li&gt;awk: Field-Based Processing and Pattern Matching&lt;/li&gt;
&lt;li&gt;grep &amp;amp; egrep: Pattern Search&lt;/li&gt;
&lt;li&gt;sort: Sorting Output&lt;/li&gt;
&lt;li&gt;uniq: Finding Unique Lines&lt;/li&gt;
&lt;li&gt;wc: Word, Line, and Character Count&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Description
&lt;/h2&gt;

&lt;p&gt;Learn how to manipulate, filter, and analyze text in Linux using powerful tools like cut, awk, grep, sort, uniq, and wc — with examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;cut&lt;/code&gt;: Extracting Specific Parts of a Line
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;cut&lt;/code&gt; command allows you to extract parts of a line based on character position, byte size, or delimiter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common &lt;code&gt;cut&lt;/code&gt; Examples:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -c1 filename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the first character of each line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -c1,2,4 filename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show characters 1, 2, and 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -c1-3 filename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show a range of characters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -b1-3 filename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cut by byte size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -d: -f6 /etc/passwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the 6th field, using &lt;code&gt;:&lt;/code&gt; as delimiter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -d: -f6-7 /etc/passwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show fields 6 and 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`ls -l&lt;/td&gt;
&lt;td&gt;cut -c2-4`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;cut --version&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F35j49vwotkc6kpe4bh3q.png" alt="Image description" width="800" height="216"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cut -c1 file6&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F99hz3ds8enh2a9la16c2.png" alt="Image description" width="800" height="347"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cut -c1,2,4 file6&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F0tn4t6de29q7qz6rijxn.png" alt="Image description" width="800" height="326"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cut -c1-3 file6&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fap7gsg4c5a16q7rmeazd.png" alt="Image description" width="800" height="338"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cut -b1-3 file6&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fsg2gtvhntoy7882d5zjr.png" alt="Image description" width="800" height="342"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cut -d: -f6 /etc/passwd&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fth1ojh8o1wnlldes6dg8.png" alt="Image description" width="800" height="489"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cut -d: -f6-7 /etc/passwd&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fxapcy3isf9lfejgiv43p.png" alt="Image description" width="800" height="396"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -l | cut -c1-4&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fdhss7s96stca6rbrkmh8.png" alt="Image description" width="800" height="303"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;awk&lt;/code&gt;: Field-Based Processing and Pattern Matching
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;awk&lt;/code&gt; is a powerful text-processing language great for extracting and analyzing structured data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common &lt;code&gt;awk&lt;/code&gt; Examples:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;awk --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;awk '{print $1}' file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the first field of each line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`ls -l&lt;/td&gt;
&lt;td&gt;awk '{print $1,$3}'`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`ls -l&lt;/td&gt;
&lt;td&gt;awk '{print $NF}'`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;awk '/Jerry/ {print}' file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show lines containing "Jerry"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;awk -F: '{print $1}' /etc/passwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the first field using &lt;code&gt;:&lt;/code&gt; as delimiter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`echo "Hello Tom"&lt;/td&gt;
&lt;td&gt;awk '{$2="Adam"; print $0}'`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;awk 'length($0) &amp;gt; 15' file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show lines longer than 15 characters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`ls -l&lt;/td&gt;
&lt;td&gt;awk '{if($9=="seinfeld") print $0;}'`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`ls -l&lt;/td&gt;
&lt;td&gt;awk '{print NF}'`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;awk --version&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fg03ivuscnk6ce6xjyped.png" alt="Image description" width="800" height="356"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;awk '{print $1}' file6&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F5tpmeu6xc3pncbh7ds7d.png" alt="Image description" width="800" height="354"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -l | awk '{print $1,$3}&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fp8mwe9l02zb5exwe7ntc.png" alt="Image description" width="800" height="278"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;grep&lt;/code&gt; &amp;amp; &lt;code&gt;egrep&lt;/code&gt;: Pattern Search
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;grep&lt;/code&gt; to search for patterns in text files.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep 'error' logfile.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search for "error" in a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`egrep 'warn&lt;/td&gt;
&lt;td&gt;fail' logfile.txt`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep -i 'login' file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Case-insensitive search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep -v 'debug' file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude lines with "debug"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep -r 'main' /etc/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursively search through directories&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;grep 'error' logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fn6ntq1k9ltc22nutmb2i.png" alt="Image description" width="800" height="160"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;egrep 'warn|fail' logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F4oy01668yvx1i7dob78b.png" alt="Image description" width="800" height="286"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grep -v 'fail' logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2F8nw2kyrhsa6zmcbz7847.png" alt="Image description" width="800" height="391"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grep -r 'main' /etc/&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fwpqhj92sx83uvvhr4bs3.png" alt="Image description" width="800" height="465"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;sort&lt;/code&gt;: Sorting Output
&lt;/h2&gt;

&lt;p&gt;Sort lines in alphabetical or numerical order.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort file alphabetically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -r file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reverse sort&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -n numbers.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort numerically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -u file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove duplicates after sorting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;uniq&lt;/code&gt;: Finding Unique Lines
&lt;/h2&gt;

&lt;p&gt;Filters repeated lines. Often used with &lt;code&gt;sort&lt;/code&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;uniq file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show unique lines (removes duplicates)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`sort file.txt&lt;/td&gt;
&lt;td&gt;uniq`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;uniq -c file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count occurrences of each line&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;wc&lt;/code&gt;: Word, Line, and Character Count
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;wc&lt;/code&gt; stands for word count and can be used for multiple metrics.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -l file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -w file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count words&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -c file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count characters (bytes)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`cat file.txt&lt;/td&gt;
&lt;td&gt;wc`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;wc logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fvpf3yghnmhg70f5tat6l.png" alt="Image description" width="800" height="110"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wc -w logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Flut3sk1b9abyi2bso5f9.png" alt="Image description" width="800" height="93"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wc -c logfile.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fksz30jtzvjrkavoaeqm1.png" alt="Image description" width="800" height="111"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cat logfile.txt | wc&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fjgxuzh2r12p5ks5mewba.png" alt="Image description" width="800" height="107"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These commands are the backbone of text processing and data filtering on the Linux command line. Whether you're working with logs, config files, or large datasets, knowing how to combine and use &lt;code&gt;cut&lt;/code&gt;, &lt;code&gt;awk&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;sort&lt;/code&gt;, &lt;code&gt;uniq&lt;/code&gt;, and &lt;code&gt;wc&lt;/code&gt; will make your life a lot easier.&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
      <category>redhat</category>
      <category>linux</category>
    </item>
    <item>
      <title>Embracing Open Standards in Cloud-Native Development</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Thu, 01 May 2025 21:17:50 +0000</pubDate>
      <link>https://dev.to/austinozor/embracing-open-standards-in-cloud-native-development-3dbe</link>
      <guid>https://dev.to/austinozor/embracing-open-standards-in-cloud-native-development-3dbe</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Why Open Standards Matter&lt;/li&gt;
&lt;li&gt;
Key Open Standards in the Cloud-Native Ecosystem

&lt;ul&gt;
&lt;li&gt;Open Container Initiative (OCI)&lt;/li&gt;
&lt;li&gt;Container Network Interface (CNI)&lt;/li&gt;
&lt;li&gt;Container Runtime Interface (CRI)&lt;/li&gt;
&lt;li&gt;Container Storage Interface (CSI)&lt;/li&gt;
&lt;li&gt;Service Mesh Interface (SMI)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
CNCF Project Maturity Levels

&lt;ul&gt;
&lt;li&gt;Sandbox Stage&lt;/li&gt;
&lt;li&gt;Incubating Stage&lt;/li&gt;
&lt;li&gt;Graduation Stage&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Description
&lt;/h2&gt;

&lt;p&gt;In the rapidly evolving landscape of cloud-native technologies, open standards play a pivotal role in ensuring interoperability, scalability, and innovation. By adhering to open specifications, developers and organizations can avoid vendor lock-in, foster collaboration, and build robust systems that stand the test of time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Standards Matter
&lt;/h2&gt;

&lt;p&gt;Open standards are the backbone of a healthy and collaborative cloud-native ecosystem. They provide a common language and set of expectations that enable diverse tools and platforms to work together seamlessly. By embracing open standards, developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Avoid Vendor Lock-In&lt;/strong&gt;: Easily switch between providers without significant rework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhance Interoperability&lt;/strong&gt;: Ensure different components of the system can communicate effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Foster Innovation&lt;/strong&gt;: Encourage community contributions and rapid development.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Open Standards in the Cloud-Native Ecosystem
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Open Container Initiative (OCI)
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://opencontainers.org/" rel="noopener noreferrer"&gt;Open Container Initiative (OCI)&lt;/a&gt; defines standards for container formats and runtimes to ensure consistency and compatibility across different container tools and platforms. It encompasses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Image Specification&lt;/strong&gt;: Defines how to build and package container images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime Specification&lt;/strong&gt;: Specifies the configuration and lifecycle of containers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distribution Specification&lt;/strong&gt;: Standardizes the distribution of container images.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Container Network Interface (CNI)
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://www.cni.dev/" rel="noopener noreferrer"&gt;Container Network Interface (CNI)&lt;/a&gt; provides a standardized way to configure network interfaces in Linux containers. It defines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A format for network configuration.&lt;/li&gt;
&lt;li&gt;A protocol for container runtimes to make network requests.&lt;/li&gt;
&lt;li&gt;Procedures for executing and delegating plugins. (&lt;a href="https://www.redhat.com/en/blog/cni-kubernetes?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;A brief overview of the Container Network Interface (CNI ... - Red Hat&lt;/a&gt;, &lt;a href="https://github.com/containernetworking/cni/blob/master/SPEC.md?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;cni/SPEC.md at main · containernetworking/cni - GitHub&lt;/a&gt;)
This ensures that containers can communicate over the network reliably.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Container Runtime Interface (CRI)
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://kubernetes.io/docs/concepts/architecture/cri/" rel="noopener noreferrer"&gt;Container Runtime Interface (CRI)&lt;/a&gt; is a plugin interface that allows Kubernetes to use various container runtimes without the need to recompile cluster components. It enables: (&lt;a href="https://smi-spec.io/blog/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;A standard interface for service meshes on Kubernetes - SMI&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexibility in choosing container runtimes.&lt;/li&gt;
&lt;li&gt;Simplified integration of new runtimes into Kubernetes.
This abstraction layer enhances the modularity and extensibility of Kubernetes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Container Storage Interface (CSI)
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://github.com/container-storage-interface/spec" rel="noopener noreferrer"&gt;Container Storage Interface (CSI)&lt;/a&gt; standardizes the way storage systems are exposed to containerized workloads. It allows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Third-party storage providers to develop plugins.&lt;/li&gt;
&lt;li&gt;Kubernetes and other orchestration systems to integrate storage solutions seamlessly. (&lt;a href="https://www.cncf.io/projects/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Graduated and Incubating Projects | CNCF&lt;/a&gt;)
This promotes a diverse and flexible storage ecosystem.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Service Mesh Interface (SMI)
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://smi-spec.io/" rel="noopener noreferrer"&gt;Service Mesh Interface (SMI)&lt;/a&gt; provides a standard interface for service meshes on Kubernetes, focusing on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Traffic policy management.&lt;/li&gt;
&lt;li&gt;Telemetry and observability.&lt;/li&gt;
&lt;li&gt;Secure service-to-service communication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By offering a common set of APIs, SMI enables interoperability among different service mesh implementations.&lt;/p&gt;

&lt;h2&gt;
  
  
  CNCF Project Maturity Levels
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.cncf.io/" rel="noopener noreferrer"&gt;Cloud Native Computing Foundation (CNCF)&lt;/a&gt; categorizes projects based on their maturity to guide adoption and development:&lt;/p&gt;

&lt;h3&gt;
  
  
  Sandbox Stage
&lt;/h3&gt;

&lt;p&gt;This is the entry point for early-stage projects. Sandbox projects are experimental and are meant to foster innovation and community collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Incubating Stage
&lt;/h3&gt;

&lt;p&gt;Projects in this stage have demonstrated growing adoption and have met certain criteria, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Successful use in production by multiple organizations.&lt;/li&gt;
&lt;li&gt;A healthy number of contributors and committers.&lt;/li&gt;
&lt;li&gt;Clear documentation and versioning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Graduation Stage
&lt;/h3&gt;

&lt;p&gt;Graduated projects are considered stable and have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Achieved widespread adoption.&lt;/li&gt;
&lt;li&gt;A robust governance and committer process.&lt;/li&gt;
&lt;li&gt;Completed a security audit with addressed vulnerabilities.
These stages help users assess the readiness and reliability of CNCF projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Open standards are essential for building a resilient and interoperable cloud-native ecosystem. By adhering to specifications like OCI, CNI, CRI, CSI, and SMI, developers can create flexible and scalable applications. Understanding the CNCF project maturity levels further aids in making informed decisions about adopting and contributing to these projects.&lt;/p&gt;

&lt;p&gt;Embracing open standards not only fosters innovation but also ensures that the cloud-native landscape remains collaborative and vendor-neutral.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>cloudwhistler</category>
      <category>docker</category>
    </item>
    <item>
      <title>Managing Files, Links, and Redirection in Linux</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Thu, 01 May 2025 14:40:08 +0000</pubDate>
      <link>https://dev.to/austinozor/managing-files-links-and-redirection-in-linux-hg1</link>
      <guid>https://dev.to/austinozor/managing-files-links-and-redirection-in-linux-hg1</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
File Links in Linux

&lt;ul&gt;
&lt;li&gt;Soft Links (Symbolic)&lt;/li&gt;
&lt;li&gt;Hard Links&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Creating Links with ln&lt;/li&gt;

&lt;li&gt;

Input and Output Redirection

&lt;ul&gt;
&lt;li&gt;Standard Output (stdout)&lt;/li&gt;
&lt;li&gt;Appending Output&lt;/li&gt;
&lt;li&gt;Standard Input (stdin)&lt;/li&gt;
&lt;li&gt;Standard Error (stderr)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;br&gt;
Learn how to manage files from the command line, create soft and hard links, and use input/output redirection in Linux. Includes clear examples for stdout, stderr, and stdin.&lt;/p&gt;

&lt;h1&gt;
  
  
  Managing Files, Links, and Redirection in Linux — A Practical Guide
&lt;/h1&gt;

&lt;p&gt;Whether you're preparing for RHCSA, working in DevOps, or just learning Linux, mastering file links and I/O redirection is essential. This guide walks through &lt;strong&gt;soft vs hard links&lt;/strong&gt; and how to use &lt;strong&gt;stdin, stdout, and stderr&lt;/strong&gt; redirection with clear, real-world examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  File Links in Linux
&lt;/h2&gt;

&lt;p&gt;Every file on a Linux filesystem has an &lt;strong&gt;inode&lt;/strong&gt;, which is like a pointer to where the file lives on the disk.&lt;/p&gt;

&lt;p&gt;There are &lt;strong&gt;two types of links&lt;/strong&gt; you can create to refer to a file:&lt;/p&gt;

&lt;h3&gt;
  
  
  Soft Links (Symbolic)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A soft link points to the original file path.&lt;/li&gt;
&lt;li&gt;If the original file is &lt;strong&gt;deleted or renamed&lt;/strong&gt;, the link is broken.&lt;/li&gt;
&lt;li&gt;Works across different filesystems.
Example
&lt;code&gt;ln -s /home/user/original.txt shortcut.txt&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Ftrrb5fneacqb31cvgccg.png" alt="Image description" width="800" height="316"&gt;
Ones delete, soft link is broken &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.amazonaws.com%2Fuploads%2Farticles%2F2q20d5e5yxxw0jurzne3.png" alt="Image description" width="800" height="18"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hard Links
&lt;/h2&gt;

&lt;p&gt;A hard link points directly to the file's inode.&lt;br&gt;
Deleting or renaming the original file doesn’t break the link.&lt;br&gt;
Cannot span across different filesystems.&lt;br&gt;
&lt;code&gt;ln /home/user/original.txt clone.txt&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F2ce0sybyhm52niziwflu.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.amazonaws.com%2Fuploads%2Farticles%2F2ce0sybyhm52niziwflu.png" alt="Image description" width="800" height="51"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fzmyrdx3hbay4itw3tap5.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.amazonaws.com%2Fuploads%2Farticles%2Fzmyrdx3hbay4itw3tap5.png" alt="Image description" width="800" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Links with &lt;code&gt;ln&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates a hard link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s file1 linkname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates a symbolic (soft) link&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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.amazonaws.com%2Fuploads%2Farticles%2F5lxnp2zidj05o3w0mpcz.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.amazonaws.com%2Fuploads%2Farticles%2F5lxnp2zidj05o3w0mpcz.png" alt="Image description" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Input and Output Redirection
&lt;/h2&gt;

&lt;p&gt;Linux uses three default data streams&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stream&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;File Descriptor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;stdin&lt;/td&gt;
&lt;td&gt;Standard Input&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stdout&lt;/td&gt;
&lt;td&gt;Standard Output&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stderr&lt;/td&gt;
&lt;td&gt;Standard Error&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Standard Output (stdout)
&lt;/h2&gt;

&lt;p&gt;By default, command output shows in the terminal. You can redirect it to a file using &lt;strong&gt;&lt;code&gt;&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;ls -l &amp;gt; listings&lt;/code&gt;&lt;br&gt;
&lt;code&gt;pwd &amp;gt; findpath&lt;/code&gt;&lt;br&gt;
This overwrites the file if it exists.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F94l2ivsqu0af9sn6rscz.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.amazonaws.com%2Fuploads%2Farticles%2F94l2ivsqu0af9sn6rscz.png" alt="Image description" width="800" height="209"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F22uj7a966dkp1h16e2pm.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.amazonaws.com%2Fuploads%2Farticles%2F22uj7a966dkp1h16e2pm.png" alt="Image description" width="800" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Appending Output
&lt;/h2&gt;

&lt;p&gt;Use &amp;gt;&amp;gt; to append to an existing file without overwriting:&lt;br&gt;
&lt;code&gt;ls -la &amp;gt;&amp;gt; listings&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fy499gwqb70ryxg6ybcoa.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.amazonaws.com%2Fuploads%2Farticles%2Fy499gwqb70ryxg6ybcoa.png" alt="Image description" width="800" height="311"&gt;&lt;/a&gt;&lt;code&gt;echo "Hello World" &amp;gt;&amp;gt; findpath&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fvjt4uc9hei21zsu6g4vw.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.amazonaws.com%2Fuploads%2Farticles%2Fvjt4uc9hei21zsu6g4vw.png" alt="Image description" width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Standard Input (stdin)
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;&amp;lt;&lt;/code&gt; to provide input from a file to a command&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat &amp;lt; listings&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mail -s "Office memo" allusers@abc.com &amp;lt; memoletter&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Standard Error (stderr)
&lt;/h2&gt;

&lt;p&gt;Redirect errors using &lt;code&gt;2&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;ls -l /root 2&amp;gt; errorfile&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fns17n5p4ey0wa52yg6zo.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.amazonaws.com%2Fuploads%2Farticles%2Fns17n5p4ey0wa52yg6zo.png" alt="Image description" width="800" height="120"&gt;&lt;/a&gt;&lt;code&gt;telnet localhost 2&amp;gt; errorfile&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F2b1zulfe3b2c349f9i0o.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.amazonaws.com%2Fuploads%2Farticles%2F2b1zulfe3b2c349f9i0o.png" alt="Image description" width="800" height="155"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;To redirect both output and errors to the same file&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;command &amp;gt; output.txt 2&amp;gt;&amp;amp;1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Or, split them&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;command &amp;gt; out.txt 2&amp;gt; err.txt&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Understanding how to manage links and redirect input/output gives you more control over how Linux handles files and processes. Whether you're scripting, debugging, or configuring servers, these tools will save you time and help avoid mistakes.&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
      <category>redhat</category>
    </item>
    <item>
      <title>Serverless Computing: Simplifying Cloud Development</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Wed, 30 Apr 2025 17:06:23 +0000</pubDate>
      <link>https://dev.to/austinozor/serverless-computing-simplifying-cloud-development-2o88</link>
      <guid>https://dev.to/austinozor/serverless-computing-simplifying-cloud-development-2o88</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Serverless Computing: Simplifying Cloud Development&lt;/li&gt;
&lt;li&gt;What Is Serverless Computing?&lt;/li&gt;
&lt;li&gt;Function as a Service (FaaS)&lt;/li&gt;
&lt;li&gt;Benefits of Serverless Computing&lt;/li&gt;
&lt;li&gt;Challenges and Considerations&lt;/li&gt;
&lt;li&gt;The Role of CloudEvents&lt;/li&gt;
&lt;li&gt;Use Cases for Serverless Computing&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Descriptions
&lt;/h2&gt;

&lt;p&gt;Serverless computing is a cloud computing model that allows developers to build and run applications without managing the underlying infrastructure. Despite the name, servers are still involved; however, the responsibility of managing them shifts from the developer to the cloud provider. This model enables developers to focus solely on writing code, while the cloud provider handles server provisioning, scaling, and maintenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Serverless Computing?
&lt;/h2&gt;

&lt;p&gt;In traditional cloud computing models, developers must manage server infrastructure, including provisioning, scaling, and maintenance. Serverless computing abstracts these responsibilities, allowing developers to deploy code that automatically scales and executes in response to events. This model is particularly beneficial for applications with variable workloads, as it provides automatic scaling and a pay-per-use billing model. &lt;/p&gt;

&lt;h2&gt;
  
  
  Function as a Service (FaaS)
&lt;/h2&gt;

&lt;p&gt;Function as a Service (FaaS) is a subset of serverless computing where developers write small, single-purpose functions that are triggered by specific events. These functions are stateless and ephemeral, executing only when invoked and scaling automatically based on demand. FaaS platforms, such as AWS Lambda, Google Cloud Functions, and Azure Functions, manage the execution environment, allowing developers to focus on code rather than infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Serverless Computing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reduced Operational Complexity:&lt;/strong&gt; Developers are relieved from server management tasks, allowing them to concentrate on application logic.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automatic Scaling:&lt;/strong&gt; Applications automatically scale up or down based on demand, ensuring optimal resource utilization.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost Efficiency:&lt;/strong&gt; With a pay-per-use billing model, organizations pay only for the compute resources they consume, potentially reducing costs.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faster Time to Market:&lt;/strong&gt; Simplified deployment processes enable quicker release cycles and faster innovation.​&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Considerations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cold Starts:&lt;/strong&gt; Functions may experience latency during initial invocation after a period of inactivity, known as a cold start.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vendor Lock-In:&lt;/strong&gt; Proprietary implementations by cloud providers can make it challenging to migrate applications between platforms.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limited Execution Time:&lt;/strong&gt; FaaS platforms often impose execution time limits, which may not be suitable for long-running processes.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging and Monitoring:&lt;/strong&gt; Observability can be more complex in serverless environments due to the ephemeral nature of functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of CloudEvents
&lt;/h2&gt;

&lt;p&gt;To address interoperability challenges, the Cloud Native Computing Foundation introduced CloudEvents, a specification for describing event data in a common format. By standardizing event metadata, CloudEvents facilitates integration between services and platforms, promoting portability and reducing vendor lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases for Serverless Computing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Event-Driven Applications:&lt;/strong&gt; Applications that respond to events, such as file uploads or database changes, benefit from the reactive nature of serverless architectures.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microservices:&lt;/strong&gt; Serverless functions align well with microservices architectures, enabling modular and independently deployable components.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Processing:&lt;/strong&gt; Tasks like image processing, data transformation, and real-time analytics can be efficiently handled by serverless functions.​&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scheduled Tasks:&lt;/strong&gt; Functions can be scheduled to run at specific intervals, making them suitable for cron jobs and periodic tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Serverless computing represents a paradigm shift in application development, offering a model that emphasizes simplicity, scalability, and cost efficiency. While it introduces new considerations, such as cold starts and potential vendor lock-in, the benefits often outweigh the challenges for many use cases. As the ecosystem matures, standards like CloudEvents will play a crucial role in enhancing interoperability and reducing complexity.​&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>cloudnative</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Cloud-Native Applications: 7 Key Characteristics You Should Know</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Tue, 29 Apr 2025 16:44:00 +0000</pubDate>
      <link>https://dev.to/austinozor/cloud-native-applications-7-key-characteristics-you-should-know-614</link>
      <guid>https://dev.to/austinozor/cloud-native-applications-7-key-characteristics-you-should-know-614</guid>
      <description>&lt;p&gt;As more of us dive into building cloud-native apps, it's essential to understand what sets them apart. These applications are built to thrive in dynamic environments like the cloud—fast, resilient, scalable, and secure.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk you through &lt;strong&gt;7 core characteristics&lt;/strong&gt; that define cloud-native applications in simple, real-world terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. High Level of Automation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Automation is the heartbeat of cloud-native development. From writing code to testing and deploying it, automation helps you ship faster with fewer bugs.&lt;/p&gt;

&lt;p&gt;Using tools like &lt;strong&gt;CI/CD pipelines&lt;/strong&gt; (think GitHub Actions, GitLab CI, Jenkins) means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimal manual effort
&lt;/li&gt;
&lt;li&gt;Quicker release cycles
&lt;/li&gt;
&lt;li&gt;Easier rollback or disaster recovery if something goes wrong
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A well-automated workflow lets you focus more on building, and less on babysitting deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Self-Healing Systems&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Apps crash. Servers go down. It’s normal.&lt;/p&gt;

&lt;p&gt;Cloud-native systems expect this and come prepared with built-in &lt;strong&gt;health checks&lt;/strong&gt; and restart mechanisms. This means if one part of your app fails, the rest keeps running while the broken part fixes itself automatically.&lt;/p&gt;

&lt;p&gt;It’s like your app has its own immune system. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Scalable by Design&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Need to handle more traffic? No problem.&lt;/p&gt;

&lt;p&gt;Cloud-native apps are built to &lt;strong&gt;scale up&lt;/strong&gt; (add more resources when needed) and &lt;strong&gt;scale down&lt;/strong&gt; (use fewer resources when things are quiet). This can happen automatically based on metrics like CPU usage or memory.&lt;/p&gt;

&lt;p&gt;Think of it like adding more checkout lanes at a store when the line gets long—and closing them when it gets short.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Cost-Efficient&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Scaling works both ways. If your app isn’t being used much, it can scale down—or even shut down temporarily. This is super helpful for saving on costs, especially with &lt;strong&gt;pay-as-you-go cloud models&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Using tools like &lt;strong&gt;Kubernetes&lt;/strong&gt; helps optimize resource usage by smartly placing your workloads on available machines. More efficiency = lower bill!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;5. Easy to Maintain&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Cloud-native apps often use &lt;strong&gt;microservices&lt;/strong&gt;, meaning your application is broken into smaller, manageable pieces. Each microservice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can be built and deployed independently
&lt;/li&gt;
&lt;li&gt;Is easier to test and debug
&lt;/li&gt;
&lt;li&gt;Can be handled by separate teams
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This structure makes your app modular and maintainable—like having individual LEGO blocks instead of one giant glued-together brick.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;6. Secure by Default&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In traditional systems, once you’re “inside,” you can often access anything. But modern cloud environments follow a &lt;strong&gt;zero trust model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This means &lt;strong&gt;every user and process&lt;/strong&gt; has to prove who they are—every time.&lt;/p&gt;

&lt;p&gt;Cloud-native security includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fine-grained access controls
&lt;/li&gt;
&lt;li&gt;Encryption
&lt;/li&gt;
&lt;li&gt;Isolation between workloads
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security is baked in—not bolted on.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;7. Autoscaling (Horizontal vs Vertical)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Autoscaling is one of the coolest cloud-native features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Horizontal scaling&lt;/strong&gt; means adding more machines or containers (e.g., more people lifting a heavy object).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vertical scaling&lt;/strong&gt; means giving more power (CPU/RAM) to your existing machine (e.g., building muscle to lift it yourself).&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.amazonaws.com%2Fuploads%2Farticles%2Fyr9lr5nja8bg3h2uuwoa.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.amazonaws.com%2Fuploads%2Farticles%2Fyr9lr5nja8bg3h2uuwoa.png" alt="Image description" width="800" height="385"&gt;&lt;/a&gt;&lt;br&gt;
Most cloud providers support autoscaling based on metrics like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU usage
&lt;/li&gt;
&lt;li&gt;Memory usage
&lt;/li&gt;
&lt;li&gt;Time of day
&lt;/li&gt;
&lt;li&gt;Custom business metrics
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You define &lt;strong&gt;minimum and maximum limits&lt;/strong&gt; and the system does the rest—scaling up when needed and shrinking down when it’s not.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Cloud-native applications aren’t just apps that run in the cloud—they’re designed to &lt;em&gt;thrive&lt;/em&gt; there.&lt;/p&gt;

&lt;p&gt;To summarize&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automate everything&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expect failure, and recover automatically&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale smartly&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimize cost and performance&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay secure&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Break apps into manageable parts&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By embracing these principles, you’ll build apps that are faster, stronger, and smarter.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What part of cloud-native architecture do you find most challenging? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Follow me for more practical posts on Cloud, DevOps, and Cybersecurity.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  cloudnative #aws #devops #cloudcomputing #microservices #kubernetes #automation #security
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Cloud Native Architecture: A Simple Introduction</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Mon, 28 Apr 2025 18:31:43 +0000</pubDate>
      <link>https://dev.to/austinozor/cloud-native-architecture-a-simple-introduction-783</link>
      <guid>https://dev.to/austinozor/cloud-native-architecture-a-simple-introduction-783</guid>
      <description>&lt;p&gt;When we hear "cloud native," it can sound like a buzzword — but at its core, it's about one thing: building better software for the cloud.&lt;/p&gt;

&lt;p&gt;Cloud Native Architecture is about designing apps that are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Cost-efficient&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Reliable&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Fast to market&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s not just about technology — it’s also a mindset shift.&lt;br&gt;
The Cloud Native Computing Foundation defines it perfectly:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In simpler words: you're building apps that thrive in the cloud, using containers, service meshes, microservices, immutable infrastructure, and declarative APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traditional (Monolithic) vs Cloud Native (Microservices)
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Fgioke0j9r5vajibltykr.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.amazonaws.com%2Fuploads%2Farticles%2Fgioke0j9r5vajibltykr.png" alt="Image description" width="800" height="411"&gt;&lt;/a&gt;&lt;br&gt;
Old-school (legacy) apps were often monolithic all-in-one packages with everything (UI, product catalog, shopping cart, checkout) bundled tightly together.&lt;/p&gt;

&lt;p&gt;Monoliths are simple to start with but painful to scale, update, or manage when complexity grows.&lt;/p&gt;

&lt;p&gt;Now imagine breaking that massive app into smaller, independent pieces called microservices.&lt;br&gt;
Each microservice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Handles just one job (like checkout or product listing)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Can be scaled separately&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Can be updated independently&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Can be owned by different teams&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your checkout service suddenly gets slammed with traffic, you can scale just that service — no need to touch the whole app.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Catch?
&lt;/h2&gt;

&lt;p&gt;Cloud native isn't magic.&lt;br&gt;
You need&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Good architecture practices&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Strong DevOps culture&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Observability&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;- Automation everywhere&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;More flexibility comes with more complexity.&lt;br&gt;
But if done right, the payoff is huge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Cloud native is more than just a tech trend, it's a new way of thinking about how we design, build, and scale applications for today's users.&lt;/p&gt;

&lt;p&gt;If you’re stepping into cloud development or DevOps, understanding these principles early can seriously level up your career. &lt;/p&gt;

&lt;h1&gt;
  
  
  cloudnative #devops #microservices #cloudcomputing #softwarearchitecture #aws #kubernetes #devto
&lt;/h1&gt;

</description>
      <category>kubernetes</category>
      <category>linux</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Understanding ACL and Special Permissions in Linux</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Mon, 28 Apr 2025 15:10:03 +0000</pubDate>
      <link>https://dev.to/austinozor/understanding-acl-and-special-permissions-in-linux-3g3h</link>
      <guid>https://dev.to/austinozor/understanding-acl-and-special-permissions-in-linux-3g3h</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is ACL (Access Control List)?&lt;/li&gt;
&lt;li&gt;ACL Management Commands&lt;/li&gt;
&lt;li&gt;What Are Special Permissions?&lt;/li&gt;
&lt;li&gt;
Types of Special Permissions

&lt;ul&gt;
&lt;li&gt;SUID&lt;/li&gt;
&lt;li&gt;SGID&lt;/li&gt;
&lt;li&gt;Sticky Bit&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Set Permissions Numerically&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Description: Learn how to manage ACLs and set SUID, SGID, and Sticky Bit permissions in Linux. This is part of my RHCSA and Ansible training journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding ACL and Special Permissions in Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When basic file permissions aren't enough, Linux offers more advanced options: &lt;strong&gt;Access Control Lists (ACLs)&lt;/strong&gt; and &lt;strong&gt;Special Permissions&lt;/strong&gt; like &lt;strong&gt;SUID, SGID&lt;/strong&gt;, and the &lt;strong&gt;Sticky Bit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These permissions are powerful tools for system admins, especially when managing shared directories, automation scripts, and user access on multi-user systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ACL (Access Control List)?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ACL&lt;/strong&gt; allows you to assign different permission levels to &lt;strong&gt;individual users or groups&lt;/strong&gt; for a file or directory — going beyond the basic user/group/others model.&lt;/p&gt;

&lt;h2&gt;
  
  
  ACL Management Commands
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;getfacl &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View ACLs on a file or directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;setfacl -m u:username:perm &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add/modify user ACL permission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;setfacl -x u:username &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove ACL permission for a user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;setfacl -b &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove &lt;strong&gt;all&lt;/strong&gt; ACL permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;setfacl -m g:groupname:perm &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add/modify ACL for a group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;setfacl -x g:groupname &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove ACL for a group&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What Are Special Permissions?
&lt;/h2&gt;

&lt;p&gt;Special permissions are used for executables and shared directories to control how files behave during execution or deletion. These include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SUID (Set User ID)&lt;/li&gt;
&lt;li&gt;SGID (Set Group ID)&lt;/li&gt;
&lt;li&gt;Sticky Bit&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Types of Special Permisssion
&lt;/h2&gt;

&lt;h2&gt;
  
  
  SUID (Set User ID)
&lt;/h2&gt;

&lt;p&gt;When set on an executable file, it runs with the owner’s privileges, not the user's.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod u+s file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set SUID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod u-s file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove SUID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;chmod u+s /usr/bin/special_script&lt;/code&gt;&lt;br&gt;
 Any user can run this script with root privileges (if owned by root).&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Frrzibol3th9cbek38r1p.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.amazonaws.com%2Fuploads%2Farticles%2Frrzibol3th9cbek38r1p.png" alt="Image description" width="800" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SGID (Set Group ID)
&lt;/h2&gt;

&lt;p&gt;When set on a directory, new files inside will inherit the directory's group, not the creator’s group. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod g+s dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set SGID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod g-s dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove SGID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;chmod g+s /shared&lt;/code&gt;&lt;br&gt;
 All files created in &lt;code&gt;/shared&lt;/code&gt;inherit its group automatically.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fl0fwfd8dytc7k7rqynfy.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.amazonaws.com%2Fuploads%2Farticles%2Fl0fwfd8dytc7k7rqynfy.png" alt="Image description" width="800" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sticky Bit
&lt;/h2&gt;

&lt;p&gt;Used on shared directories, it ensures that only the owner of a file can delete it — even if others have write access.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod o+t dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set Sticky Bit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod o-t dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove Sticky Bit&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;code&gt;chmod o+t /team/shared&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fktg1a04xiyi67zw0g9jl.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.amazonaws.com%2Fuploads%2Farticles%2Fktg1a04xiyi67zw0g9jl.png" alt="Image description" width="800" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Set Permissions Numerically
&lt;/h2&gt;

&lt;p&gt;You can also apply special permissions using numbers&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Numeric Value&lt;/th&gt;
&lt;th&gt;Example to Set&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SUID&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;chmod 4755 file&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SGID&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;chmod 2755 dir&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sticky Bit&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;chmod 1755 dir&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To remove, subtract the leading digit&lt;br&gt;
&lt;code&gt;chmod 755 file&lt;/code&gt;     # Removes SUID&lt;br&gt;
If SUID is set, the execute permission for the owner &lt;strong&gt;(rws)&lt;/strong&gt; shows s.&lt;br&gt;
If removed, it shows normal execute &lt;strong&gt;(x) *&lt;em&gt;or no execute *&lt;/em&gt;(-)&lt;/strong&gt;.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fdntasaq8dkbjo3hois9g.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.amazonaws.com%2Fuploads%2Farticles%2Fdntasaq8dkbjo3hois9g.png" alt="Image description" width="800" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod -2000 dir&lt;/code&gt;    # Removes SGID&lt;br&gt;
If SGID is set, the group execute &lt;strong&gt;(rwx) **has an **s&lt;/strong&gt;.&lt;br&gt;
If removed, it's back to normal &lt;strong&gt;(x or -)&lt;/strong&gt;.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fmvk9qcqgck2lff6p0sid.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.amazonaws.com%2Fuploads%2Farticles%2Fmvk9qcqgck2lff6p0sid.png" alt="Image description" width="800" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod -1000 dir&lt;/code&gt;    # Removes Sticky Bit&lt;br&gt;
If Sticky Bit is set, the others' execute permission shows &lt;strong&gt;t&lt;/strong&gt;.&lt;br&gt;
If removed, it will show just &lt;strong&gt;x or - **without the **t&lt;/strong&gt;.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fbmuapx12mv7x5yspyr3i.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.amazonaws.com%2Fuploads%2Farticles%2Fbmuapx12mv7x5yspyr3i.png" alt="Image description" width="800" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;ACL and special permissions give you fine-grained control over who can access and execute files, beyond basic Linux permissions.&lt;/p&gt;

&lt;p&gt;These are must-know tools for any Linux system admin especially in enterprise or multi-user environments. If you're pursuing RHCSA, working in DevOps, or managing shared infrastructure, these commands are essential!&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
      <category>redhat</category>
      <category>linux</category>
    </item>
    <item>
      <title>Understanding File Permissions in Linux: A Beginner's Guide</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Fri, 25 Apr 2025 05:28:12 +0000</pubDate>
      <link>https://dev.to/austinozor/understanding-file-permissions-in-linux-a-beginners-guide-jn1</link>
      <guid>https://dev.to/austinozor/understanding-file-permissions-in-linux-a-beginners-guide-jn1</guid>
      <description>&lt;p&gt;** Table of Contents**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.tobusiness-use-case"&gt;Business Use Case&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;What Are File Permissions?&lt;/li&gt;
&lt;li&gt;Types of Permissions&lt;/li&gt;
&lt;li&gt;Check File and Directory Permissions&lt;/li&gt;
&lt;li&gt;Change Ownership of Files or Directories&lt;/li&gt;
&lt;li&gt;
Change File Permissions with chmod

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.toremove-permissions"&gt;Remove Permissions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.toadd-permissions"&gt;Add Permissions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Set Full or Specific Permissions&lt;/li&gt;
&lt;li&gt;Numeric Value of Permission&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Description: Learn how to view and change file and directory permissions in Linux using &lt;code&gt;chmod&lt;/code&gt;, &lt;code&gt;chown&lt;/code&gt;, and &lt;code&gt;chgrp&lt;/code&gt; with simple examples.&lt;/p&gt;

&lt;p&gt;Linux controls access to files and directories using a permission system. Knowing how to check, change, and manage these permissions is essential for keeping your system secure and organized.&lt;/p&gt;

&lt;p&gt;This guide breaks down the basics of file permissions and how to manage them using &lt;code&gt;chmod&lt;/code&gt;, &lt;code&gt;chown&lt;/code&gt;, and &lt;code&gt;chgrp&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Business Use Case
&lt;/h3&gt;

&lt;p&gt;Imagine you're a DevOps engineer at a company where multiple developers are working on different microservices. You want to ensure that&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each team has access &lt;strong&gt;only&lt;/strong&gt; to their own service folder
&lt;/li&gt;
&lt;li&gt;No unauthorized user can modify critical deployment scripts
&lt;/li&gt;
&lt;li&gt;Logs are readable but not editable by non-admin users&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Are File Permissions?
&lt;/h3&gt;

&lt;p&gt;File permissions in Linux control &lt;strong&gt;who&lt;/strong&gt; can read, write, or execute a file or directory. These are usually defined for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User (u)&lt;/strong&gt; – The file owner&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Group (g)&lt;/strong&gt; – The group the file belongs to&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Others (o)&lt;/strong&gt; – Everyone else&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Types of Permissions
&lt;/h3&gt;

&lt;p&gt;Linux supports three main types of permission systems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Basic Permissions&lt;/strong&gt; – Most commonly used; includes &lt;code&gt;r&lt;/code&gt; (read), &lt;code&gt;w&lt;/code&gt; (write), and &lt;code&gt;x&lt;/code&gt; (execute).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ACL (Access Control List)&lt;/strong&gt; – More advanced, allowing fine-grained control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Special Permissions&lt;/strong&gt; – Includes setuid, setgid, and sticky bit (covered in later parts).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Check File and Directory Permissions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Check permissions of a file&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;ls -l filename&lt;/code&gt; to show the permission of a particular file&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.amazonaws.com%2Fuploads%2Farticles%2Ftu9lqzlnjobegwwmxmj9.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.amazonaws.com%2Fuploads%2Farticles%2Ftu9lqzlnjobegwwmxmj9.png" alt="Image description" width="800" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls -ld Desktop&lt;/code&gt; - show the permissions of the Desktop directory.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F4gym0gimp664k6koydhe.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.amazonaws.com%2Fuploads%2Farticles%2F4gym0gimp664k6koydhe.png" alt="Image description" width="800" height="94"&gt;&lt;/a&gt;&lt;br&gt;
Each part indicates permission for user, group, and others.&lt;/p&gt;

&lt;h3&gt;
  
  
  Change Ownership of Files or Directories
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Change file/directory owner&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;chown username file_or_dir&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fivao328hh6prys2u2zyq.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.amazonaws.com%2Fuploads%2Farticles%2Fivao328hh6prys2u2zyq.png" alt="Image description" width="800" height="158"&gt;&lt;/a&gt;&lt;br&gt;
From the screenshot the owner was student but the the command &lt;code&gt;chown root file222.txt&lt;/code&gt; the own was changed to root.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change group ownership&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;chgrp groupname directory&lt;/code&gt; - This command changes the group the directory belongs to.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F3lqcwa4duhenvvohafp6.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.amazonaws.com%2Fuploads%2Farticles%2F3lqcwa4duhenvvohafp6.png" alt="Image description" width="800" height="78"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fofwb039ykg1mjodjrv6z.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.amazonaws.com%2Fuploads%2Farticles%2Fofwb039ykg1mjodjrv6z.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change both owner and group&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;chown user:group directory&lt;/code&gt; - This command changes both the owner and group of the directory&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.amazonaws.com%2Fuploads%2Farticles%2Fr82gjjdtdf3z8btxds3a.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.amazonaws.com%2Fuploads%2Farticles%2Fr82gjjdtdf3z8btxds3a.png" alt="Image description" width="800" height="78"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F7zphrdw841xhm7mp6ket.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.amazonaws.com%2Fuploads%2Farticles%2F7zphrdw841xhm7mp6ket.png" alt="Image description" width="800" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Change File Permissions with chmod
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Remove Permissions
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod o-rwx dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove all permissions from others&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod g-rx dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove read and execute from group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod u-w dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove write permission from user&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;i. &lt;code&gt;chmod o-rwx food/&lt;/code&gt; - remove all permissions from other to the food directory.&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.amazonaws.com%2Fuploads%2Farticles%2Fvfd5xqawqz4z15jtyopc.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.amazonaws.com%2Fuploads%2Farticles%2Fvfd5xqawqz4z15jtyopc.png" alt="Image description" width="800" height="355"&gt;&lt;/a&gt;ii.&lt;code&gt;chmod g-rx dir1/&lt;/code&gt; - remove read and execute permission from group&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.amazonaws.com%2Fuploads%2Farticles%2Fllwk0aeo6j5zz8ugt1yd.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.amazonaws.com%2Fuploads%2Farticles%2Fllwk0aeo6j5zz8ugt1yd.png" alt="Image description" width="800" height="149"&gt;&lt;/a&gt;iii.&lt;code&gt;chmod u-w gitclone/&lt;/code&gt; - remove the write permission from the user.&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.amazonaws.com%2Fuploads%2Farticles%2F101xhrisq99qmogajx5w.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.amazonaws.com%2Fuploads%2Farticles%2F101xhrisq99qmogajx5w.png" alt="Image description" width="800" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Add Permissions
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod u+rwx dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Give user full permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod ugo+rwx dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Give all users full permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;i.&lt;code&gt;chmod u+rwx dir1/&lt;/code&gt; - this command will add read, write and execute permissions to &lt;strong&gt;dir1&lt;/strong&gt; directory.&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.amazonaws.com%2Fuploads%2Farticles%2Fkg4hg5sg8bw20ajyb91t.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.amazonaws.com%2Fuploads%2Farticles%2Fkg4hg5sg8bw20ajyb91t.png" alt="Image description" width="800" height="91"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fjsft37v1vu943e7arkvs.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.amazonaws.com%2Fuploads%2Farticles%2Fjsft37v1vu943e7arkvs.png" alt="Image description" width="800" height="108"&gt;&lt;/a&gt;ii.&lt;code&gt;chmod ugo+rwx food/&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fk7yx5edndun9w6cdzbfs.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.amazonaws.com%2Fuploads%2Farticles%2Fk7yx5edndun9w6cdzbfs.png" alt="Image description" width="800" height="121"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Set Full or Specific Permissions
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod u-rwx,g-rwx,o-rwx dir1/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove all permissions from everyone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chmod ugo=r-x dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set read and execute permissions for all&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;i.&lt;code&gt;chmod u-rwx,g-rwx,o-rwx dir1/&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fd0h2gx4t962brrlm1vti.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.amazonaws.com%2Fuploads%2Farticles%2Fd0h2gx4t962brrlm1vti.png" alt="Image description" width="800" height="118"&gt;&lt;/a&gt;ii.&lt;code&gt;chmod ugo=r-x dir&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fzm8515zpnx59xvgvti2j.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.amazonaws.com%2Fuploads%2Farticles%2Fzm8515zpnx59xvgvti2j.png" alt="Image description" width="800" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Numeric Value of Permission&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.amazonaws.com%2Fuploads%2Farticles%2Fgzfh66x4u5u98obqdlox.png" alt="Image description" width="800" height="383"&gt;
&lt;/h2&gt;

&lt;p&gt;Each digit in a three-digit permission set (like 755) represents:&lt;br&gt;
&lt;strong&gt;1st digit&lt;/strong&gt;: User (owner)&lt;br&gt;
&lt;strong&gt;2nd digit&lt;/strong&gt;: Group&lt;br&gt;
&lt;strong&gt;3rd digit&lt;/strong&gt;: Others&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;File and directory permissions are one of the most important parts of Linux system administration. Learning how to check and set the right permissions helps keep your files secure and your system under control.&lt;br&gt;
Practice with test files and get comfortable using &lt;code&gt;chmod&lt;/code&gt;, &lt;code&gt;chown&lt;/code&gt;, and &lt;code&gt;ls -l&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
      <category>redhat</category>
      <category>linux</category>
    </item>
    <item>
      <title>Group Management in Linux: Create, Modify, and Manage Group Accounts Like a Pro</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Mon, 21 Apr 2025 19:40:21 +0000</pubDate>
      <link>https://dev.to/austinozor/group-management-in-linux-create-modify-and-manage-group-accounts-like-a-pro-4g8e</link>
      <guid>https://dev.to/austinozor/group-management-in-linux-create-modify-and-manage-group-accounts-like-a-pro-4g8e</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is a Group in Linux?&lt;/li&gt;
&lt;li&gt;Types of Groups&lt;/li&gt;
&lt;li&gt;Where Group Data is Stored&lt;/li&gt;
&lt;li&gt;
Essential Group Management Commands

&lt;ul&gt;
&lt;li&gt;Create a Group&lt;/li&gt;
&lt;li&gt;Check Group Properties&lt;/li&gt;
&lt;li&gt;Modify Group ID&lt;/li&gt;
&lt;li&gt;Add or Remove Group Members&lt;/li&gt;
&lt;li&gt;Add/Remove Multiple Users&lt;/li&gt;
&lt;li&gt;Assign a Group Admin&lt;/li&gt;
&lt;li&gt;Check Group Admins&lt;/li&gt;
&lt;li&gt;Delete a Group&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;br&gt;
Learn how to manage groups in Linux using commands like groupadd, gpasswd, groupmod, and more. Includes clear examples and file references.&lt;/p&gt;

&lt;p&gt;Groups in Linux help system administrators organize users, manage permissions, and control access more efficiently especially in multi-user environments like servers and enterprise systems.&lt;/p&gt;

&lt;p&gt;In this guide, you’ll learn how to create, manage, and delete group accounts using real command-line examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Group in Linux?
&lt;/h2&gt;

&lt;p&gt;A group is a collection of user accounts. Groups are used to assign common permissions to multiple users and simplify system administration tasks.&lt;/p&gt;

&lt;p&gt;For example, giving read/write access to a project folder for all members of the &lt;code&gt;dev&lt;/code&gt; group is easier than setting permissions for each user individually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Groups
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Group Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary Group&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automatically created when a new user is added. Each user belongs to exactly one primary group. Deleting the user also removes their primary group.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Secondary Group&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Created and managed by superusers. Users can belong to multiple secondary groups for shared access to files or services.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where Group Data is Stored
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc/group&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stores group account properties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc/gshadow&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stores group admin and secure group info&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Essential Group Management Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a Group
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;groupadd testers&lt;/code&gt; -  Creates a new group named &lt;code&gt;testers&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.amazonaws.com%2Fuploads%2Farticles%2F9d0ewdifoawlv8wxrjq3.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.amazonaws.com%2Fuploads%2Farticles%2F9d0ewdifoawlv8wxrjq3.png" alt="Image description" width="800" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check Group Properties
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;grep testers /etc/group&lt;/code&gt; - Displays group info like GID and members&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fudnvl05dvxrksyp894os.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.amazonaws.com%2Fuploads%2Farticles%2Fudnvl05dvxrksyp894os.png" alt="Image description" width="800" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Modify Group ID
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;groupmod -g 2025 testers&lt;/code&gt; - Changes the GID of the developers group to 2025&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F5ompyxev14yye0ef3s0h.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.amazonaws.com%2Fuploads%2Farticles%2F5ompyxev14yye0ef3s0h.png" alt="Image description" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Add or Remove Group Members
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;gpasswd -a alice testers&lt;/code&gt; - Add a user to a group&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.amazonaws.com%2Fuploads%2Farticles%2Frqk7k8z7grdgxhb3ijzx.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.amazonaws.com%2Fuploads%2Farticles%2Frqk7k8z7grdgxhb3ijzx.png" alt="Image description" width="776" height="112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Verify if alice is added to the testers group&lt;br&gt;
&lt;code&gt;cat /etc/group | grep testers&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.amazonaws.com%2Fuploads%2Farticles%2Fhk0jyzj39caj97fj8l7x.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.amazonaws.com%2Fuploads%2Farticles%2Fhk0jyzj39caj97fj8l7x.png" alt="Image description" width="800" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remove a user from a group&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;gpasswd -d alice testers&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.amazonaws.com%2Fuploads%2Farticles%2Fnru8q3w8qp27q0q0f652.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.amazonaws.com%2Fuploads%2Farticles%2Fnru8q3w8qp27q0q0f652.png" alt="Image description" width="800" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Options you can use on &lt;code&gt;gpasswd&lt;/code&gt;
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2F2hi2bf7m72j0d58od2xh.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.amazonaws.com%2Fuploads%2Farticles%2F2hi2bf7m72j0d58od2xh.png" alt="Image description" width="800" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Add/Remove Multiple Users to a Group
&lt;/h3&gt;

&lt;p&gt;Current users&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F1ap5c37pdgquc8dlk2mc.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.amazonaws.com%2Fuploads%2Farticles%2F1ap5c37pdgquc8dlk2mc.png" alt="Image description" width="800" height="139"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;gpasswd -M seth,mike,rose,mary,helen testers&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fwvfj8ub97xagbqa81onj.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.amazonaws.com%2Fuploads%2Farticles%2Fwvfj8ub97xagbqa81onj.png" alt="Image description" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Adds multiple users to the group. This replaces any existing members include all users (new + existing) to avoid removing others accidentally&lt;/p&gt;

&lt;h3&gt;
  
  
  Assign a Group Admin
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;gpasswd -A seth testers&lt;/code&gt; -  Makes &lt;code&gt;seth&lt;/code&gt; a group administrator for &lt;code&gt;tester&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fg0bkqnxr6atj08m1xzal.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.amazonaws.com%2Fuploads%2Farticles%2Fg0bkqnxr6atj08m1xzal.png" alt="Image description" width="800" height="86"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check Group Admins
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;grep testers /etc/gshadow&lt;/code&gt;  - Shows who the group admins are&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fm2fd47tm9ak1q4r5lhm8.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.amazonaws.com%2Fuploads%2Farticles%2Fm2fd47tm9ak1q4r5lhm8.png" alt="Image description" width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Delete a Group
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;groupdel testers&lt;/code&gt; - Deletes the testers group from the system.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fsl0sgde3mhfgpeg78h85.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.amazonaws.com%2Fuploads%2Farticles%2Fsl0sgde3mhfgpeg78h85.png" alt="Image description" width="800" height="88"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you run the command grep testers /etc/group, it returns no results because the testers group has already been deleted from the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt;&lt;br&gt;
Use the &lt;code&gt;man&lt;/code&gt; command to explore additional options and details for any command. For example, &lt;code&gt;man useradd&lt;/code&gt; shows all available flags and usage examples. &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Groups are essential for managing user permissions in an organized and efficient way especially in teams or multi-user systems.&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
      <category>redhat</category>
      <category>linux</category>
    </item>
    <item>
      <title>User Management in Linux: A Beginner's Guide to Creating, Modifying, and Deleting Users</title>
      <dc:creator>AugustineOzor</dc:creator>
      <pubDate>Fri, 18 Apr 2025 18:20:46 +0000</pubDate>
      <link>https://dev.to/austinozor/user-management-in-linux-a-beginners-guide-to-creating-modifying-and-deleting-users-fhf</link>
      <guid>https://dev.to/austinozor/user-management-in-linux-a-beginners-guide-to-creating-modifying-and-deleting-users-fhf</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is a User in Linux?&lt;/li&gt;
&lt;li&gt;Types of Users&lt;/li&gt;
&lt;li&gt;UID: Unique User ID Explained&lt;/li&gt;
&lt;li&gt;Where User Data is Stored&lt;/li&gt;
&lt;li&gt;
Essential User Management Commands

&lt;ul&gt;
&lt;li&gt;Create a New User&lt;/li&gt;
&lt;li&gt;Set or Change a Password&lt;/li&gt;
&lt;li&gt;Check User Properties&lt;/li&gt;
&lt;li&gt;Switch Between Users&lt;/li&gt;
&lt;li&gt;Delete a User&lt;/li&gt;
&lt;li&gt;Add a Group&lt;/li&gt;
&lt;li&gt;Tips&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Managing users is a core skill for anyone working with Linux — whether you're running a local server or managing cloud infrastructure. In this guide, I break down the basics of Linux user accounts, from types and UIDs to creating, modifying, and deleting users.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a User in Linux?
&lt;/h2&gt;

&lt;p&gt;A user is a login account on a Linux system that allows a person (or system process) to access the computer's resources. Each user has permissions that control what they can or can't do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Users
&lt;/h2&gt;

&lt;h3&gt;
  
  
  System User
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Created automatically during OS installation
&lt;/li&gt;
&lt;li&gt;Typically used for running services and system processes
&lt;/li&gt;
&lt;li&gt;Examples: &lt;code&gt;root&lt;/code&gt;, &lt;code&gt;apache&lt;/code&gt;, &lt;code&gt;daemon&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Normal User
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Created manually by an administrator
&lt;/li&gt;
&lt;li&gt;Used for human users to log in and run applications
&lt;/li&gt;
&lt;li&gt;Example: &lt;code&gt;john&lt;/code&gt;, &lt;code&gt;developer1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  UID: Unique User ID Explained
&lt;/h2&gt;

&lt;p&gt;Every user in Linux is assigned a UID (User Identifier)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;UID Range&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Reserved for the root (superuser)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1–999&lt;/td&gt;
&lt;td&gt;Reserved for system/service users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1000–60000&lt;/td&gt;
&lt;td&gt;Normal user accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where User Data is Stored
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc/passwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stores user account info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc/shadow&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stores user password and aging info&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Essential User Management Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a New User
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;useradd james&lt;/code&gt; - Creates a new user account&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.amazonaws.com%2Fuploads%2Farticles%2Fhkt3r8gwtvk1n9pfuxsj.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.amazonaws.com%2Fuploads%2Farticles%2Fhkt3r8gwtvk1n9pfuxsj.png" alt="Image description" width="800" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Set or Change a Password
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;passwd james&lt;/code&gt; -  Assigns or updates the password for a user.&lt;br&gt;
You will be prompted to enter the password twice.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fuq9pibd8h6r8sk7l83be.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.amazonaws.com%2Fuploads%2Farticles%2Fuq9pibd8h6r8sk7l83be.png" alt="Image description" width="800" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check User Properties
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;grep james /etc/passwd&lt;/code&gt; - Displays account details.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fzdlnfoq1ha1kdhjfypld.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.amazonaws.com%2Fuploads%2Farticles%2Fzdlnfoq1ha1kdhjfypld.png" alt="Image description" width="800" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check Password Properties
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;grep james /etc/shadow&lt;/code&gt; - View password aging and security info for a user. &lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fps4zdmbxuycgo10molub.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.amazonaws.com%2Fuploads%2Farticles%2Fps4zdmbxuycgo10molub.png" alt="Image description" width="800" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Switch Between Users
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;su james&lt;/code&gt; - Switches from the current user &lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fn5eo2towq599q9pgpoz2.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.amazonaws.com%2Fuploads%2Farticles%2Fn5eo2towq599q9pgpoz2.png" alt="Image description" width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Modify an Existing User
&lt;/h3&gt;

&lt;p&gt;usermod -l newname oldname - Changes a username from oldname to newname.&lt;br&gt;
&lt;code&gt;usermod -l james daniel&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Delete a User
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;userdel james&lt;/code&gt; - Delete user only&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F3ngildo8geba17vzp6ox.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.amazonaws.com%2Fuploads%2Farticles%2F3ngildo8geba17vzp6ox.png" alt="Image description" width="800" height="132"&gt;&lt;/a&gt;&lt;code&gt;userdel -r james&lt;/code&gt; - Delete user and their home directory&lt;/p&gt;

&lt;h3&gt;
  
  
  Add a Group
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;groupadd itdepartment&lt;/code&gt; - Create a group&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fhlbvw7xoh9dljkhbxdeo.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.amazonaws.com%2Fuploads%2Farticles%2Fhlbvw7xoh9dljkhbxdeo.png" alt="Image description" width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Add User to a Group
&lt;/h3&gt;

&lt;p&gt;usermod -aG groupname username -  Adds a user to a supplementary group.&lt;br&gt;
&lt;code&gt;usermod -aG itdepartment james&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.amazonaws.com%2Fuploads%2Farticles%2Fqh78b4tqrb94iji1svzz.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.amazonaws.com%2Fuploads%2Farticles%2Fqh78b4tqrb94iji1svzz.png" alt="Image description" width="800" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;List All Groups a User Belong to&lt;/strong&gt;&lt;br&gt;
groups username&lt;br&gt;
&lt;code&gt;groups james&lt;/code&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F9lrrail48ie5y680yjm0.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.amazonaws.com%2Fuploads%2Farticles%2F9lrrail48ie5y680yjm0.png" alt="Image description" width="800" height="112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tips
&lt;/h3&gt;

&lt;p&gt;Use man or info on the command - These give detailed documentation right in the terminal. It’s like built-in help.&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fs9lmep8lx9vlubm376rk.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.amazonaws.com%2Fuploads%2Farticles%2Fs9lmep8lx9vlubm376rk.png" alt="Image description" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Managing users is an important part of working with Linux. Whether you’re adding new people to the system, setting up accounts for services, or removing old users, these commands make it easy to do the job with confidence.&lt;/p&gt;

</description>
      <category>cloudwhistler</category>
    </item>
  </channel>
</rss>
