我正在使用 CentOS 8,在 UID 和用户名方面存在问题。我安装了 VestaCP 来管理我的网站。名为“user123”且 UID 为 1007 的用户是所有网站的所有者(VestaCP 中的用户)。然后我为每个网站创建了单独的 FTP 用户。每个 FTP 用户的名称格式如下:“user123_random”,其中 random 是随机文本。每个 FTP 用户都有不同的名称,但他们都共享相同的 UID(1007)(这是创建新 FTP 用户时的默认行为)。
现在,当我检查每个网站或该网站内文件的所有权(用户)时,问题就出现了。因此从技术上讲,所有者属于 UID 1007。这里的问题是,出于某种原因,CentOS 8 显示“user123_random”作为网站的所有者,而不是“user123”。
奇怪的是,当我执行“id -nu 1007”时,它会返回最后一个以“user123_”为前缀创建的 FTP 用户的名称。因此,我假设这是 CentOS 8 内部所做的,将最后一个用户名(具有相同的 ID 1007)显示为文件/目录的所有者。这不是 CentOS 7 的工作方式。CentOS 7 会将“user123”显示为文件的所有者,而不管是否添加具有相同 UID 的新 FTP 用户。
问题是...有没有办法改变 CentOS 8 中的这种行为,使其表现得像 CentOS 7?这样通过 UID 进行反向名称搜索将返回具有该 UID 的“第一个创建的用户”。
答案1
我会使用不同的解决方案。我会将所有这些用户添加到 2 个组中,一个组授予只读访问权限,另一个组授予读写访问权限。然后,我会使用扩展的 POSIX ACL 为这些组授予文件夹和文件的权限。您可以设置要继承的默认权限。然后,我会使用 setGID 设置新文件和文件夹的组。
有关详细信息,请参阅以下手册页:chmod、chown、setfacl、getfacl、ls