一起疑点重重的案子告破


今天一早就遇上个难题: 某客户系统无法发送邮件了. 同事追踪了一下日志, 发现是邮件模板渲染程序无权限写某附件的临时文件. 但奇怪的是此文件就是渲染程序自己生成的, 通常能生成文件自然也可以改写. 进一步调查后, 我发现出问题的文件夹是个 NFS 共享文件夹, 而 NFS 服务器端设置了 all_squash, 这解释了文件生成后所有者被更换的原因.

另外一个问题就文件属性, 因为 all_squash 是一直生效的, 所以不可能是问题的直接原因. 文件属性是 rwr-r-, 因此被更换了所有权后原用户就无法再更改了. 而新文件的属性是由 umask 控制的. 再查看一下 umask, 果然, 应该是 002, 看到的却是 022. 这就导致生成的文件属性是 rwr-r- 而不是期待的 rwrwr-.

那么下一步是修改 umask, 但涉及到是将”umask 002″ 放到 .bash_profile 还是 .bashrc 的问题. 原来 .bash_profile 是在登录时生效一次, 而 .bashrc 则是在每个 bash 会话开启时生效. 也就是说, 当我利用 ssh 或者 bash -l 时 .bash_profile 会生效, 而登录后打开一个新的 bash 会话则会调用到 .bashrc. 有趣的是使用 bash -c “command” 运行时, 因为不是互动的会话, 所以 .bash_profile 和 .bashrc 都不会生效. 搞清楚这些区别, 看到 unicorn 服务是以 bash -l 的方式启动的(其实有点奇怪), 因此我把 umask 放在 .bash_profile 里.

修改了 umask 之后, 再重启了 unicorn 服务, 问题解决. 😛

但是是谁修改了 umask 呢? 嫌疑犯依旧在逃…


5 responses to “一起疑点重重的案子告破”

  1. 哥,因为以后的实验要涉及到生物信息分析,分析是在Linux系统里运行的,貌似那台主机装的是Ubantu。所以我现在想学习一下这个Linux系统。您有什么好的建议和推荐的书籍或者网站不。
    PS: 我是Linux菜鸟

    • 好久不见. 学习Linux的最好方法就是用它, 你在Windows里能做的每一件事, 尝试在Linux里完成, 例如简单的联网, 编辑文档, 共享文件, 打印等等. 没有可以用的电脑的话, 可以先装个 VirtualBox 虚拟机练习. 先会用, 再深入学习.

  2. 原来早就回复了哈,我还一直在我的hotmail里面等哥的回复来。刚刚在前面给哥留了个言,基本上也是问这个问题。我现在确定我们这里的主机用的系统是red hat了。
    我有个笔记本现在不是很经常用,主要是用来看看电影,还有很少的时间用它来读读文献。所以,春节假期回家的时候我把系统重装了一遍,顺便把以前硬盘的分区合并里一下,120G的盘(实际没这么大,110G左右)分成了两个区,现在C盘安装的是win7的系统(32位),我想装一个Linux系统在D盘,不知道那个系统好一些,求哥哥推荐。

    PS: 祝笑笑小同志健康快乐