禁止下载专有软件,但允许执行

禁止下载专有软件,但允许执行

我正在运行一个服务器上的专有软件,我的用户可以通过 SSH 执行这些软件。但是,我想禁止使用 SSH 从我的服务器下载该软件(例如包含可执行文件的目录等)。

这怎么可能?有可能吗?如果不可能,是否有某种字节码保护机制,就像游戏对许可证密钥所做的那样?

答案1

您需要使用该sudo机制。

  1. 创建拥有软件“foo-user”的特殊用户
  2. 安装软件并将文件所有者更改为“foo-user”,删除组和其他用户对这些文件的权限(chmod go-rwx
  3. /etc/sudoers添加能够运行该软件的用户:
    用户(全部)=(foo-用户)/path/to/software
  4. 指导用户如何使用sudo -u foo-user /path/to/software它,或者.desktop为他们准备文件。

缺点是用户foo-user需要能够访问user主目录才能user编辑自己的文件。如果有多个用户需要访问软件,这可能会成为一个问题。

此外,如果相关软件具有任何高级文件管理功能,则可以使用它将其自己的文件从受限文件夹中复制出来。umask应该可以阻止它,但编辑文件会更加麻烦。

对于 GUI 应用程序,您可以使用kdesudogksudo

答案2

在 chroot jail 中运行 shell,并使软件(在 jail 外运行)可通过端口/套接字/其他方式访问。

答案3

通过代理运行软件,代理充当用户和程序之间的输入/输出中介。这样,用户就无法访问字节码,因此无法复制它(如用户 unknown 的回答中所述)。

答案4

外壳对你有用吗?为用户设置受限 shell,以便他们只能执行你想要的软件,并禁用一切包括普通的 shell 命令和 sftp/scp。此外,所有被禁止的命令都将被记录,因此如果有人试图复制某些内容,他/她很快就会被抓住。

相关内容