使用户无法读取ruby文件

使用户无法读取ruby文件,ruby,ubuntu,Ruby,Ubuntu,我可以让用户无法读取ruby文件(例如script.rb)吗 该文件位于Ubuntu(脱机)计算机上。用户将使用本地Sinatra应用程序,该应用程序将使用一些ruby文件。我不想让用户看到其中一些文件中的代码 我怎么做 编辑: 我是否可以将项目设置为用户可以启动应用程序,但无法访问其中的特定文件 谢谢正如我在评论中所说的,隐藏ruby源文件的内容几乎是不可能的,许多人用许多不同的方法尝试了这一点,但反向工程几乎总是微不足道的。有一些“建议”可以让你的代码隐藏起来,但它们永远不会真正起作用,这里

我可以让用户无法读取ruby文件(例如script.rb)吗

该文件位于Ubuntu(脱机)计算机上。用户将使用本地Sinatra应用程序,该应用程序将使用一些ruby文件。我不想让用户看到其中一些文件中的代码

我怎么做

编辑: 我是否可以将项目设置为用户可以启动应用程序,但无法访问其中的特定文件


谢谢

正如我在评论中所说的,隐藏ruby源文件的内容几乎是不可能的,许多人用许多不同的方法尝试了这一点,但反向工程几乎总是微不足道的。有一些“建议”可以让你的代码隐藏起来,但它们永远不会真正起作用,这里有一些

  • 模糊处理-使用ProGuard for Java(大多数主要语言都有)等工具使代码可执行但不可读的过程会试图使代码变得混乱,并且在保持执行速度的同时尽可能不可读。通常这包括重命名变量、使用奇怪的字符以及在复杂结构中隐藏、移动或包装函数

  • 打包解释器-您可以使用解释器和标准库这样的工具将脚本打包到可执行文件中,但是只要有一点点逆向工程经验的人都可以在很短的时间内轻松地删除源代码

  • 编写一个自定义的解释器-现在我们正在努力使它变得更难。编写自定义解释器将允许您将脚本编译为“字节码”,然后可以执行。当涉及到使用其他代码库时,这当然是一个非常耗时、昂贵且不兼容的解决方案

  • 用C编写大部分代码,然后通过扩展调用它——同样,这主要解决了问题,但问题仍然存在。这将需要更多的时间,但是任何人都可以轻松地分离你加载的C库的机器代码,bob是你的叔叔,他们有源代码

  • 还有很多选择——这不是一个全面的列表,我可能缺少一些想法或建议


  • <> P>既然使代码不可读是一个难题,最好的解决方案可能是考虑与您的代码提供许可协议。这样,有人读取或修改源文件,您可以将他们带到法庭寻求法律解决

    将代码及其功能提取到外部API。然后将其作为服务提供。这样,您就不必向您的“用户”公开源代码。

    这与您正在搜索的内容相符吗?

    chmod yourfile.rb 711

    不可以。你不能,甚至不用麻烦尝试。你是机器管理员吗?设置没有管理员权限的用户是否可行?如果是这样,我的答案可以通过使用帐户管理来实现——允许用户使用HTTP接口,但不能看到运行它的文件系统。当然,这也会限制他们在出现问题时支持机器的能力。我认为@jigz的答案最适合我的情况。如果我的问题没有很好地回答,很抱歉。外部API可以在同一台机器上吗(机器需要脱机)?如果是这样,用户就不能访问它了吗?我相信是的。谢谢:)