免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fenzhy
打印 上一主题 下一主题

救命!!!chmod -R 777 *后,系统什么也不能干了 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2007-02-09 13:34 |只看该作者
问题已经解决了,谢谢platinum兄提供的办法。我回家装了个同版本的系统,然后写个C程序遍历整个文件系统,再写个简单的shell就把原系统恢复了,呵呵。

论坛徽章:
0
22 [报告]
发表于 2007-02-09 15:57 |只看该作者
楼上,太强了!

论坛徽章:
0
23 [报告]
发表于 2007-02-09 20:28 |只看该作者
原帖由 fenzhy 于 2007-2-9 13:34 发表于 21楼  
问题已经解决了,谢谢platinum兄提供的办法。我回家装了个同版本的系统,然后写个C程序遍历整个文件系统,再写个简单的shell就把原系统恢复了,呵呵。

强啊,恭喜你把问题解决了
若楼主能贴出那个 C 和 shell 的代码供大家学习,这个贴子的意义就更大了 ^_^

论坛徽章:
0
24 [报告]
发表于 2007-02-10 00:39 |只看该作者
希望楼主把代码分享一下,供大家一起学习!!
在此十分感谢

论坛徽章:
0
25 [报告]
发表于 2007-02-28 09:54 |只看该作者
不好意思,公司放假,很久没来这里了,其实也挺简单的,下面贴出我的解决办法:

首先是遍历文件系统的C程序a.c:
     #include <sys/stat.h>
        #include <ftw.h>

        int list(const char *name, const struct stat *status, int type)
        {
                if(type == FTW_NS)
                        return 0;

                printf("%s 0%3o\n", name, status->st_mode & 07777);
                return 0;
        }

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

编译成a.out可执行文件,我这里不是一次遍历整个根(/)目录,因为不是所有目录的权限都需要改,比如说/proc目录、再比如为了装oracle建的/u01目录。我只扫描我认为需要修改权限的目录,如下执行:./a.out  /bin  >bin.txt … 每个目录的文件及权限保存在独立的文件中,下面是我新装as 4系统下/bin目录下的文件权限(bin.txt的部分内容):
    /bin 0755
     /bin/traceroute6 04755
     /bin/setserial 0755
     /bin/rview 0755
     /bin/touch 0755
     /bin/awk 0755
     /bin/mt 0755
     /bin/ash 0755
     … …

然后写个更改权限的简单脚本chgperm.sh:
    #!/bin/sh

    if [ $# != 1 ]
    then
            echo Usage : $0 \<filename\>
            exit
    fi

    PERMFILE=$1

    cat $PERMFILE | \
    while read LINE
    do
            FILE=`echo $LINE | awk '{print $1}'`
            PERM=`echo $LINE | awk '{print $2}'`
            chmod $PERM $FILE
    done

    echo change perm finished!

如下执行即可:
sh  chgperm.sh  bin.txt
… …

论坛徽章:
0
26 [报告]
发表于 2007-02-28 15:18 |只看该作者
不用C,用shell能不能得到这样的txt文件呢?应该也可以吧~~~

论坛徽章:
0
27 [报告]
发表于 2007-02-28 15:19 |只看该作者
主要还是斑竹的思路对了,点拨了LZ~~~研究一下~~

论坛徽章:
0
28 [报告]
发表于 2007-03-09 14:14 |只看该作者
思路对了,剩下的就是纯技术问题了。

论坛徽章:
0
29 [报告]
发表于 2007-03-10 22:20 |只看该作者
给个基本思路吧
if Diretory

论坛徽章:
0
30 [报告]
发表于 2007-03-10 22:31 |只看该作者
原帖由 fenzhy 于 2007-2-1 21:48 发表于 1楼  
今天出外调试项目,在linux操作系统的根目录下面不小心执行了如下命令:chmod -R 777 *,后果可想而知。su命令不能用、远程登陆被拒绝、连C文件都不能编译……   各位老大帮帮忙,有什么解决的办法吗?谢谢了。

难道是用root帐户做的“坏”事?777应该是UGO的RWX都被指定了!执行怎么会有问题呢?只不过这样搞过的系统如果不仔细调整回合适的访问授权,那么系统安全方面装无比脆弱
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP