有時(shí)候手賤不小心給chmod -R 777 / 了,這下系統(tǒng)就癱瘓了~怎么辦呢?? 往下看吧
首先你必須準(zhǔn)備一臺(tái)和故障機(jī)器一樣的系統(tǒng),比如可以在虛擬機(jī)中安裝一套一樣版本的linux
在新系統(tǒng)中創(chuàng)建一個(gè) waynerQiu.c 程序,內(nèi)容如下
#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, 2);
exit(0);
}
然后編譯該文件,并導(dǎo)出權(quán)限信息
#編譯
gcc waynerQiu.c -o waynerQiu.com
#執(zhí)行并導(dǎo)出相關(guān)目錄的權(quán)限
./waynerQiu.com / >> waynerQiu.txt
將導(dǎo)出的文件copy至故障機(jī)器并執(zhí)行下面的腳本
#!/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
#echo "chmod $PERM $FILE"
done
echo "change perm finished! "
可以將腳本保存為一個(gè)shell文件如:mygod.sh
然后執(zhí)行
mygod.sh waynerQiu.txt
等程序跑完之后,重新啟動(dòng)系統(tǒng),看看是不是已經(jīng)恢復(fù)了?