1.atexit回调函数
atexit函数它的作用是在它所在的程序结束后,回调在其内部注册的函数,但它的回调顺序有是怎样的呢?
我先注册了三个
由此可见,它的回调顺序和栈类似,先注册后回调
有些人说atexit的注册函数有限制(一般为32个),我在Linux环境下试试
在Linux centos6.5 的环境下atexit中的注册函数是没有限制
2.文件权限
Linux文件权限最后的t表示文件粘滞位,粘滞位最常用是应用于目录。当目录被设置粘滞位后,路径下的文件只有文 件的owner,或者root 才能够重命名、删 除文件。如果没有粘滞位,任何用户,不 管是不是owner,只要有路径的写/执行权 限就可以重命名、删除文件。
如何设置以上特殊权限:
setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx
或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:
suid guid stick bit
1 1 1
所以:
suid的二进制串为:100,换算十进制为:4
guid的二进制串为:010,换算十进制:2
stick bit 二进制串:001,换算十进制:1
于是也可以这样设:
setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx
最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限.
实例:(1)创建一个root权限目录 并加入t权限
setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx
或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:
suid guid stick bit
1 1 1
所以:
suid的二进制串为:100,换算十进制为:4
guid的二进制串为:010,换算十进制:2
stick bit 二进制串:001,换算十进制:1
于是也可以这样设:
setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx
最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限.
(2) 退出root 进行删除目录
(3)提示无权限