为ruby脚本创建apparmor配置文件

时间:2014-09-30 12:07:17

标签: ubuntu-14.04 apparmor

我正在尝试为名为test.rb的ruby文件创建apparmor配置文件并将该文件放在/ root下,test.rb包含:

#!/usr/bin/env ruby
`mkdir demo`

我通过以下方式创建了apparmor配置文件:

aa-genprof test.rb

上面的命令成功为该test.rb创建了apparmor配置文件,现在我希望这个test.rb文件不应该在/ root目录中创建除读访问之外的任何内容。所以我在test.rb文件的apparmor配置文件中进行了以下更改:

 Last Modified: Mon Sep 29 06:59:34 2014
#include <tunables/global>

/root/test.rb {
  #include <abstractions/base>

  /root/test.rb mr,
  /root/ r,
}

现在我按照以下方式重新启动并重新加载apparmor:

sudo service apparmor restart

所以我假设当我运行我的test.rb不应该在/ root目录下创建任何目录,但是当我像这样运行这个文件时:

ruby test.rb

在/ root

中创建演示目录
ls /root
demo

我不明白为什么会产生这种行为......

1 个答案:

答案 0 :(得分:2)

当您通过ruby test.rb运行程序时,AppArmor未将配置文件附加到进程。您运行了/usr/bin/ruby,而不是/root/test.rb

修复很简单:

chmod 755 /root/test.rb
/root/test.rb

由于