Skip to main content

How to List all the "Normal Users" in Linux

I have started to take some challenges on the website called Try Hack Me. I think it's a great way to be more aware of the potential security flaws of my own applications. Plus let's be honest, it's very fun!

Anyway, yesterday I learned how to list the users of a Linux system and understand what kind of account I was looking at. It's pretty cool.

I didn't know, but each user has an ID automatically allocated when they are created. IDs allocated to "normal users" have a min and a max. Those bound can be changed, but I think the default is from 1,000 to 60,000. By "normal users", I mean users created by an admin with the purpose of providing a working access to the machine.

To make sure of those two numbers, you can run:

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs 

 From there, you just have to list the users by using this command (replace UID_MIN/MAX by the values you just found out).

getent passwd {UID_MIN..UID_MAX}

Tadddaaaa! You just got a list of all the normal users on a machine. I found this commands and more on the website Linuxize, on this page. It was very well explained, check it out if you need more!

Comments

Popular posts from this blog

How to generate a self-signed certificate with Openssl (using git windows bash)

I recently needed to generate a self-signed certificate to test a website locally. I wasn't familiar with the process, and I wanted to share here what I learned. First, we need a private key. A private key is a long series of characters that must be kept secret. In my context, it will be used to encrypt messages before the client and the server, in a way secure enough to prevent anybody to spy on them. Once the private key is created, we need to generate another file that will be the "signature" of our certificate. Among other data, this file will contains some information specific to the server's context: country, organization's name, email address of the organization's technical contact, etc. Once this signature is established, there are two paths: - Path A: If we want our server to be publicly accessible, every browser in the world must able to trust the certificate. In order for that to happen, we need to send our signature file to one of the official SSL ...

Fixing x-invalid-end-tag lint error on Vuejs

  My situation is: Coding with vue in a Vue file. Using the Vetur plugin in VS code It then generates an error of type x-invalid-end-tag in a quite random fashion. To solve it, I have found one simple trick in this github issue: // .eslintrc.js module.exports = {  //... rules:  { 'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }]  }  }

Connecting to MongoDB from WSL2

My application runs a web server connected to a MongoDB database. For all my development needs, I am using WSL on windows 10. Unfortunately, MongoDB is not available on WSL, so I have installed the Windows version and pointed my server to the localhost:27017 address, no issue. It worked well until the day I switched to WSL2. Then I would get some ECONNREFUSED errors. To solve this problem, I have found a simple three steps solution.  The whole idea is that WSL2 now uses a true VM and got its own network interface (IP, MAC address, etc.). I think it's a bit more complicated than that, but that's how I understand it. Long story short, you now have a windows IP, and a WSL IP. 1. Accessing  the windows host from WSL The first step is to make sure that you can ping the windows IP from WSL. It was not working for me right away. It seems like there are still inconsistencies in the WSL implementation, but this github issue thread gave a good solution. It's a script yo have to run...