请[1]考虑此命令:sudo incrontab ~/incron-config
其中~/incron-config
包含:
/home/zetah/doc IN_CREATE,IN_MOVED_TO /home/zetah/scripts/do_something.sh $@/$#
和do_something.sh
由[2]组成:
#! /bin/bash
python /home/zetah/scripts/py_something.py "$1"
Python脚本访问一些在线服务并生成3个新文件。它们归root
所有
为什么这样,我怎么能改变这种行为。我想成为这些产品文件的所有者
由于
[1]发表在问问Ubuntu之前 - 想在这里尝试我的机会,会在任何结果中互相连接
[2]在Bash脚本中包装Python脚本似乎很蹩脚,但我不能这样做
答案 0 :(得分:0)
创建的文件由root拥有,可能是因为你以root身份运行incrontab,然后python通过bash从它继承
您可以从您自己的用户运行incrontab,只需在/etc/incron.allow中添加您的用户名(以允许您使用incron),然后使用您的帐户“incrontab -e”重新创建incron表(不要忘了从root中删除条目
第二个选项(如果你不能修改incron.allow)是用你的用户名调用python。 在bash脚本中,修改:
python /home/zetah/scripts/py_something.py "$1"
in
su <username> -c"python /home/zetah/scripts/py_something.py '$1'"
希望有所帮助
ericc