我周围有很多 Ubuntu 驱动的设备。
据我所知/etc/group
,/etc/passwd
,/etc/shadow
是在安装过程中创建的,所以它们不属于任何包:
$ dpkg -S /etc/passwd
dpkg-query: no path found matching pattern /etc/passwd
$ dpkg -S /etc/shadow
dpkg-query: no path found matching pattern /etc/shadow
$ dpkg -S /etc/group
dpkg-query: no path found matching pattern /etc/group
我的问题在标题中 - 如何检查我的用户和组是否正确?如果我在此类文件中拼写错误或手动更改了某些内容怎么办?
1. 基本方法
我发现这种操作非常有用的包。它被命名
base-passwd
并具有以下描述:主文件(在上述术语中)放置在:
/usr/share/base-passwd/group.master
/usr/share/base-passwd/passwd.master
该软件包仅包含一个二进制文件
/usr/sbin/update-passwd
。其目的在手册页 (
man update-passwd
) 中进行了描述:对于问题中的问题,我们需要运行:
您也可以尝试运行模拟(试运行):
不带参数运行将安全地更新
/etc/passwd
,/etc/shadow
或者/etc/group
安静地退出:该实用程序涵盖 39 个标准组 - adm、audio、backup、bin、cdrom、daemon、dialout、dip、disk、fax、floppy、games、gnats、irc、kmem、list、lp、mail、man、news、nogroup、operator ,插件开发,代理,根, sasl , shadow , src , staff , sudo , sys , tape , tty , users , utmp , uucp , video , voice , www-data。
/usr/share/doc/base-passwd/users-and-groups.html
可以在(或在线)中阅读有关标准组的本地文档。2. 更深层次的方法
警告:如果您不确定自己在做什么或者您是新手,请不要继续。
从...开始
然后,如果您从存储库安装了其他软件,然后丢弃了您的
/etc/passwd
和/或/etc/group
您可以尝试使用基于@muru 建议的命令重新安装所有此类软件包:2.1。破碎的
/etc/group
如果您已从中删除条目,
/etc/group
您将面临错误消息您需要从中删除相应的行
/var/lib/dpkg/statoverride
,/etc/passwd
然后使用上面的命令重试。其他可能的错误信息是
您可以通过手动下载软件包来修复它:
然后使用上面的命令重试。
如果您从 /etc/group 中删除了与 systemd 相关的组systemd-journal、systemd-timesync、systemd-network、systemd-resolve、systemd-bus-proxy ,则将它们从/etc/group中删除
/etc/passwd
并重新安装systemd
包然后用上面的命令再试一次
2.2. 破碎的
/etc/passwd
如果您已从中删除条目,
/etc/passwd
您将面临错误消息您需要从中删除相应的行
/var/lib/dpkg/statoverride
,然后使用上面的命令重试。