在标准Linux发行版(例如Ubuntu)上,通常有/etc/group
和/etc/group-
,其中第二个只能由root读取。
man group
仅描述/etc/group
。
因此,我的问题是:目的是/etc/group-
什么?
在标准Linux发行版(例如Ubuntu)上,通常有/etc/group
和/etc/group-
,其中第二个只能由root读取。
man group
仅描述/etc/group
。
因此,我的问题是:目的是/etc/group-
什么?
Answers:
它是文件的上一个副本的备份,该副本是上次更改之前的文件版本。因为它是非常重要的文件而被保留。您可以删除它,但是备份是“一件好事”。
您可以轻松地进行验证。尝试
# groupadd test
# diff /etc/group /etc/group-
也有其他文件以同样的方式备份。/etc/passwd-
/etc/shadow-
。
useradd, usermod, userdel, groupmod, groupdel
成功执行命令后,所有用户和组管理实用程序(如etc)都会创建/更新这些备份文件。
我同意@Sachin Divekar的回答,即这是一个“备份文件”,但我需要有关如何创建文件以及如何设置其权限的更多信息。在CentOS6上,usermod
要更改组成员身份的操作是(重新)创建具有权限0644的/ etc / group-,而不是原始问题中所述的“只能以root身份读取”。
usermod
(以及@Sachin Divekar提到的所有其他用户/组管理实用程序)是shadow-utils程序包的一部分(我找到了shadow-4.1.5.1的源代码),在深入研究这些源代码之后,我在commonio中发现了一个#create_backup方法.c(在github.com上查看),由所有用户/组实用程序使用。备份文件以源文件后缀“-”(在本例中为“ / etc / group-”)命名,并且备份文件的权限设置为源文件的权限,并以0664开头。 。
这解释了为什么-在/ etc / group为chmod 0644时,在运行gpasswd
或usermod
修改本地组成员身份后,如果/ etc / group-不存在且被更改为0644的情况,则会创建/ etc / group-。
/etc/group
通过组命令修改而不直接编辑的另一个原因。