zoukankan      html  css  js  c++  java
  • 不小心删除/etc/passwd文件怎么办

    我们在操作LInux的时候,如果不小心删掉/etc/passwd文件,我们该怎样解决呢?

    在Linux 中 /etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。

    比如说:

    root❌0:0:root:/root:/bin/bash

    从上面的例子我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

    1.用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

    2.用户名(login_name):是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:)因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。

    3.口令(passwd):一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

    4.用户标识号(UID):是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。取值范围是0-65535。0是超级用户root的标识号,1-99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

    5.组标识号(GID):字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。

    6.注释性描述(users):字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。

    7.用户主目录(home_directory):也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

    8.登录Shell(Shell):用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

    用户的登录Shell可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

    那么我们在操作LInux的时候,如果不小心删掉/etc/passwd文件,我们该怎样解决呢?

    一.如果删掉之后未重启系统,那么我们只需要将/etc/passwd-这个引子文件拷贝给/etc/passwd即可

    cp /etc/passwd- /etc/passwd

    二.如果我们在删除文件后关闭了系统,打开的时候会发现进不去

    不小心删除/etc/passwd文件怎么办不小心删除/etc/passwd文件怎么办

    那我们这样解决:

    1.在GRUB引导的时候按e进入编辑模式,linux16那一行的ro 修改为rw rd.break

    2.ctrl+x执行

    3.进入单用户模式后修改根路径,将引子程序拷进来

    chroot /sysroot
    
    cp /etc/passwd- /etc/passwd

    4.因为拷贝进来文件的安全上下文和当亲目录不匹配,那么我们需要关闭selinux

    vim /etc/sysconfig/selinux
    
    selinux = disabled

    5.两次exit退出现在的根并且重启主机,恢复正常

  • 相关阅读:
    Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
    POJ 3281 Dining 最大流 Dinic算法
    POJ 2441 Arrange the BUlls 状压DP
    URAL 1152 Faise Mirrors 状压DP 简单题
    URAL 1039 Anniversary Party 树形DP 水题
    URAL 1018 Binary Apple Tree 树形DP 好题 经典
    pytorch中的forward前向传播机制
    .data()与.detach()的区别
    Argparse模块
    pytorch代码调试工具
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/12551075.html
Copyright © 2011-2022 走看看