我正在尝试为名为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
我不明白为什么会产生这种行为......
答案 0 :(得分:2)
当您通过ruby test.rb
运行程序时,AppArmor未将配置文件附加到进程。您运行了/usr/bin/ruby
,而不是/root/test.rb
。
修复很简单:
chmod 755 /root/test.rb
/root/test.rb
由于