zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux错误执行:chmod 777 .*或chown -R * 的补救方法

Linux错误方法执行 chmod chown 777
2023-09-27 14:21:46 时间
误执行了命令:chmod 777 .* 或chown -R * 等,导致整个操作系统权限混乱,部分命令、设备失效,这时候千万不能重启。主要想办法把每个文件的权限修改回去就可以了。

怎么才能把把系统文件等恢复到初始安装默认状态?

原理:我们通过pkgadd安装(推荐用pkgadd安装所有package)的

所有文件在/var/sadm/install/contents文件里都有详细记录。

以下方法的中心就是用此文件里的记录来恢复其状态。假设你现在的id是root.

#cd /var/sadm/install

####把contents文件里所有不包含=(等号)也不包含/devices的行重定向到一个新的文件contents.txt

# egrep -v "=|devices" contents contents.txt

1、处理contents.txt,抽取1,4,5,6列放到另外一个文本

awk {print $1,$4,$5,$6} contents.txt contents.txt2

如果这个命令出错且原因是“to many fields record number XXX",使用

vi contents.txt

:g/SUNW/d

使用:代替空格

sed s/ /:/g contents.txt2 contents.txt3

2、编写脚本,重新设置系统权限

####用vi编辑如下的脚本文件restore_perms


#vi restore_perms#########################################################  # Begin  #!/bin/bash  for FILE in `cat /var/sadm/install/contents.txt3`  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.txt3  # End  #########################################################  ####赋予restore_perms脚本执行权限  #chmod +x restore_perms  ####执行此脚本  #./restore_perms  echo /opt/CTEact/kmdb/5.10/sparcv9:0755:bin:bin| awk -F: {print $1}  

修改完成后,带s位权限的文件需要手动修改

本文作者:佚名 来源:51CTO