首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会不会总是有一对相同的UID和GID?

问会不会总是有一对相同的UID和GID?
EN

Unix & Linux用户
提问于 2014-05-14 14:41:25
回答 3查看 13.9K关注 0票数 12

我必须使用chmod更改文件/目录的所有权。我只知道所有者的用户名,但希望同时更改默认的组名。在这个阶段,组名还没有决定,所以我把它和用户名放在一起:

代码语言:javascript
复制
chown -R username:username path_to_dir

命令可以为各种系统/用户运行。所以我关心的是,Linux总是有一对用户名(User):username(Group)还是在某个时候这个默认的group_name可能会出错。

虽然我已经开始从用户中找到GID

代码语言:javascript
复制
id username | tr '(=)' ':' | awk -F: '{print $3}

但对于知识,我想知道。到目前为止,对/etc/passwd /etc/groups的分析,除了很少有像“关机、停止、同步、操作员”这样的用户之外,所有的用户都已分组列出。

编辑1: id -gn用户名也是很好的选择

EN

回答 3

Unix & Linux用户

发布于 2014-05-14 15:06:52

虽然在现代Linux系统中经常使用用户私有组成语,但是*nix实际上并不需要每个用户都有一个唯一的主组,而且多个用户帐户很可能共享一个公共的主组,比如users或staff。

即使在UPG成语被强制执行的情况下,也没有特殊的理由说明特定UPG的数值GID应该等于所有者的UID,尽管大多数帐户创建工具都会尝试按顺序分配UID和GID(如果可用的话)。如果需要使用户和/或组在多个系统之间保持一致(例如,为了适应预先存在的NFS共享),则ID很容易出错。

票数 12
EN

Unix & Linux用户

发布于 2014-05-14 14:54:44

正如Ramesh所指出的,在默认情况下,UID和GID对于普通用户是相等的。然而,这并不总是这样,所以你不能做出这样的假设,因为这可能会对你的系统造成破坏。将文件/文件夹权限分配给错误的组有点麻烦,不是吗?

因此,简短的回答是:不,UID并不总是等于GID。不过,/etc/passwd在同一行中同时包含默认组的UID和GID,因此提取它们相当容易。

票数 6
EN

Unix & Linux用户

发布于 2014-05-14 14:44:44

从这链接,我看到以下信息。

用户ID (UID)是由类似Unix的操作系统分配给每个用户的唯一正整数。每个用户都是通过其UID标识到系统的,并且用户名通常仅用作人类的接口。

UID与其相应的用户名和其他特定于用户的信息一起存储在/etc/passwd文件中,可以使用cat命令读取这些信息,如下所示:

代码语言:javascript
复制
cat /etc/passwd

第三个字段包含UID,第四个字段包含组ID (GID),默认情况下它等于所有普通用户的UID。

编辑

但是,正如@Karlson所指出的,在默认情况下,UID不等于GID。

只有当没有单独添加普通组,并且在任何用户创建中没有显式指定组时,该语句才是正确的。默认情况下,下一个添加的用户为gid = max(gid) + 1。在任何*NIX系统所需的UID和GID之间没有相关性,它们在某些情况下恰好是一致的。

更多参考资料

http://www.thegeekstuff.com/2009/06/useradd-adduser-newuser-how-to-create-linux-users

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/129368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档