徐小玉的博客。
分类:
2011-06-02 14:28:47
http://bdxnote.blog.163.com/blog/static/84442352008317113915957/
一、文件权限测试
UNIX和LINUX系统中有用户ID和组ID,Windows系统中有用户名和组名,它们的含义分别相同;在UNIX/LINUX系统中,用户ID和组ID都有两种:有效ID和实际ID;登录系统时所使用的ID是实际ID,而有效ID则是当前执行进程的ID,可以在执行程序期间改变;如果Perl5程序要复位用户ID和组ID,那么新的用户ID和组ID就会成为进程的有效ID;有效ID常用于对进程提供更多文件访问权限,但是每个文件的有效ID和实际ID有不同的权限;
下面是一些文件权限操作符:
操作符 描述
-r 是否可读
-w 是否可写
-x 是否可执行
-o 是否拥有该文件
-R 是否只有“真正的用户”可读
-W 是否只有“真正的用户”可写
-X 是否只有“真正的用户”可执行
-O 是否只有“真正的用户”拥有该文件
注:“真正的用户”是指登录时指定的UserID(实际ID),与当前进程用户ID(有效ID)相对;命令suid可以改变有效用户ID;
二、文件粘贴位(sticky)
有三个操作符来判断文件的粘贴位;
操作符 描述
-u 是否设置了setuid位
-g 是否设置了setgid位
-k 是否设置了sticky(粘贴)位
三、文件类型判断操作符
操作符 描述
-f 是否是普通文件
-d 是否是目录文件
-l 是否是符号连接文件
-T 是否是文本文件
-B 是否是二进制文件
-b 是否是块设备
-c 是否是字符设备
四、文件的存在性和长度测试
操作符 描述
-e 文件是否存在
-s 文件是否非空
-z 文件是否为空文件
五、文件修改测试
操作符 描述
-A 距上次访问多长时间
-C 距上次访问文件的inode多长时间
-M 距上次修改多长时间
六、UNIX/LINUX文件句柄类型测试
操作符 描述
-p 是否为管道
-s 是否为Socket
-t 是否表示终端