温馨提示×

ubuntu deluser如何写脚本

小樊
45
2026-09-02 09:37:58
栏目: 智能运维

在 Ubuntu 里,deluser 是删除用户的标准命令(来自 adduser 包)。写脚本时通常需要注意:是否删除家目录、是否删除邮件池、是否强制删除正在登录的用户 等。

下面给你几个常用、安全的脚本示例。


一、最基础脚本:删除一个用户

#!/bin/bash

USERNAME="testuser"

if id "$USERNAME" &>/dev/null; then
    sudo deluser "$USERNAME"
    echo "用户 $USERNAME 已删除"
else
    echo "用户 $USERNAME 不存在"
fi

二、删除用户并删除家目录(常用)

#!/bin/bash

USERNAME="testuser"

if id "$USERNAME" &>/dev/null; then
    sudo deluser --remove-home "$USERNAME"
    echo "用户 $USERNAME 及家目录已删除"
else
    echo "用户 $USERNAME 不存在"
fi

✅ --remove-home:删除 /home/username


三、删除用户 + 家目录 + 邮件池

sudo deluser --remove-home --remove-all-files "$USERNAME"

⚠️ 谨慎使用:

  • --remove-all-files 会扫描整个系统并删除该用户拥有的文件

四、批量删除用户脚本

#!/bin/bash

for user in user1 user2 user3; do
    if id "$user" &>/dev/null; then
        sudo deluser --remove-home "$user"
        echo "$user 已删除"
    else
        echo "$user 不存在"
    fi
done

五、强制删除正在登录的用户

如果用户在登录或进程未结束:

sudo pkill -u username
sudo deluser --remove-home username

或一行:

sudo pkill -u testuser && sudo deluser --remove-home testuser

六、完整安全删除脚本(推荐)

#!/bin/bash

USERNAME="$1"

if [ -z "$USERNAME" ]; then
    echo "用法: $0 用户名"
    exit 1
fi

if ! id "$USERNAME" &>/dev/null; then
    echo "用户 $USERNAME 不存在"
    exit 1
fi

# 杀掉用户进程
sudo pkill -u "$USERNAME"

# 删除用户及家目录
sudo deluser --remove-home "$USERNAME"

echo "用户 $USERNAME 删除完成"

使用:

chmod +x del_user.sh
sudo ./del_user.sh testuser

七、常见参数说明

参数 作用
--remove-home 删除家目录
--remove-all-files 删除系统所有该用户文件
--group 同时删除同名用户组
--disabled-login 禁用登录(不是删除)

如果你愿意,可以告诉我:

  • 是否要 保留家目录
  • 是否 服务器/容器环境
  • 是否要 自动化运维(Ansible / cron)

我可以帮你写更贴合的脚本。

0 踩