运维开发网

权限 – 运行Incrond但不执行命令CentOS 6.4

运维开发网 https://www.qedev.com 2020-05-09 08:09 出处:网络 作者:运维开发网整理
我在这里从StackOverflow复制了这个问题…… 我已经从EPEL存储库安装了incron(0.5.9)(在你问之前;是的,我也尝试下载源代码并在本地编译(0.5.10);相同的结果)并试图在我的CentOS 6.4上设置一个进程(最终)我在我的本
我在这里从StackOverflow复制了这个问题……

我已经从EPEL存储库安装了incron(0.5.9)(在你问之前;是的,我也尝试下载源代码并在本地编译(0.5.10);相同的结果)并试图在我的CentOS 6.4上设置一个进程(最终)我在我的本地Ubuntu 12.04机器上成功制作原型的虚拟盒子(包括incron的过程在Ubuntu下完美运行):

预先提供的一些信息:

> SELinux设置为PERMISSIVE(我也试过DISABLED,它似乎没有任何区别!)

>我已经使用visudo向NOPASSWD添加了我的脚本并调用了可执行文件以解决一些权限问题…

>我试图在http://blog.siphos.be/2013/05/a-seLinux-policy-for-incron-finishing-up/这里描述的应用政策,但我一直在努力

libsepol.policydb_read:policydb幻数0x696c6f70与预期幻数0xf97cff8c或0xf97cff8d不匹配

semodule_package:从incron.te读取策略模块时出错

当我尝试使用semodule_package时

>我试图在脚本本身和预脚本caller.sh中定义环境,通过这样做我能够env> /tmp/envfile.txt表示脚本正在sudo env的克隆中运行(正如我的意图)但是我仍然没有得到我的脚本的输出,无论是它应该对它的输入文件做的工作还是其中的任何一个日志…

>它必须是权限吗? (我距离在根文件系统上执行chmod -r 777还有一天的时间;))

>在Ubuntu 12.04下,执行sudo incrotab -e并输入/ tmp / IN_CREATE,IN_NO_LOOP env>的简单操作. /home/username/envfile.txt显示incron已经在root / sudo环境中运行,正如incron文档所暗示的那样.

>这是所有与SELinux相关的东西,还是CentOS中还有其他东西让这么难?

如果我使用sudo /path/to/my/script.sh参数从命令行调用我的脚本,它就像一个魅力.

或者就此而言,如果我调用caller.sh它一切正常,但是当caller.sh由incrond调用时,它甚至不能env> / dev / pts / 0来自它. (虽然我可以env> /tmp/envfile.txt

sudo service incrond status验证incrond正在运行. root和myusername被添加到/etc/incron.allow,/etc/incron.deny为空.

以下是不推荐使用的,请参阅上面的要点,但请阅读背景故事和扩展……

我对root的incrotab是:

/path/to/dropfolder/ IN_CLOSE_WRITE sudo /path/to/my/script.sh $@/$#

/ path / to / dropfolder /中的事件导致NOTHING有用.日志在/ var / log / cron中生成,没有消息,文件夹中的文件不会发生任何操作.

所以我研究过:有人建议cron在最小的环境中运行,并且要执行复杂的命令/脚本,你可能必须执行.bashrc和/或在cron命令的开头导出你的PATH.

编辑:文档表明从系统表或root运行的incron从其主机环境中获取env,因此只有非root用户执行的incron应该需要任何类型的env或PATH fiddling

所以… incrontab for root:

/path/to/dropfolder IN_CLOSE_WRITE . /home/myusername/.bashrc; export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin; sudo /path/to/my/script.sh $@/$#"

没有骰子……试过&&代替 ; =没有骰子.如果你能想到上面的变化,我可能已经尝试过了……

所以,让我们尝试一点redecond -R /usr/sbin / incrond / etc / incron *动作!

嗯,也没有变化.

service incrond stop然后是service incrond start然后service incrond restart … nope,nope和nope.

严厉的措施:yum删除incron和yum install incron,chkconfig incrond on然后好的措施sudo重启!

怎么样的’触摸./autorelabel和重启?不!

没有.

我甚至没有得到任何来自/ tmp / IN_ALL_EVENTS echo boo> > /home/myusername/boofile.txt,因此我甚至无法做一个env> envfile.txt检查incron是否在稀疏环境中运行…(参见上面的注释)

然而:服务incrond状态yield incrond(pid xxxx)正在运行…

进一步检查/ var / log / cron产生如下结果:8月14日15:05:30 hostname incrond [1584]

0

精彩评论

暂无评论...
验证码 换一张
取 消