有程序创建的目录,有时会发生权限为“dr----x--t”的情形,请教各位可能是什么原因引起的?

seai 2011-02-15 11:30:31
<?php
mkdir($fst_dir.date('Ym'),0777);
?>

目录是由类似上面的语句创建的。绝大多数情况下,建立好的目录都不会有问题,可是有时会发生文件不能写入的情况,查看目录权限,发现权限为“dr----x--t”,很长时间了找不到原因,请各位帮忙分析一下,什么情况可能导致目录权限改变为“dr----x--t”?
...全文
977 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
seai 2011-02-15
  • 打赏
  • 举报
回复
楼上提供了一个很好的思路--使用监控的的方式,监测文件夹权限被谁在什么时候修改。

我想补充问一下,tripwire能达到这样的目标吗?

另外也查看了inotify相关的资料,问题似乎也是在于,监控所能反馈的资料不够:

struct inotify_event
{
int wd; /* Watch descriptor. *//* 队列 */
uint32_t mask; /* Watch mask. */
uint32_t cookie; /* Cookie to synchronize two events. */
uint32_t len; /* Length (including NULs) of name. */
char name __flexarr; /* name. *//* 被监控的文件、目录名称 */
}

完成没有我需要的:修改者、时间等重要信息。
steptodream 2011-02-15
  • 打赏
  • 举报
回复
前提是先导入tripwire
steptodream 2011-02-15
  • 打赏
  • 举报
回复
tripwire 可以检测文件是否被修改 被谁修改
seai 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 justkk 的回复:]

如果只用你提到的方式创建目录,并且用户文件掩码正确,感觉不会有问题
你可以用单一功能试验一下
简单的创建目录,执行10000次
[/Quote]

我能保证的是,在我的网站中是这样给用户创建目录的。但服务器是由他人管理。是否存在其他方式去改变目录权限真不好说,不过管理员人为把目录改成“t”这样的标记的可能性为0。现在急需想把办法查明什么情况导致的目录权限错误。
justkk 2011-02-15
  • 打赏
  • 举报
回复
如果只用你提到的方式创建目录,并且用户文件掩码正确,感觉不会有问题
你可以用单一功能试验一下
简单的创建目录,执行10000次
seai 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justkk 的回复:]

看看用户的文件创建掩码umask
[/Quote]

掩码没问题,有问题的话,也不会只在很少数的时候出现这个情况,其他大部分时候创建的目录都正常吧?
justkk 2011-02-15
  • 打赏
  • 举报
回复
看看用户的文件创建掩码umask
steptodream 2011-02-15
  • 打赏
  • 举报
回复
可是你的问题却写着0777
seai 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 justkk 的回复:]

严重怀疑部分程序有错误,指定的权限是777,而不是0777
这样十进制的777对应八进制的1411
1411对应的符号权限就是dr----x--t
[/Quote]

分析的很有道理,我查下看看。
justkk 2011-02-15
  • 打赏
  • 举报
回复 1
严重怀疑部分程序有错误,指定的权限是777,而不是0777
这样十进制的777对应八进制的1411
1411对应的符号权限就是dr----x--t

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧