Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否可以允许ruby脚本读取文件,但不允许调用脚本的用户?_Ruby_Linux_Permissions_Required - Fatal编程技术网

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

我是否可以允许ruby脚本读取文件,但不允许调用脚本的用户?,ruby,linux,permissions,required,Ruby,Linux,Permissions,Required,我已经在Linux系统上安装了一个ruby脚本(script.rb),它“需要”另一个文件(required.rb)和一系列自定义方法 我不想让我的用户阅读required.rb 如果删除读取访问权限(即chmod 600 required.rb),然后尝试以用户身份运行脚本,则会出现以下错误: 没有要加载的文件--/etc/required.rb 是否允许ruby读取所需文件,但阻止用户看到它?进程是否可以读取文件取决于所述进程的有效UID。如果更改文件的权限,则用户的进程(包括ruby进程)

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

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

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

没有要加载的文件--/etc/required.rb


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

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

一种解决方案是让您的ruby解释器归其他人所有,然后将其设为setuid,但这将使它能够读取这些“受保护”的文件,而不管它运行的是什么脚本。简而言之,不要这样做

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


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

属于网络。这既是一个编程问题,也是一个管理问题。我担心的是,我不仅不希望用户运行该方法,我甚至不希望他们能够看到该方法,因为我担心他们可能只是复制代码并运行。我在考虑将脚本的UID设置为特权用户,然后使用sudo允许用户运行它。setuid位对脚本不起作用(安全隐患)。你的要求有点奇怪。你认为你的架构需要更多的思考吗?