2014-12-05 36 views
0

已安装simple-graphite使用chef_gem gem在Vagrant框和VM机器上的资源都是Ubuntu。但两台机器上安装的gemspecgem文件的文件权限不同。使用chef_gem安装gems时的文件权限

/opt/chef/embedded/lib/ruby/gems/1.9.1gemsspecifications目录

流浪箱 drwxrwx--- 4 root root 4096 Dec 4 14:58 simple-graphite-2.1.0 -rw-rw---- 1 root root 1181 Dec 4 14:58 simple-graphite-2.1.0.gemspec

VM机 drwxr-xr-x 4 root root 4096 Dec 4 15:55 simple-graphite-2.1.0 -rw-r--r-- 1 root root 1181 Dec 4 15:55 simple-graphite-2.1.0.gemspec

从流浪箱 vagrant:/opt/chef/embedded/lib/ruby/gems/1.9.1$ getfacl specifications/ file: specifications/ owner: root group: root user::rwx group::r-x other::r-x vagrant:/opt/chef/embedded/lib/ruby/gems/1.9.1$ getfacl gems file: gems owner: root group: root user::rwx group::r-x other::r-x

是否有一个原因或导致在访问权限others上流浪箱的区别设置。 chef_gem在安装gem时似乎没有设置权限。任何指针都非常感谢。

+0

使用vagrant厨师是通过sudo运行的,在你的vm上,你可能直接以root身份运行它,最终可能会以不同的UMASK文件创建。 (这只是一个猜测,没有关于图像的更多信息,这听起来很难) – Tensibai 2014-12-05 15:19:35

+0

谢谢Tensibai。我使用''sudo''在两台机器上检查了运行的chef-client,并按照前面所述设置权限。 – 2014-12-05 15:38:33

+0

因此,检查两台机器上是否有不同的umask,例如'grep -ri umask/etc/*'应该是一个开始。我真的认为差异在操作系统级别比在厨师(chef_gem没有设置gems文件的权限,所以它可能是权限继承的操作系统行为)。 – Tensibai 2014-12-05 15:42:03

回答

0

厨师正在运行gem install,所以除非在umask中有变化,否则这可能不是您可以控制的。

+0

谢谢@coreranger。我们在'chef-client'运行期间使用'knife.rb',它默认包含一个'File.umask(0007)',这导致了权限的差异。一旦将'File.umask'设置为'0003',所有用户都可以获得'读取'权限。我们可以在'knife.rb'而不是'0007'中设置默认值为'0003',这样'chef'的所有用户都不会面临这个问题。 – 2014-12-07 13:14:16