mar9212 发表于 2007-08-25 10:13

Solaris下如何恢复文件权限/属主/组到默认状态


如果你误执行了以下的命令: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
页: [1]
查看完整版本: Solaris下如何恢复文件权限/属主/组到默认状态