我是否可以允许ruby脚本读取对文件的访问权限,但不允许用户调用脚本?

时间:2011-12-01 08:20:06

标签: ruby linux permissions required

我在Linux系统上安装了一个ruby脚本(script.rb),该系统“需要”另一个文件(required.rb)和一堆自定义方法。

我不想让我的用户阅读required.rb。

如果我删除了读取访问权限(例如chmod 600 required.rb),然后尝试以用户身份运行我的脚本,则会收到以下错误:

no such file to load -- /etc/required.rb

是否允许ruby读取此必需文件但是阻止用户看到它?

1 个答案:

答案 0 :(得分:2)

进程是否可以读取文件由所述进程的有效UID控制。如果更改了文件的权限,则用户的进程(包括ruby进程)无法读取它。

一种解决方案是让你的ruby解释器由其他人拥有,然后使其成为setuid,但这将使它能够读取这些“受保护”文件,无论它运行的是什么脚本。总之,不要这样做。

另一种选择是将数据保存在文件系统以外的其他位置,然后使用单独的身份验证系统。

在我看来,正确的方法是在脚本中使用所有方法,但使用某种AAA线束限制访问您不希望用户运行的方法。然后,您可以使用任何AAA后端来验证您的用户(LDAP,密码文件等)。