Skip to main content

Command Palette

Search for a command to run...

100 Days of DevOps — Day 1: Linux User Setup with Non-Interactive Shell

Today I kicked off my 100 Days of DevOps challenge with the KodeKloud Engineer program. The journey started with a fundamental Linux administration ta

Updated
2 min read
100 Days of DevOps — Day 1: Linux User Setup with Non-Interactive Shell
G

Hey! I’m Vishal Gurjar, a passionate DevOps Engineer skilled in automation, CI/CD, and cloud-native applications. 💡 Skilled in Docker, Kubernetes, Jenkins, AWS, GitHub Actions, and Linux. 🔨 Built real-world DevOps projects like Robot Shop & Netflix Clone with scalable pipelines. 📚 Documenting my journey through blogs/tutorials to help others learn faster. 🤝 Open to collaborations, freelancing, and exciting DevOps opportunities.

This kind of setup is often used when a user account is needed for system processes, automation, or service integration but should not have direct login access. It’s an important concept in DevOps and system security.

Task Description

At xFusionCorp Industries, the system admin team required me to:

  • Create a user named ammar

  • Assign the user a non-interactive shell

  • Perform this on App Server 3

Steps & Commands

  1. Connect to App Server 3 and add password : BigGr33n

     ssh banner@stapp03.stratos.xfusioncorp.com
    
  2. Create the user with a non-interactive shell

     sudo useradd -s /sbin/nologin ammar
    

    Here:

    • useradd → command to create a new user

    • -s /sbin/nologin → prevents the user from logging in interactively

  3. Verify the user shell

     grep ammar /etc/passwd
    

    Output should look like this:

     ammar:x:1001:1001::/home/ammar:/sbin/nologin
    

Challenges Faced

  • Remembering the difference between /sbin/nologin and /bin/false.

  • Making sure I was connected to the correct server (App Server 3) before running the command.

Lessons Learned

  • User management is one of the most important Linux admin skills for DevOps.

  • Using a non-interactive shell ensures security for accounts that exist only for processes, not real users.

  • Always double-check the server name before making changes in multi-server environments.

Conclusion

Day 1 taught me how even simple tasks like user creation play a huge role in system security and infrastructure management. This was a strong starting point for my DevOps journey.

👉 Next up: Day 2 – Temporary User Setup with Expiry

100 Days-KodeKloud

Part 2 of 2

"100 Days of DevOps" is a hands-on blog series where I document my daily progress, challenges, and learnings while completing real-world DevOps tasks through the KodeKloud Engineer Program.

Start from the beginning

100 Days of DevOps – Day 2: Creating a Temporary User with Expiry Date

How to Create a Temporary User with an Expiry Date in 100 Days of DevOps