• linux系统权限修复——学生误操作!


    http://sapling.me/unixlinux/linux-system-chmod.html

    linux系统权限修复

    linux系统如果执行了chmod -R 777 / 后,系统等于瘫痪。
    因为su,mount等需要s权限(4755)的命令无法使用,ssh的key和一些ssh相关的系统文件夹不能是777权限。那么,如果使用root用户改了错误的权限后,怎么恢复呢?
    思路是这样的:通过装一个相同的新系统,把系统文件的权限导出,再导入损坏系统。
    我就碰到过一次这样的情况,系统管理员误操作,改变了大部分的系统文件权限,现在把解决过程记录如下。

    1、尝试使用getfacl导出新系统的文件权限,再setfacl导入损坏系统;结果失败。

    这样看似简单可行,但是getfacl不会导出文件的Special Permissions权限。无法正确恢复su等命令的权限。
    关于Special Permissions可以看之前的文章:linux常用+经典命令:Special Permissions设置部分

    2、写个程序导出新系统文件权限再写个shell导入损坏系统。

    以下c程序make之后可以生成.out的可执行文件,使用filename.out /bin >> pe.txt 导出/bin目录下的文件权限到pe.txt文件。

    #include
    #include
    int list(const char *name, const struct stat *status, int type)
    {
    if(type == FTW_NS)
    return 0;
    printf(“”%s” 0%3o ”, name, status->st_mode & 07777);
    return 0;
    }

    int main(int argc, char *argv[])
    {
    if(argc == 1)
    ftw(“.”, list, 1);
    else
    ftw(argv[1], list, 2);
    exit(0);
    }

    将pe拷贝到损坏系统,使用如下脚本执行之:filename.sh pe.txt

    1. #!/bin/sh   
    2.   
    3. if [ $# != 1 ]  
    4. then  
    5.     echo Usage : $0   
    6.     exit  
    7. fi   
    8.   
    9. PERMFILE=$1   
    10.   
    11. cat $PERMFILE | while read LINE  
    12. do  
    13.     FILE=`echo $LINE | awk '{print $1}'`  
    14.     PERM=`echo $LINE | awk '{print $2}'`  
    15.     chmod $PERM $FILE  
    16.     #echo "chmod $PERM $FILE"  
    17. done   
    18.   
    19. echo "change perm finished! "  

    自己安装的软件的权限仍然是777,可以手动改回来或者重新安装。





    ++++++++++++++++++++++++++++++++++++++++++++++++++

    http://blog.sina.com.cn/s/blog_764cc7ef0100szui.html

    操作系统 RHEL5

     

    如果你在linux上执行了如下操作

    chmod -R 777 /  或者 chmod -R 700/

    那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不来


    为什么呢?


    因为linux中,系统的有些文件和目录权限都是严格要求的,比如说/tmp和/root里的一些重要文件的权限都是至关重要的


    一旦文件权限受到破坏,会直接影响系统的正常启动及使用。


    那么我们碰到这种情况怎么办呢?


    1、手动的将各个文件的权限进行对照还原(假如你很有时间的话)

    2、找到一台环境相同的linux机器(最好干净一些),并进行下面操作
    1> getfacl -R />systemP.bak  将这个系统中的 / ,以及 /底下所有的文件及目录权限导出到一个文件中
    2> 将systemP.bak文件想办法拷贝到被破坏的机器上
       并执行setfacl--restore=systemP.bak

    3> 重启系统

    4> 将 passwd命令和 su命令的权限进行手动恢复

    chmod u+s `which passwd`

    chmod u+s `which su`

    看看是不是完活了


    注:可能不能完全还原,但起码可以进入一个较为完整的图形界面操作,其他的报错应该就可以在这个基础上进行解决了,比如有些服务。这里就不多讲了。

     

     

    希望能给大家带来帮助。也请其他大师们进行评价!



  • 相关阅读:
    在AS/400上根据日期生成星期几
    如何删除含无效字符的文件
    在CL中使用SST或者SUBSTRING
    取网络属性
    如何在程序中获取系统ASP使用率等系统状态信息
    在CL中使用ELSE
    在CL中读一个文件
    如何在FTP命令行执行AS/400命令
    广告悬停功能
    关于Grouping, Rollup,cube,
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647363.html
Copyright © 2020-2023  润新知