- 论坛徽章:
- 0
|
如果你误执行了以下的命令:chmod 777 .* 或chown -R *等等,在不重装系统或从磁带备份中恢复的情况下,如何快速地把系统文件等恢复到初始安装默认状态?
我们知道通过pkgadd安装(推荐用pkgadd安装所有package)的所有文件在/var/sadm/install/contents文件里都有详细记录。以下方法的中心就是用此文件里的记录来恢复其状态。假设你现在的id是root.
#cd /var/sadm/install
####把contents文件里所有不包含=(等号)也不包含/devices的行重定向到一个新的文件contents.new
# egrep -v "=|devices" contents > contents.new
####如果这个命令出错且原因是“to many fields record number XXX", 那么你要用vi手工编辑contents.new,输入:XXX以删除所有的SUNW行。我们只需要关心1,4,5,6列,其结果存到contents.new2
#awk '{print $1,$4,$5,$6}' contents.new > contents.new2
####把contents.new2中的所有空格用:来替代,把结果存到contents.new
#sed 's/ /:/g/' contents.new2 > contents.new
####用vi编辑如下的脚本文件restore_perms
#vi restore_perms
#########################################################
# Begin
#!/bin/sh
for FILE in `cat /var/sadm/install/contents.new`
do
FNAME=`echo $FILE | awk -F: '{print $1}'`
PERM=`echo $FILE | awk -F: '{print $2}'`
OWNR=`echo $FILE | awk -F: '{print $3}'`
GRP=`echo $FILE | awk -F: '{print $4}'`
echo "chown $OWNR:$GRP $FNAME"
chown $OWNR:$GRP $FNAME
echo "chmod $PERM $FNAME"
chmod $PERM $FNAME
done
rm contents.new
# End
#########################################################
####赋予restore_perms脚本可读可执行权限
#chmod 555 restore_perms
####执行此脚本
#./restore_perms
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/40653/showart_367397.html |
|