Oracle或grid软件的目录权限有些因为人为操作弄乱了,不清楚每个文件具体的权限,这时可以通过本文的方法尝试恢复。首先找1个权限对的环境,导出权限到文件里,然后将文件导入到需要恢复的环境上。
下面的测试只是在bin文件夹下做测试,其他操作类似于此。
1.生成1个测试环境
[root@OEL63 grid]# cp -R bin/ bin-bak/
[root@OEL63 grid]# chown -R oracle:dba bin-bak/
[root@OEL63 grid]# chmod -R 755 bin-bak/
[root@OEL63 bin]# ll oracle
-rwsr-s--x 1 grid oinstall 203972117 Jun 18 09:27 oracle
[root@OEL63 bin]# cd ../bin-bak/
[root@OEL63 bin-bak]# ll oracle
-rwxr-xr-x 1 oracle dba 203972117 Jun 25 16:22 oracle
2.方法1:
[root@OEL63 bin]# getfacl * > privs.log[root@OEL63 bin]# cp privs.log ../bin-bak/
[root@OEL63 bin]# cd ../bin-bak/
[root@OEL63 bin-bak]# setfacl --restore=privs.log
验证:
[root@OEL63 bin-bak]# ll oracle
-rwsr-s--x 1 grid oinstall 203972117 Jun 25 16:22 oracle
3.方法2:
[root@OEL63 grid]# chmod -R 555 bin-bak/[root@OEL63 grid]# chown -R oracle:dba bin-bak/
导出权限文件和前面方法一样。
[root@OEL63 bin]# getfacl * > privs.log
[root@OEL63 bin]# cp privs.log ../bin-bak/
[root@OEL63 grid]# cd bin-bak/
[root@OEL63 bin-bak]# ll oracle
-r-xr-xr-x 1 oracle dba 203972117 Jun 25 16:22 oracle
导入权限
[root@OEL63 bin-bak]# cat privs.log |setfacl --set-file=- *
验证
[root@OEL63 bin-bak]# ll oracle
-rwxr-xr-x 1 oracle dba 203972117 Jun 25 16:22 oracle
如上,方法2有缺陷,传递不了s权限。
关于权限“s",下一篇有简单说明:http://blog.csdn.net/bamuta/article/details/34453057