Linux user id from name

Linux id Command — Print user ID and group ID information

To log in into a computer, we need a username. Username is an identity to recognized by a computer. Based on it, the computer will apply a set of rules to a someone that log in with that username. In this article, I will show you how to use Linux id command.

What is id command

id command is command which can print real and effective User ID (UID) and Group ID (GID). An UID is a single identity for a user. While Group ID (GID) can consist of more than one UID.

How to use it

By default, id command is installed on most of Linux system. To use it, just type id on your console. Typing id without no options will result as below. The result will use the active user.

Here’s how to read the output :

  • User pungki has UID number = 1000, GID number = 1000
  • User pungki is a member of the following groups :

pungki

1000
adm

4
cdrom

24
sudo

27
dip

30
plugdev

46
lpadmin

108
sambashare

124

Using id with options

There are some options that can be applied to id command. Here’s some options that may useful on day-to-day basis.

To do this, we can use -a option

Output all different group IDs (effective, real and supplementary)

We can use -G option to do fulfill this.

The result will only show the GID numbers. You can compare it with /etc/group file. Here’s a sample of /etc/group content :

Output only the effective group ID

Use -g option to output only the effective group ID

We can output a specific user information related UID and GID. Just put the user name after id command.

Above command will print UID and GID of user named leni.

Conclusion

This id command is useful for us when we want to know about UID and GID of a user. Some applications may need UID / GID to be run. id make us easier to find UID and GID of a user without seeing and searching it inside /etc/group file. As usual, you can go to id manual page by typing man id from your console to explore more detail.

Источник

Everything Important You Need to Know About UID in Linux

What is UID in Linux?

UID stands for user identifier. A UID is a number assigned to each Linux user. It is the user’s representation in the Linux kernel. The UID is used for identifying the user within the system and for determining which system resources the user can access. This is why the user ID should be unique.

You can find UID stored in the /etc/passwd file. This is the same file that can be used to list all the users in a Linux system.

Use a Linux command to view text file and you’ll see various information about the users present on your system.

The third field here represents the user ID or UID.

UID and GID in /etc/passwd File in Linux

Читайте также:  File unlocker windows 10

Do note that in most Linux distributions, UID 1-500 are usually reserved for system users. In Ubuntu and Fedora, UID for new users start from 1000.

For example, if you use adduser or useradd command to create a new user, it will get the next available number after 1000 as its UID.

In Linux, UID 0 and GID 0 is reserved for the root user.

How to find the UID of a user in Linux?

You can always rely on the /etc/passwd file to get the UID of a user. That’s not the only way to get the UID information in Linux.

The id command in Linux will display the UID, GID and groups your current user belongs to:

You can also specify the user names with the id command to get the UID of any Linux user:

How to change UID of a user in Linux?

Suppose you had several users on your Linux system. You had to delete a user because he/she left the organization. Now you want its UID to be taken by another user already on the system.

You can change the UID by modifying the user using usermod command like this:

You need to have superuser privilege to execute the above command.

Do you remember the file permission and ownership concept in Linux? The ownership of a file is determined by the UID of the owner user.

When you update the UID of a user, what happens to the files owned by this user?While all the files in the home directory of user_2 will have their associated UID changed, you’ll have to manually update the associated UID of other files outside the home directory.

What you can do is manually update the ownership of the files associated with the old UID of the user_2.

How does UID associate with different system resources? [for advanced users]

UIDs are unique to one another and thus they can also be used to identify ownership of different system resources such as files and processes.

UID and files

I hope you are familiar with the file permission concept in Linux. When you’re creating a file, you’re the owner of this file. Now you can decide who gets to do what with this file. This is part of Linux’s DAC mechanism where each file is left at its owner’s discretion.

You can read a file’s ownership by using either ls or stat command. Let’s do it with the popular ls command and check the ownership of either the binary sleep or passwd .

As you can see, the file /usr/bin/sleep belongs to root:

Let’s force it to map the ownership with UID instead of username:

Here’s fun information. Your operating system doesn’t understand «usernames». Whenever a program needs to work with usernames or needs to print such, it refers to the /etc/passwd file to extract the information.

You don’t have to take my words for it. See it yourself with strace program which prints all the system calls made by a program.

What you are trying to see is whether ls command is trying to read the /etc/passwd file or not.

UID and processes

Processes have owners too, just like files. Only the owner (or the root user) of a process can send process signals to it. This is where the UID comes into play.

If a normal user tries to kill a process owned by another user, it will result in error:

Only the owner of the process or the root can do this.

A process must be regulated. Regulated as in you need to have a way to limit or know how much a process is allowed to do. This is determined by its UID(s).

There are three types of UIDs associated with a process.

  1. Real UID: Real UID is the UID that a process adopts from its parent. In easier terms, whoever starts a process, the UID of that user is the real UID of the process. This is helpful in identifying who a process really belongs to. This is essential especially when the effective UID is not the same as the real UID which I’m going to talk about next.
  2. Effective UID: This is what mostly determines what permissions a certain process really has. While a user can start the process, it can run with a different user’s available permissions. The command passwd is one example of this. This program edits the file /etc/shadow , which is root owned. Therefore, a normal user shouldn’t be able to run this command or change his/her password. Luckily, the binary runs with an effective UID of 0 (i.e. root), which enables it to have enough privilege to edit the /etc/shadow file. Real and effective UIDs are mostly the same except in the case of SUID bit enabled binaries.
  3. Saved UID: UID that’s available at a process’s disposal. This one is not normally used, but is still there in case the process knows it’s not going to perform any privileged work, so it can change its effective UID to something that’s unprivileged. This reduces the surface of an unintentional misbehavior.
Читайте также:  Windows 10 error inaccessible boot device

That’s it. I hope you have a better idea about UID in Linux now. Don’t hesitate to ask your questions, if any.

As a pro Linux user, if you think I missed some important concept about UID, please let me know in the comment section.

Источник

Как узнать id пользователя Linux

Иногда возникает необходимость узнать id пользователя Linux. Это может понадобиться, если вы хотите вручную добавить группу для пользователя или вам нужно выполнить другие операции с файлами /etc/passwd или /etc/shadow.

В этой небольшой заметке мы поговорим о том, как посмотреть id пользователя с помощью различных команд в Linux.

Как узнать id пользователя в Linux

Самый простой способ посмотреть идентификатор текущего пользователя — использовать команду id, она выводит не только сам UID, но и идентификатор группы пользователя, а также основные группы этого пользователя:

Первым выводится именно id пользовтеля. Если вам нужно узнать информацию о другом пользователе, вы можете передать его имя в параметры утилиты:

Когда необходимо вывести только id пользователя:

id -u имя_пользовтеля

Если вам надо узнать только id группы определенного пользователя, то используйте опцию -g:

id -g имя_пользователя

Есть ещё несколько способов посмотреть id. Например, для текущего пользователя его можно найти в переменной окружения UID:

Ещё один вариант — утилита getent:

getent passwd имя_пользователя

Или смотрим содержимое файла /etc/passwd с помощью команды grep:

grep имя_пользователя /etc/passwd

Здесь первый цифровой параметр — это сам id, а второй, который расположен за двоеточием, — это GID.

Выводы

В этой небольшой статье мы рассмотрели, как узнать id пользователя Linux. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

6 Ways to check user information in Linux

Most of us use the id command , and some users filter the user information from the /etc/passwd file.

If you are a beginner for Linux operating systems and want to know more about the /etc/passwd file, please refer the following article.

In general, we use the above two commands to obtain user information. You may ask why to discuss this basic topic. People think there are no alternatives other other than these two commands, but we found that there are other ways to gather user information. Hence, we have created this article to guide you.

In this tutorial, we will discuss all these methods in detail. This is one of the basic commands that help the administrator to find information about a user in Linux.

Remember that everything is stored in a file on Linux, so be careful when handling the configuration file.

We have added several tweaks in this tutorial to collect user information with different aspect.

The following articles may help you to learn more about user management in Linux.

What kind of information is stored in the ‘/etc/passwd’ file

When creating users on Linux the user details are stored in the “/etc/passwd” file.

Each user information in this file is a single line with seven fields and the actual password is stored in the /etc/shadow file.

User information can be queried using these six methods:

  • id : Print user and group information for the specified username.
  • getent : Get entries from Name Service Switch libraries.
  • /etc/passwd file : The /etc/passwd file contain each/every user details as a single line with seven fields.
  • finger : User information lookup program
  • lslogins : lslogins display information about known users in the system
  • compgen : compgen is bash built-in command and it will show all available commands for the user.

1) How to check user information using id command?

The id command stands for identity. It prints real and effective user and group IDs. You can use the id command to print user and group information for the specified user, or for the current user.

Читайте также:  Windows том не видит удалить

Run id command without any username to print the current user information on your terminal.

To collect information on a specific user, use the id command followed by the specific username as shown below:

Details of the above output.

  • uid=500(daygeek): It shows the user ID & name
  • gid=500(daygeek): It displays the user’s primary group ID & name
  • groups=500(daygeek),10(wheel): It displays the user’s secondary groups ID & name

If you want to print multiple user information simultaneously using the id command, use the following small shell script. This script stores the list of users who have a home directory on the system in the variable.

To achieve this, write the following simple bash scripts.

Set an executable permission to “user-info.sh” file.

Finally run the script to get results:

2) Checking user information using getent command

The getent command displays entries from databases supported by the Name Service Switch libraries, which are configured in /etc/nsswitch.conf. The getent command displays user information such as the /etc/passwd file, which displays each user information on a separate line with seven fields.

The seven fields are described below in detail:

  • Username (magesh): Username of created user. Characters length should be between 1 to 32.
  • Password (x): It indicates that encrypted password is stored at /etc/shadow file.
  • User ID (UID-502): It indicates the user ID (UID) each user should be contain unique UID. UID (0-Zero) is reserved for root, UID (1-99) reserved for system users and UID (100-999) reserved for system accounts/groups
  • Group ID (GID-503): It indicates the group ID (GID) each group should be contain unique GID is stored at /etc/group file.
  • User ID Info (2g Admin — Magesh M): It indicates the command field. This field can be used to describe the user information.
  • Home Directory (/home/magesh): It indicates the user home directory.
  • shell (/bin/bash): It indicates the user’s bash shell.

If you want to display only the usernames in the getent command output, use the below format:

If you just want to display users that have home directory on system, use the below format:

Use the following format to add a UID to the getent command output:

The /etc/passwd is a text file containing every user information that is required to log in to the Linux system.

It holds useful information about users such as username, password, user ID, group ID, user ID information, home directory and shell. Each user profile in the “/etc/passwd” file is a single seperate lines with seven fields as described earlier in section #2.

If you only want to display usernames from the /etc/passwd file, use the below format:

If you only want to display users that have home directory on system, use the below format:

Use the following format to add a UID to the following command output:

If you only want to display users that have UID greater than 500 on the system, use the below format:

4) How to check user information using finger Command

The finger command displays information about the system users. It displays the user’s real name, tty name, idle time, login time, home directory and shell name.

Details of the above output.

  • Login: User’s login name
  • Name: Additional/Other information about the user
  • Directory: User home directory information
  • Shell: User’s shell information
  • LAST-LOGIN: Date of last login and other information

5) Checking user information in Linux, using lslogins command

It displays information about known users in the system. By default it will list information about all the users in the system.

The lslogins utility is inspired by the logins utility, which first appeared in FreeBSD 4.10.

Details of the above output.

  • UID: User id
  • USER: Name of the user
  • PWD-LOCK: password defined, but locked
  • PWD-DENY: login by password disabled
  • LAST-LOGIN: Date of last login
  • GECOS: Other information about the user

6) How to check user & other information in Linux, using compgen command?

The compgen is a bash built-in command and it will show all available commands, aliases, and functions for you as shown below:

Wrapping Up

In this guide, you learned several ways to find user information in Linux.

Please share this to your friends if it is helpful to you.

Источник

Оцените статью