在Linux中什么是uid,如何查找和更改它

时间:2020-02-23 14:40:42  来源:igfitidea点击:

如果我们与Linux系统进行了互动,则概率遇到这两个单词,UID和GID。
如果我们对他们没有明确的想法,那么就与本文一起进行。

在Linux中什么是uid?

UID是单词用户标识符User Identifier的缩写,而GID是单词Group Identifier组标识符的缩写。
在此特定文章中,我们将专注于用户标识符(UID)。

UID是分配给Linux系统中的每个用户的唯一标识号。
UID号的主要角色是将用户标识到Linux内核。

它用于管理用户可以在系统中访问的系统资源。
它是每个可用用户使用唯一UID的原因之一。
否则,如果我们在一个UID下列出了两个用户,那么他们都可以访问其他对方的资源。

其中可以找到存储的UID?

我们可以在/etc/passwd文件中找到UID,这是存储在系统中注册的所有用户的文件。
要查看/etc/passwd文件内容,请在文件上运行cat 命令,如下图所示。

列出passwd文件的内容

/etc/passwd文件包含有关系统中每个用户的所有必需属性或者基本信息。
数据显示在七列中,如下所示。
这些字段由冒号(:)分隔。
此文件还包含正确安装,运行和更新系统所需的系统定义的帐户和组。

第1列名列2密码如果用户在此字段上设置了密码,则用字母(x)表示。
第3列UID(用户ID)列4 GID(组ID)列5 Gecos包含有关用户的一般信息,并且可以为空。
第6列主目录列7 shell向用户的默认shell的路径。

识别UID

从上面的图像中,文件上列出的第一个用户是root。
根本对系统的各个方面进行了整体控制。
root用户分配UID零(O)和GID(0)。
遵循的另一个是系统定义的帐户和组。

还有一个值得注意的是,UID = 0和GID = 0是为root用户提供系统中的所有权力的原因。
如果我们希望证明这一点,请将根部重命名为example_user的其他内容,并使用新的UID和GID创建新的root用户。
我们将意识到example_user仍然具有升高的权限,尽管没有用户名root。

由于我们还将注意到图像,因此遵循root用户的系统定义的帐户和组具有UID 1,2,3,4,...等。
这是因为大多数Linux系统保留了系统用户的前500个UID。
使用UserAdd命令添加的其他用户从500分配UID。
在Ubuntu和Fedora系统中,一个新用户,即使在安装过程中创建的用户也可以给出1000及更高版本的UID。

我们可以在下面的图像中看到它,我们有两个用户。
onitad_admin和igi。

在安装过程中创建了用户"igi",并分配了UID 1000.另一个用户"onITOAD",稍后添加,并被赋予UID 1001.

如何找到用户,组或者帐户的UID

我们讨论了如何通过显示/etc/passwd文件的内容来找到UID。
有更快和更简单的方式。
我们将使用id命令。

例如,要查找User theitroad_admin和igi的UID,请执行以下命令。
我们可能需要输入root密码。

id theitroad_admin
id igi

使用ID命令查找用户的ID

我们还可以在其他组上运行ID命令,如下所示。
通过单独在终端中执行ID命令,它将显示登录用户的当前的UID。

如何改变UID

假设我们是一个组织或者机构的有很多用户的系统管理系统。
如果用户离开,则可能需要为退出的员工的UID分配新用户。

让我们首先为此示例创建临时用户。
我们将使用useradd命令。
我们需要有root权限。
请参阅下面的命令。

useradd example_user

通过在User example_user上运行命令ID,我们可以看到这个新用户具有UID 1003

创建用户,example_user

现在,让我们删除具有UID = 1001的OnItoad_Admin用户并将其分配给我们的新用户。
我们将使用userdel命令删除用户。

sudo userdel -r theitroad_admin

一旦完成,我们将分配我们的新用户example_user,属于theitroad_admin的UID。
这是UID = 1001.我们将使用usermod命令执行此操作。

usermod -u 1001 exmple_user

通过在用户上运行ID命令,例如,_user,我们看到用户现在具有UID = 1001.

将UID更改为新用户。

现在,一旦我们拥有旧用户的UID,我们需要将这些文件与属于旧用户的所有其他文件同步。
我们可以通过执行下面的命令来执行此操作。

find/-user [UID_of_old_user] -exec chown -h [new_user] {} \;
e.g
sudo find/-user 1001 -exec chown -h user_2 {} \;

使用特定UID创建一个新用户

或者,我们可以使用UserAdd命令创建一个新用户,并为用户分配特定的UID。
请参阅下面的语法。

sudo useradd -u 1111 user_2

通过在User_2上运行ID命令,我们看到了用户的UID = 1111.