For faster navigation, this Iframe is preloading the Wikiwand page for 用户ID.

用户ID

用户ID(英語:user identifier,一般缩写为User IDUID),全称用户标识符,在类UNIX系统中是内核用来辨识用户的一个无符号整型数值,亦是UNIX文件系统进程的必要组成部分之一。

数值范围

[编辑]

在不同的系统中,UID的值的范围也有所不同,但一般来说UID都是由一个15位的整数表示,其范围在0~32767之内,且有如下限制:

  • 按传统的做法,“nobody”(类UNIX系统的一种特殊账户)与超级用户相反,总占有数值最大的PID,即32767;相对应的,现今的系统为nobody分配的UID则在系统保留范围(1~100)或是65530-65535的范围内[1]
  • 数值于1~100内的UID约定预留给系统使用,有些手册则推荐在此基础上再预留101~499(如RHEL[2])甚至是101~999(如Debian[1])的UID以作备用;而相对应的,在Linux中用useradd命令创建第一个用户时,默认为之分配的UID则为1000。

除此之外,有些特殊的系统也支持16位的UID,因而UID的数目可以扩展到65536个;现代系统支持32位的UID,这也使UID数目进一步扩充到4,294,967,296个成为可能。

分类

[编辑]

有效用户ID

[编辑]

有效用户IDEffective UID,即EUID)与有效用户组IDEffective Group ID,即EGID)在创建与访问文件的时候发挥作用;具体来说,创建文件时,系统内核将根据创建文件的进程的EUID与EGID设定文件的所有者/组属性,而在访问文件时,内核亦根据访问进程的EUID与EGID决定其能否访问文件。

真实用户ID

[编辑]

真实用户IDReal UID,即RUID)与真实用户组IDReal GID,即RGID)用于辨识进程的真正所有者,且会影响到进程发送信号的权限。没有超级用户权限的进程仅在其RUID与目标进程的RUID相匹配时才能向目标进程发送信号,例如在父子进程间,子进程父进程处继承了认证信息,使得父子进程间可以互相发送信号。

暂存用户ID

[编辑]

暂存用户IDSaved UID,即SUID)于以提升权限运行的进程暂时需要做一些不需特权英语Privilege (computing)的操作时使用,这种情况下进程会暂时将自己的有效用户ID从特权用户(常为root)对应的UID变为某个非特权用户对应的UID,而后将原有的特权用户UID复制为SUID暂存;之后当进程完成不需特权的操作后,进程使用SUID的值重置EUID以重新获得特权。在这里需要说明的是,无特权进程的EUID值只能设为与RUID、SUID与EUID(也即不改变)之一相同的值。

文件系统用户ID

[编辑]

文件系统用户IDFile System UID,即FSUID)在Linux中使用,且只用于对文件系统的访问权限控制,在没有明确设定的情况下与EUID相同(若FSUID为root的UID,则SUID、RUID与EUID必至少有一亦为root的UID),且EUID改变也会影响到FSUID。设立FSUID是为了允许程序(如NFS服务器)在不需获取向给定UID账户发送信号的情况下以给定UID的权限来限定自己的文件系统权限。

杂项

[编辑]
  • UID的数值与用户账户的对应关系存放于/etc/passwd[3]。用于存放密码的/etc/shadow以及网络信息服务也以UID的数值标识用户,但现在Linux系统下的shadow文件已经改用账户名来标识用户。
  • 在遵循POSIX的环境中,id这一命令可以给出当前用户的用户名、所属组及对应的UID、GID的值[3]

参考文献

[编辑]

引用

[编辑]
  1. ^ 1.0 1.1 DebianHelp.co.uk. Usernames and User IDs in Debian Linux. [2011-12-22]. (原始内容存档于2021-01-10). 
  2. ^ Red Hat Documents. Red Hat Enterprise Linux-Specific Information. [2011-12-22]. (原始内容存档于2012-07-07). 
  3. ^ 3.0 3.1 UnixTutorial.org. How To Find Out User ID in Unix. [2011-12-22]. (原始内容存档于2011-12-24). 

来源

[编辑]

外部链接

[编辑]

参见

[编辑]
{{bottomLinkPreText}} {{bottomLinkText}}
用户ID
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?