详解Linux误删用户家目录的恢复方法

在生产中可能会由于误操作而删除了某一用户的家目录,这时就需要把用户的家目录安装创建新用户时的模板文件,再恢复并且要跟之前的权限相同。

1. 创建一个新的用户用于测试

[root@centos6 aubin]# useradd wangcai

2. 新用户创建完成时会在/home下面自动创建同名的文件夹

[root@centos6 home]# ls
aubin gentoo li wangcai

3. 首先查看一下用户家目录中的文件以及权限,用于验证我们恢复后权限没有偏差

[root@centos6 aubin]# ls /home/wangcai/ -al
total 28
drwx------. 4 wangcai wangcai 4096 Jul 24 19:11 .
drwxr-xr-x. 6 root  root  4096 Jul 24 19:11 ..
-rw-r--r--. 1 wangcai wangcai  18 Mar 23 08:15 .bash_logout
-rw-r--r--. 1 wangcai wangcai 176 Mar 23 08:15 .bash_profile
-rw-r--r--. 1 wangcai wangcai 124 Mar 23 08:15 .bashrc
drwxr-xr-x. 2 wangcai wangcai 4096 Nov 12 2010 .gnome2
drwxr-xr-x. 4 wangcai wangcai 4096 Jul 14 10:38 .mozilla

3. 这里模拟生产中误操作而删除了家目录

[root@centos6 home]# rm -rf wangcai/
[root@centos6 home]# ls
aubin gentoo li  #删除wangcai目录

4. 复制skel中的所有文件到home下的旺财。skel目录中的文件都是创建新用户时家目录中的文件。换句话来说skel中的文件是创建用户家目录的模板。

[root@centos6 home]# cp /etc/skel/ /home/wangcai -a

5. 查看复制来的wangcai文件夹,注意一下所有者与所属组都是root,所以需要改成wangcai

[root@centos6 home]# ls -al
drwxr-xr-x. 4 root root 4096 Jul 14 10:49 wangcai

6. 首先把wnagcai目录的权限修改为700

[root@centos6 home]# chmod 700 wangcai/

7. 最后把wangcai目录下的所有文件所属组、所有者都改成用户自己。

-R选项是递归,将目录下的所有文件都更改设置。

[root@centos6 home]# chown wangcai:wangcai wangcai/ -R
[root@centos6 home]# ls -al wangcai/
total 28
drwxr-xr-x. 4 wangcai wangcai 4096 Jul 14 10:49 .
drwxr-xr-x. 6 root  root  4096 Jul 24 20:06 ..
-rw-r--r--. 1 wangcai wangcai  18 Mar 23 08:15 .bash_logout
-rw-r--r--. 1 wangcai wangcai 176 Mar 23 08:15 .bash_profile
-rw-r--r--. 1 wangcai wangcai 124 Mar 23 08:15 .bashrc
drwxr-xr-x. 2 wangcai wangcai 4096 Nov 12 2010 .gnome2
drwxr-xr-x. 4 wangcai wangcai 4096 Jul 14 10:38 .mozilla

至此用户的家目录就恢复完成了,并且经过对比跟之前的目录权限完全相同。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux下统计当前文件夹下的文件个数、目录个数

    1) 统计当前文件夹下文件的个数 复制代码 代码如下: ls -l |grep "^-"|wc -l 2) 统计当前文件夹下目录的个数 复制代码 代码如下: ls -l |grep "^d"|wc -l 3) 统计当前文件夹下文件的个数,包括子文件夹里的 复制代码 代码如下: ls -lR|grep "^-"|wc -l 4) 统计文件夹下目录的个数,包括子文件夹里的 复制代码 代码如下: ls -lR|grep "^d"|w

  • linux命令切换目录的使用方法

    1.cd - 作用是快速切换到前一个目录,如下: 复制代码 代码如下: amosli@amosli-pc:~$ cd learn/fd/amosli@amosli-pc:~/learn/fd$ cd -/home/amosli 2.dirs:显示目录栈,列出当前堆栈中保存的目录列表 复制代码 代码如下: amosli@amosli-pc:~/learn/fd$ dirs~/learn/fd 说明: dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表-v参数可以在目录前加上编号注意:有

  • Linux 用cp和rsync同步文件时跳过指定目录的方法

    需求是:某测试站点,在某个节点的时候需要同步到正式站点去,但是里面的config目录不能覆盖, 方法一:终端命令行下执行以下命令 cp -R `find /projectA -type d -path /projectA/common/config -prune -o -print | sed 1d ` /projectB/ 方法二: localhost # find projectB/ommon/config | xargs touch 修改目标目录的congfig目录文件的access ti

  • 一个监控LINUX目录和文件变化的Shell脚本分享

    最近看到群里有人聊到他们的服务器最近被挂马,然后想利用一个脚本能够实时监控web目录下文件的变化,也就是对该目录的增删改操作都会记录到相应日志下. 当时感觉这个功能的确实有点意思,所以网上查阅了些资料,自己研究了下,这会儿有空写了个脚本,分享给大家,如有问题,还请大家指出. 以下我写了两个脚本: 脚本1:将需要监控的目录的原始状态保存到LOG日志 脚本2:将脚本1的原始状态与本脚本比对,如果目录文件发生变化,则将变化的内容保存到日志. 注:原理实际上利用的是du -sb输出值来判断文件的变化,再

  • linux目录详解linux目录结构详细分析

    根文件系统一般应该比较小,因为包括严格的文件和一个小的不经常改变的文件系统不容易损坏.损坏的根文件系统一般意味着除非用特定的方法(例如从软盘)系统无法引导,所以不应该冒这个险.根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz .所有其他文件在根文件系统的子目录中. /bin 引导启动所需的命令或普通用户可能用的命令(可能在引导启动后). /sbin 类似/bin ,但不给普通用户使用,虽然如果必要且允许时可以使用. /etc 特定机器的配置文件. /root root

  • CentOS Linux更改MySQL数据库目录位置具体操作

    引言: 由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录. 下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作: 1.首先我们需要关闭MySQL,命令如下: service mysqld stop 2.然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录 cd /var/lib ls 运行这个命令之后就会看到mysql的目录了,然后

  • 解析linux 文件和目录操作的相关函数

    struct stat{mode_t    st_mode;    文件类型,文件权限ino_t     st_ino;        i节点号dev_t    st_dev;        dev_t    st_rdev;    设备文件序号nlink_t    st_nlink;    链接uid_t    st_uid;gid_t     st_gid;        用户IDoff_t    st_size;    文件大小,此字段只对普通文件.目录文件和符号连接有意义.time_t 

  • Linux中更改转移mysql数据库目录的步骤

    本文是简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作. 首先我们需要关闭MySQL,命令如下: #service mysqld stop 网上有很多人都是用的mysqladmin -u root -p shutdown,不过我这个是系统安装的是kloxo面板,root密码并不知道,虽然可以重置,但是比较麻烦. 然后是转移数据,为了安全期间,我们采用复制的命令cp,先找到mysql的原目录 #cd /var/lib

  • linux修改目录和文件权限的简单命令解释

    今天遇到的问题,如何一个用户如www的权限复制给我的用户? 目录的权限表示:dwrxr--r-- 其中第一个字符 d代表目录, -代表字符 w代表可写,r代表可读 x代表可执行 数字为4,2,1其中第一组是文件或者目录所有者权限,第二组代表当前用户所在用户组,第三组是其他用户组的权限所以控制文件的权限是精确到组的 用 chmod 权限 目录 复制代码 代码如下: chmod 777 testchmod u+w test

  • 详解Linux误删用户家目录的恢复方法

    在生产中可能会由于误操作而删除了某一用户的家目录,这时就需要把用户的家目录安装创建新用户时的模板文件,再恢复并且要跟之前的权限相同. 1. 创建一个新的用户用于测试 [root@centos6 aubin]# useradd wangcai 2. 新用户创建完成时会在/home下面自动创建同名的文件夹 [root@centos6 home]# ls aubin gentoo li wangcai 3. 首先查看一下用户家目录中的文件以及权限,用于验证我们恢复后权限没有偏差 [root@cento

  • 详解linux下查看系统版本号信息的方法(总结)

    有时候需要查看自己系统的CentOs的版本,有一些命令可以查看,分别介绍如下:查看Linux内核版本命令(两种方法)和Linux系统版本的命令(3种方法) 一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@localhost ~]# cat /proc/version Linux version 2.6.18-194.8.1.el5.centos.plus (mockbuild@builder17.centos.org) (gcc version

  • 详解Linux 操作系统下安装rpm包的方法步骤

    第2代Linux操作系统在安装软件方面相当简单:第一步,搜索你要的软件,比如你要找一个游戏软件,它的名称叫myward,这个游戏软件的说明是:myown war game.Linux操作系统搜索这个软件包就只需要输入命令apt-cache searchmyward,或者输入软件名称的一部分apt-cache searchwar,或者你不知道软件名称. 下面有一张图可以清晰地表示linux软件应用的架构关系: 在Linux启动的时候.首先会启动内核(kernel),内核是一段计算机程序,这个程序直

  • 详解Linux(centos7)下安装OpenSSL安装图文方法

    OpenSSL是一个开源的ssl技术,由于我需要使用php相关功能,需要获取https的文件所以必须安装这个东西了,下面我整理了两种关于OpenSSL安装配置方法. 安装环境:  操作系统:CentOs7安静 OpenSSL Version:openssl-1.0.2j.tar.gz 目前版本最新的SSL地址为http://www.openssl.org/source/openssl-1.0.2j.tar.gz 1.将下载的压缩包放在根目录, 2.在文件夹下解压缩,命令:tar -xzf ope

  • 详解Linux系统中网卡MAC地址克隆方法

    怎么临时性地改变 MAC 地址? 你可以在 Linux 运行的时候改变 MAC 地址.需要注意的是当 MAC 地址转换的那一会时间,你的网络会掉线.当电脑重启时 MAC 地址又会变回原来的.下面介绍几种方法来改变你的 MAC 地址. 方法一:iproute2 $sudo ip link set dev eth0 down $sudo ip link set dev eth0 address 00:00:00:00:00:01 $sudo ip link set dev eth0 up 方法二:m

  • 详解 Linux 常用目录的作用

     详解 Linux 常用目录的作用 一 常用一级目录 注意: 1.根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的. 2.bin目录下的命令时任何用户都能执行,sbin目录下的命令只有超级用户才能执行. 3.media用来挂载光盘,misc挂载磁带机,mnt挂载U盘.它们都是空目录. 4.proc和sys目录不能直接操作,这两个目录保存的是内存挂载点. 5.可以在家目录root或home,以及tmp目录下随便放内容. 二 实战 [root@localh

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • Linux文件服务器实战详解(系统用户)

    ftp匿名用户设置完成之后任何人都可以访问服务器端文件,目录,甚至可以修改删除文件和目录,,那如何存放私密文件并保证文件或者目录专属于拥有者呢,就需要使用vsftp系统用户来实现了. 1.在linux系统创建多个用户(useradd)并给用户设置密码 [root@www ~]# useradd xj1 [root@www ~]# useradd xj2 [root@www ~]# echo 123456|passwd --stdin xj1 [root@www ~]# echo 123456|p

  • 详解Linux添加/删除用户和用户组

    本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数.废话不多说,下面我们来看一下. 1.建用户: adduser phpq                             //新建phpq用户 passwd phpq                               //给phpq用户设置密码 2.建工作组 groupadd test                          //新建test工作组 3.新建用户同时增加工作组 useradd -g te

  • 详解linux SSH登录流程

    本文给大家详细介绍了ssh 密钥登录远程服务器流程和注意事项,以下是详细内容: 密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对.整个登录流程如下: 远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户. 用户收到远程服务器发来的字符串,使用与远程服务器公钥配对的私钥对字符串进行加密,再发送给远程服务器. 服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登

随机推荐