如何在/ etc / shadow文件中添加注释?


10

我正在进行一些系统升级,并且我的软件包管理器正在显示上游/ etc / shadow和mine之间的更改。

我想在文件中添加一些注释,以便下次发生这种情况。我如何完成在/ etc / shadow文件中添加注释而不破坏内容。

我认为默认的“#”可能会执行此操作,但是如果我遇到此错误,重新启动将不会那么令人愉快。


使用etckeeper并在提交消息中记录您的评论。
吉尔(Gilles)'所以

Answers:


14

在使用GNU libc的Linux系统上,以开头的行#被忽略/etc/shadow。解析由完成__fgetspent_r(),其源代码显式处理(和记录)此行为。

因此,在绝大多数Linux系统上,您都可以在/etc/shadow其中注释行而#不会引起问题。

不幸的是,在/etc/shadow更新时,例如通过passwd; 删除了注释。因此,从评论的角度来看,存储评论实际上并不安全。

这意味着你需要找到其他地方来存储您的意见:两个很好的建议是DR01想法使用的/etc/shadow.README,或更好,但吉尔 ' 的想法使用的承诺与信息etckeeper


几乎所有无效条目似乎都会丢失passwd。我尝试使用伪造的用户条目或有效的用户条目,并在最终条目中添加了字符,但都无济于事。
Otheus

7

的每一行都/etc/shadow被视为用户记录。正如斯蒂芬·基特(Stephen Kitt)所写,他回顾了解析器的源代码,可以#将以注释开头的行放在文件中,甚至可以是空行,它们将被忽略。

但是,我从未见过/etc/shadow带有注释的文件。看来这是不常见的做法,并且有很好的理由:强烈建议不要手动编辑它。因此,我建议您创建一个/etc/shadow.README文件来存储您的评论。记住要注意chmod 000该文件,以避免非root用户监听它。


那为什么000呢?拥有root:root然后ug=r,o=不够?
0xC0000022L15年

000是/etc/shadow(至少在Red Hat上,我没有看过其他发行版)的权限,并确保只有root才能访问该文件。正如您所建议的那样,如果普通用户错误地加入了根组,则440使文件可读。在适当管理的机器上,出于所有实际目的,它们都是一样的。我认为000更好地表达了“安全关键文件-放手”的意思,但这只是我的看法。
dr_

@ dr01:不确定普通用户如何在没有超级用户的情况下加入根组。如果超级用户犯了这样的错误,那么所有的赌注都将被取消。例如,很可能那个人已经是个傻瓜,并且无论如何都可以访问该文件。我认为它很安全,但YMMV。
0xC0000022L15年

这正是“普通用户错误地加入根组”的意思。我的情况是,超级用户可能(尽管机会很小)会错误地将他/她放入根组。虽然000权限将仅允许root用户访问该文件。我知道这可能是一个极端的情况,但是我认为这种方法更加简洁,因为注释文件最终具有与相同的权限/etc/shadow
dr_ 2015年

3

当然,您可以更改自己的/etc/shadow。您不希望/etc/shadow服务器上的帐户信息(哈希密码,帐户有效期等)是上游的逐字节副本/etc/shadow

我希望您不要/etc/shadow用从上游数据源获得的任何数据覆盖当前数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.