专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
程序员的那些事  ·  突发!高通拟收购英特尔;大连思科再裁员,补偿 ... ·  22 小时前  
OSC开源社区  ·  全球5万衍生模型,阿里通义造出开源雨林 ·  昨天  
赛尔实验室  ·  哈工大发布“珠算”代码大模型 ·  4 天前  
程序猿  ·  2024 互联网公司工作时长排行榜 ·  1 周前  
OSC开源社区  ·  帆软,再攀「一座山」 ·  1 周前  
51好读  ›  专栏  ›  程序猿

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

程序猿  · 公众号  · 程序员  · 2017-01-06 20:30

正文

来自:wb84451208 的BLOG

链接:http://ithelp.blog.51cto.com/4501237/1101132/(点击尾部阅读原文前往)


误执行了命令: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`
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.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位权限的文件需要手动修改



●本文编号2169,以后想阅读这篇文章直接输入2169即可。

●本文分类“Linux,搜索分类名可以获得相关文章。

●输入m可以获取到文章目录

本文内容的相关公众号推荐

Linux学习

Java编程


更多推荐15个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。