恢复 man 用户

Mar*_*arc 34 users user-management

由于某些阅读障碍的原因(或睡得不够),我输入了

deluser man
Run Code Online (Sandbox Code Playgroud)

而不是更常见的

man deluser
Run Code Online (Sandbox Code Playgroud)

...你可以想象,我刚刚删除了 man 用户!以前没有发生过...

如何正确恢复系统的 man 用户?

ste*_*ver 33

有一个名为的实用程序update-passwd似乎可以为您安全地执行此操作:

NAME
       update-passwd - safely update /etc/passwd, /etc/shadow and /etc/group

SYNOPSIS
       update-passwd [options]

DESCRIPTION
       update-passwd   handles   updates   of   /etc/passwd,  /etc/shadow  and
       /etc/group on running Debian systems.  It compares the current files to
       master  copies, distributed in the base-passwd package, and updates all
       entries in the global system range (that is, 0–99).
Run Code Online (Sandbox Code Playgroud)

首先检查当前条目

$ getent passwd man
man:x:6:12:man:/var/cache/man:/bin/sh
Run Code Online (Sandbox Code Playgroud)

现在让我们删除它

$ sudo deluser man
[sudo] password for steeldriver: 
Removing user `man' ...
Warning: group `man' has no more members.
Done.
Run Code Online (Sandbox Code Playgroud)

检查它真的消失了

$ getent passwd man
$ 
Run Code Online (Sandbox Code Playgroud)

然后

$ sudo update-passwd --dry-run
Adding group "man" (12)
Adding user "man" (6)
Would commit 2 changes
Run Code Online (Sandbox Code Playgroud)

好的,让我们一起做

$ sudo update-passwd
2 changes have been made, rewriting files
Run Code Online (Sandbox Code Playgroud)

现在确认恢复的密码文件条目

$ getent passwd man
man:*:6:12:man:/var/cache/man:/bin/sh
Run Code Online (Sandbox Code Playgroud)

  • 优秀+点赞。请接受这个而不是我的 ;) (2认同)