如何通过perl实现,恢复系统文件默认权限?



QUOTE:
原帖由 Ecore 于 2007-8-22 11:33 发表
flw在北京不??说成啥也得取吃饭啊??

在北京。欢迎请我吃饭。
基本上明白了.

(stat)[2]这个用法不太明白.我知道perl中stat函数的第二个参数是文件权限..
()[]这个用法,哪里可以查到资料?


QUOTE:
原帖由 Ecore 于 2007-8-22 12:07 发表
基本上明白了.

(stat)[2]这个用法不太明白.我知道perl中stat函数的第二个参数是文件权限..
()[]这个用法,哪里可以查到资料?

看小骆驼~
精华区第一篇就是。
做了实验,会丢失

[Copy to clipboard] [ - ]
CODE:
linux-3tze:/home/chenlei # touch aa
linux-3tze:/home/chenlei # ls
aa
linux-3tze:/home/chenlei # ls -l
total 0
-rw-r--r-- 1 root root 0 Aug 22 11:45 aa
linux-3tze:/home/chenlei # chmod a+s aa
linux-3tze:/home/chenlei # ls -l
total 0
-rwSr-Sr-- 1 root root 0 Aug 22 11:45 aa
linux-3tze:/home/chenlei # chmod 777 aa
linux-3tze:/home/chenlei # ls -l
total 0
-rwxrwxrwx 1 root root 0 Aug 22 11:45 aa
linux-3tze:/home/chenlei #

[root@voole-cmsadmin-01 tmp]# ls -la aa
-rwsr-xr-x  1 root root 0  8月 23 09:13 aa
[root@voole-cmsadmin-01 tmp]# chmod 777 aa
[root@voole-cmsadmin-01 tmp]# ls -la aa
-rwxrwxrwx  1 root root 0  8月 23 09:13 aa
[root@voole-cmsadmin-01 tmp]#



flw大大提供的第二段小脚本,可以解决这个问题.


[root@voole-cmsadmin-01 tmp]# chmod 4755 aa
[root@voole-cmsadmin-01 tmp]# ls -la aa
-rwsr-xr-x  1 root root 0  8月 23 09:13 aa
[root@voole-cmsadmin-01 tmp]# find ./aa | perl -lne 'printf "chmod %04o %s\n", (stat)[2]&07777, $_' > /tmp/setattrib.sh
[root@voole-cmsadmin-01 tmp]# cat /tmp/setattrib.sh
chmod 4755 ./aa
[root@voole-cmsadmin-01 tmp]# sh /tmp/setattrib.sh
[root@voole-cmsadmin-01 tmp]# ls -la aa
-rwsr-xr-x  1 root root 0  8月 23 09:13 aa
[root@voole-cmsadmin-01 tmp]#



QUOTE:
原帖由 flw 于 2007-8-22 12:12 发表

看小骆驼~
精华区第一篇就是。

我看完小骆驼书最后一章才知道,原来是切片.哈哈.

今天开始读骆驼书..