In order login into Linux system (over ssh or other services ) you need a username and password.
Username and password stored in /etc/passwd and /etc/shadow file respectively. When you supplies password, it encrypts and compare with password stored in /etc/shadow, which is also in, encrypted format (it was stored when you or system administrator registers/updates
it). If both are equal, you are in. Once logged in, you become the number to Linux kernel. You can obtain your user id and other information using id command:
$ id
uid=1002(vivek) gid=1002(vivek) groups=1002(vivek), 0(wheel)
Where,
=> Username = vivek
=> User numeric id (uid) = 1002
Numbers are uses to represent users and groups in Linux kernel because:
1) Simplified user and group management
2) Security management easy
3) Your UID applied to all files you create
It is always good idea to use the UID more than 1000 for all users for security reason.
Zero UID
The UID number 0 is special and used by the root user. The zero (0) UID enjoys the unrestricted/unlimited access to Linux system. Note that 0 UID assigned to name root; if you wish you can change this (poorly written program may fail) and assign different name.
Similarly, you have group id (GID). It is use by Linux to refer group names. Single user can be member of multiple groups. This result into very good flexibility for access the system and the sharing files. Many UNIX system uses wheel group as power user group. Like the UID value, zero GID value zero enjoys the unrestricted/unlimited access to Linux system.
Some time Linux and other UNIX like (FreeBSD, Solaris etc) uses EUID, RUID, and SUID concept.
The Effective User ID (EUID)
It is use to determine what level of access the current process has. When EUID is zero then the process has unrestricted/unlimited access. Following commands can be used to print Effective User ID under Linux:
$
whoami
$ id -un
The Real User ID (RUID):
It is use to identify who you actually are. Once it is setup by system (usually login program) it cannot be change till your session terminates. You cannot change your RUID. Only root (or person having zero UID) can change the RUID. Use the command id as follows
to obtain Real user ID:
$
id –ru
The Saved User ID (SUID):
When new process / executable file such as passwd, started the effective user id that is in force at the time is copied to the saved user id. Because of this feature, you are able to update your own password stored in /etc/shadow file. Off course, executable file must have set-user-id bit on in order to setuid (system call). Before process ending itself it switches back to SUID.
In short,
- RUID : Identify the real user, normal user cannot change it.
- EUID : Decides access level, normal user can change it.
- SUID : Saves the EUID, normal user cannot change it.
- Real Group ID : Identify the real group
- Effective Group ID and Supplementary group ID : Decides access level
Note that access level means kernel can determine whether you have access to devices, files etc.
本文介绍了Linux系统中用户的登录过程及权限管理机制,包括用户名、用户ID(UID)、有效用户ID(EUID)、实际用户ID(RUID)和保存用户ID(SUID)的概念及其作用。同时讲解了如何通过命令获取这些信息。
337

被折叠的 条评论
为什么被折叠?



