我必须使用chmod更改文件/目录的所有权。我只知道所有者的用户名,但希望同时更改默认的组名。在这个阶段,组名还没有决定,所以我把它和用户名放在一起:
chown -R username:username path_to_dir命令可以为各种系统/用户运行。所以我关心的是,Linux总是有一对用户名(User):username(Group)还是在某个时候这个默认的group_name可能会出错。
虽然我已经开始从用户中找到GID
id username | tr '(=)' ':' | awk -F: '{print $3}但对于知识,我想知道。到目前为止,对/etc/passwd /etc/groups的分析,除了很少有像“关机、停止、同步、操作员”这样的用户之外,所有的用户都已分组列出。
编辑1: id -gn用户名也是很好的选择
发布于 2014-05-14 15:06:52
虽然在现代Linux系统中经常使用用户私有组成语,但是*nix实际上并不需要每个用户都有一个唯一的主组,而且多个用户帐户很可能共享一个公共的主组,比如users或staff。
即使在UPG成语被强制执行的情况下,也没有特殊的理由说明特定UPG的数值GID应该等于所有者的UID,尽管大多数帐户创建工具都会尝试按顺序分配UID和GID(如果可用的话)。如果需要使用户和/或组在多个系统之间保持一致(例如,为了适应预先存在的NFS共享),则ID很容易出错。
发布于 2014-05-14 14:54:44
正如Ramesh所指出的,在默认情况下,UID和GID对于普通用户是相等的。然而,这并不总是这样,所以你不能做出这样的假设,因为这可能会对你的系统造成破坏。将文件/文件夹权限分配给错误的组有点麻烦,不是吗?
因此,简短的回答是:不,UID并不总是等于GID。不过,/etc/passwd在同一行中同时包含默认组的UID和GID,因此提取它们相当容易。
发布于 2014-05-14 14:44:44
从这链接,我看到以下信息。
用户ID (UID)是由类似Unix的操作系统分配给每个用户的唯一正整数。每个用户都是通过其UID标识到系统的,并且用户名通常仅用作人类的接口。
UID与其相应的用户名和其他特定于用户的信息一起存储在/etc/passwd文件中,可以使用cat命令读取这些信息,如下所示:
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
https://unix.stackexchange.com/questions/129368
复制相似问题