在 Debian 中,deluser(或 userdel)只是把用户从系统里删掉,但它不会自动删除该用户的家目录、邮件、crontab、文件属主等信息。所以“还原”要分情况讨论。
下面按可恢复程度从易到难说明。
deluser 用户名deluser test
默认行为:
/etc/passwd、/etc/shadow、/etc/group 中的记录/home/test/var/mail/test✅ 可以直接“重建用户”来“还原”:
useradd -m -s /bin/bash test
然后把家目录权限还回去:
chown -R test:test /home/test
⚠️ 注意:
--remove-homedeluser --remove-home test
❌ 家目录被删除
✅ 但仍可能恢复:
rsync -a /backup/home/test/ /home/test/
或
tar -xzf test_home.tar.gz -C /home/
适用于刚删除、未写入新数据:
extundelete(ext4)testdiskphotorecextundelete /dev/sda1 --restore-directory /home/test
⚠️ 成功率不高,且耗时
ls -ln /some/file/owned/by/user
useradd -u 1001 -g 1001 -m -s /bin/bash test
deluser --system test
恢复方式:
useradd -r -s /usr/sbin/nologin test
以下信息 deluser 后不可自动恢复:
| 项目 | 是否可恢复 |
|---|---|
| 用户名 | ✅ 可重建 |
| UID | ✅ 可指定 |
| 密码 | ❌ 除非有备份 |
| sudo 权限 | ✅ 重新加 |
| crontab | ❌(除非 /var/spool/cron) |
| 属主文件 | ✅ 改 UID 即可 |
deluser --backup test
会生成:
/var/backups/test.tar.bz2
恢复:
tar -xjf /var/backups/test.tar.bz2 -C /
如果你愿意,可以告诉我:
我可以给你一条精确恢复命令。