家目录被删除如何恢复

本文介绍如何在CentOS 6.9系统中恢复已删除的用户目录,包括复制模本文件夹、调整所有者及所属组、设置正确的权限等步骤。

删除wang的家目录,恢复之(权限,所有者组,数据)

环境配置

  • centos 6.9 系统

解决方案

  1. 首先我们查看 /etc/default/useradd
[root@centos6 /]# cat /etc/default/useradd 




useradd defaults file

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel #这个是创建用户家目录的模本文件夹
CREATE_MAIL_SPOOL=yes

  • 我们现在用cp 命令把这个文件夹的内容复制到/home下的并改名wang
[root@centos6 /]# cp -r /etc/skel   /home/wang
[root@centos6 /]# cd /home/
[root@centos6 home]# ls
guo  mage  wang  xiaofeng  xiaowang
[root@centos6 home]# ls -a wang/
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla
  • 我们看到我们已经把wang用户的默认家目录文件创建出来现在查看home里面的wang文件夹详细信息
[root@centos6 home]# ll
total 20
drwx------. 29      500 guo      4096 Nov 15 13:35 guo
drwx------.  4 mage     mage     4096 Nov 16 11:56 mage
drwxr-xr-x.  4 root     root     4096 Nov 16 14:11 wang 
drwx------.  2 xiaofeng xiaofeng 4096 Nov 16 09:35 xiaofeng
  • 现在我们看到wang所有者和所属组都是root并不是wang用户的我们用chown 命令来修改 但是我们进入wang文件夹中发现用户默认的隐藏文件夹也都是root的。
[root@centos6 home]# ll -a wang/
total 28
drwxr-xr-x. 4 root root 4096 Nov 16 14:11 .
drwxr-xr-x. 7 root root 4096 Nov 16 14:11 ..
-rw-r--r--. 1 root root   18 Nov 16 14:11 .bash_logout
-rw-r--r--. 1 root root  176 Nov 16 14:11 .bash_profile
-rw-r--r--. 1 root root  124 Nov 16 14:11 .bashrc
drwxr-xr-x. 2 root root 4096 Nov 16 14:11 .gnome2
drwxr-xr-x. 4 root root 4096 Nov 16 14:11 .mozilla
  • 所以我们要注意这一个细节 因为带.的都是隐藏文件很容易忽略我们用chown -R 选项进行修改所有者和所属组,但是我们发现其它家目录中..这个文件夹都是root的
[root@centos6 home]# ll -a xiaoming/
total 28
drwx------. 4 xiaoming xiaoming 4096 Nov 16 14:43 .
drwxr-xr-x. 8 root     root     4096 Nov 16 14:43 ..
-rw-r--r--. 1 xiaoming xiaoming   18 Mar 23  2017 .bash_logout
-rw-r--r--. 1 xiaoming xiaoming  176 Mar 23  2017 .bash_profile
-rw-r--r--. 1 xiaoming xiaoming  124 Mar 23  2017 .bashrc
drwxr-xr-x. 2 xiaoming xiaoming 4096 Nov 12  2010 .gnome2
drwxr-xr-x. 4 xiaoming xiaoming 4096 Nov  7 15:42 .mozilla
  • 现在我们开始更改权限
[root@centos6 home]# chown -R wang:wang wang/
[root@centos6 home]# ll 
total 24
drwx------. 29      500 guo      4096 Nov 15 13:35 guo
drwx------.  4 mage     mage     4096 Nov 16 11:56 mage
drwxr-xr-x.  4 wang     wang     4096 Nov 16 14:11 wang
drwx------.  2 xiaofeng xiaofeng 4096 Nov 16 09:35 xiaofeng
[root@centos6 home]# ll -a wang/
total 28
drwxr-xr-x. 4 wang wang 4096 Nov 16 14:11 .
drwxr-xr-x. 8 root root 4096 Nov 16 14:43 ..
-rw-r--r--. 1 wang wang   18 Nov 16 14:11 .bash_logout
-rw-r--r--. 1 wang wang  176 Nov 16 14:11 .bash_profile
-rw-r--r--. 1 wang wang  124 Nov 16 14:11 .bashrc
drwxr-xr-x. 2 wang wang 4096 Nov 16 14:11 .gnome2
drwxr-xr-x. 4 wang wang 4096 Nov 16 14:11 .mozilla
  • 所有者和所属主我们已经更改好了,现在我们把文件权限更改一下用单chmod 命令,当然我们也要参考xiaoming的家目录进行修改
drwxr-xr-x.  4 wang     wang     4096 Nov 16 14:11 wang
drwx------.  4 xiaoming xiaoming 4096 Nov 16 14:43 xiaoming
  • 现在我就按照小明的权限进行修改
[root@centos6 home]# chmod a-r wang/
[root@centos6 home]# ll
total 20
drwx------. 29      500 guo      4096 Nov 15 13:35 guo
d-wx--x--x.  4 wang     wang     4096 Nov 16 14:11 wang
drwx------.  2 xiaofeng xiaofeng 4096 Nov 16 09:35 xiaofeng
drwx------.  4 xiaoming xiaoming 4096 Nov 16 14:43 xiaoming
  • 现在我们把所属组和其它人的执行权限去掉
[root@centos6 home]# chmod g-x wang/    
[root@centos6 home]# chmod o-x wang/
[root@centos6 home]# ll
total 20
drwx------. 29      500 guo      4096 Nov 15 13:35 guo
d-wx------.  4 wang     wang     4096 Nov 16 14:11 wang
drwx------.  2 xiaofeng xiaofeng 4096 Nov 16 09:35 xiaofeng
drwx------.  4 xiaoming xiaoming 4096 Nov 16 14:43 xiaoming
  • 所有者有个读权限没有我们给它加上
[root@centos6 home]# chmod u+r wang/
[root@centos6 home]# ll
total 20
drwx------. 29      500 guo      4096 Nov 15 13:35 guo
drwx------.  4 wang     wang     4096 Nov 16 14:11 wang
drwx------.  2 xiaofeng xiaofeng 4096 Nov 16 09:35 xiaofeng
drwx------.  4 xiaoming xiaoming 4096 Nov 16 14:43 xiaoming
  • 现在我们在进行对比文件夹里面的文件的权限
[root@centos6 home]# ll -a wang/
total 28
drwx------. 4 wang wang 4096 Nov 16 14:11 .
drwxr-xr-x. 7 root root 4096 Nov 16 14:55 ..
-rw-r--r--. 1 wang wang   18 Nov 16 14:11 .bash_logout
-rw-r--r--. 1 wang wang  176 Nov 16 14:11 .bash_profile
-rw-r--r--. 1 wang wang  124 Nov 16 14:11 .bashrc
drwxr-xr-x. 2 wang wang 4096 Nov 16 14:11 .gnome2
drwxr-xr-x. 4 wang wang 4096 Nov 16 14:11 .mozilla
[root@centos6 home]# ll -a xiaoming/
total 28
drwx------. 4 xiaoming xiaoming 4096 Nov 16 14:43 .
drwxr-xr-x. 7 root     root     4096 Nov 16 14:55 ..
-rw-r--r--. 1 xiaoming xiaoming   18 Mar 23  2017 .bash_logout
-rw-r--r--. 1 xiaoming xiaoming  176 Mar 23  2017 .bash_profile
-rw-r--r--. 1 xiaoming xiaoming  124 Mar 23  2017 .bashrc
drwxr-xr-x. 2 xiaoming xiaoming 4096 Nov 12  2010 .gnome2
drwxr-xr-x. 4 xiaoming xiaoming 4096 Nov  7 15:42 .mozilla

-这样我们就完成了,但是我们没有检查/etc/passwd 中的wang用户家目录的路径,现在我们看一下用getent passwd wang 这个命令查看一下

[root@centos6 home]# getent passwd wang
wang:x:1205:1205::/home/wang:/bin/bash
  • 家目录是正确的所以到这一步就大功告成了。

  • 当然也有很简单的方法和命令

  • 一共就三个步骤 复制模本文件 ,改所有者所属组,然后改权限。
<think>嗯,用户需要恢复被误删除的Linux home目录。这个问题很紧急,因为home目录通常包含用户数据和配置文件。让我整理一下思路。 从引用内容看,用户可能执行了类似rm -rf /home这样的危险命令。引用[3]提到有人用rm -rf ./home删除了整个home目录,这和用户情况很相似。引用[4]则提供了具体的恢复步骤,这些信息很有参考价值。 用户当前应该处于无法登录的紧急状态。根据引用[4]的描述,当home目录被删后,普通用户通过ssh登录时会报错,这正是典型症状。需要立即采取行动防止数据被覆盖。 关键恢复步骤应该包括: 1. 立即停止对分区的任何写入操作,这点在引用[1]和[2]都重点强调了 2. 切换到root权限操作,因为普通用户环境已损坏(引用[4]) 3. 重建用户目录结构,引用[4]的方法很实用:创建临时用户->复制其目录->修改属主 4. 数据恢复方面,引用[1]提到的extundelete工具可能适用,但要注意分区类型 需要特别注意文件系统类型。引用[1][2]讨论的是ext文件系统恢复,而用户没说明文件系统类型。如果是xfs系统,可能需要xfs_undelete工具。这点要在回答里提醒用户确认。 另外考虑补充安全建议: - 恢复后立即设置rm别名(引用[2]的教训) - 重要数据分区存储(引用[2]总结的第2点) - 建立备份机制 用户可能还会关心: - 如果无法立即停机怎么办 - 恢复不完整时的补救措施 - 专业数据恢复服务的建议 这些问题可以放在相关问题里。现在重点是把核心恢复流程说清楚,特别是引用[4]那个已验证的方法。要强调操作顺序:先停止写入,再重建框架,最后尝试数据恢复。</think>在Linux中误删除`/home`目录后,恢复的关键是**立即停止写入操作**,避免数据被覆盖。以下是详细步骤: --- ### **恢复步骤** 1. **紧急处理(防止数据覆盖)** - ✋ 停止所有对`/home`所在分区的操作: ```bash sudo umount /home # 卸载分区(若/home是独立分区) ``` - 若无法卸载(如系统正在使用),重启系统进入**单用户模式**(在GRUB菜单添加`single`参数)或使用**Live CD/USB**启动。 2. **备份分区(可选但强烈推荐)** 通过`dd`备份整个分区(假设`/home`位于`/dev/sda2`): ```bash sudo dd if=/dev/sda2 of=/path/to/backup.img bs=4M # 备份到外部存储 ``` 3. **恢复数据** **方法1:使用数据恢复工具(推荐)** - 安装`extundelete`(适用于ext3/ext4文件系统): ```bash sudo apt install extundelete # Debian/Ubuntu sudo yum install extundelete # RHEL/CentOS ``` - 执行恢复(以`/dev/sda2`为例): ```bash sudo extundelete --restore-directory /home /dev/sda2 ``` - 恢复的文件会保存在当前目录的`RECOVERED_FILES`中[^1][^2]。 **方法2:重建用户目录(若无备份工具)** - 创建临时用户并复制其目录模板: ```bash sudo useradd tempuser # 创建临时用户 sudo cp -r /etc/skel /home/原用户名 # 复制骨架目录 sudo chown -R 原用户名:组名 /home/原用户名 # 修正属主 ``` 4. **修复用户环境** - 手动恢复用户配置文件(若有备份): ```bash cp /path/to/backup/.bashrc /home/原用户名/ # 示例 ``` --- ### **关键注意事项** 1. **停止写入** - 误删后立即卸载分区或只读挂载,避免新数据覆盖旧inode[^1][^3]。 2. **文件系统限制** - `extundelete`仅支持ext3/ext4,XFS分区需用`xfs_undelete`或专业工具。 3. **成功率因素** - 恢复成功率取决于删除后是否写入新数据。若分区被大量写入,数据可能永久丢失[^2]。 --- ### **预防措施** - **禁用危险操作**: ```bash alias rm='rm -i' # 将rm设为交互式删除 ``` - **定期备份**: ```bash sudo tar -czvf /backup/home_$(date +%F).tar.gz /home # 定期压缩备份 ``` - **使用回收站工具**: 安装`trash-cli`替代`rm`: ```bash sudo apt install trash-cli && alias rm='trash-put' ``` --- ### **相关问题** 1. 如何恢复XFS文件系统上误删的文件? 2. 除了`extundelete`,Linux还有哪些开源数据恢复工具? 3. 如何配置自动化备份策略保护`/home`目录? 4. 单用户模式下如何挂载根分区为读写模式? > 引用文献: > [^1]: 停止分区操作并备份是恢复的前提条件[^1]。 > [^2]: 使用`extundelete`可恢复ext3/ext4分区的目录结构[^2]。 > [^3]: 误删`/home`后需重建用户目录并修复权限[^3][^4]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值