当系统显示当前在进程中使用的用户时,如何在linux中删除用户

che*_*ell 38 linux

我想删除我在ubuntu上创建的用户.

但是当我使用以下命令时:

userdel -r cafe_fixer
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

user cafe_fixer is currently used by process 15945
Run Code Online (Sandbox Code Playgroud)

我没有将此用户用于我刚创建的任何内容,现在希望将其删除.

任何帮助赞赏.

Sky*_*net 49

首先使用pkillkill -9 <pid>杀死进程.

然后使用以下userdel命令删除用户,

userdel -f cafe_fixer
Run Code Online (Sandbox Code Playgroud)

根据userdel手册页:

-f, - force

此选项强制删除用户帐户,即使用户仍然登录.它还强制userdel删除用户的主目录和邮件假脱机,即使其他用户使用相同的主目录或邮件假脱机不拥有由指定的用户.如果在/etc/login.defs中将USERGROUPS_ENAB定义为yes,并且如果存在与已删除用户同名的组,则该组将被删除,即使它仍然是另一个用户的主要组.

编辑1:

注意:此选项(即--force)是危险的,可能会使系统处于不一致状态.

  • 通过`pkill`或`kill -9 <pid>`更好地杀死那个进程然后运行你选择的任何一个,除非你终止进程,否则它不会让你删除用户. (2认同)
  • 请注意,`userdel`手册页还会对`--force`选项说明以下内容:**"注意:此选项很危险,可能会使系统处于不一致状态."** (2认同)

Aet*_*tus 10

唯一对我有用的解决方案

$ sudo killall -u username && sudo deluser --remove-home -f username
Run Code Online (Sandbox Code Playgroud)

killall如果要删除的用户使用了多个进程,则使用该命令。

-f即使该用户仍处于登录状态,该选项也将强制删除该用户帐户。deluser即使另一个用户使用相同的主目录,该选项也将强制删除该用户的主目录和邮件假脱机。

请在评论中确认它是否有效。

  • 这对我有用,但我需要一个额外的“-9”来表示“killall”。 (2认同)

Kaw*_*iKx 5

pkill  <process id>
userdel <username>
Run Code Online (Sandbox Code Playgroud)