我想向客户演示我的 python 脚本如何在我的服务器上运行,我将授予他访问权限。另外,我不希望他能够看到python脚本的代码,只能运行它。是否可以通过 Linux 来实现?也许通过创建一个额外的用户?
答案1
因此,一般来说,此类问题的答案是“不,不容易”,但对于您的具体情况,我认为您实际上可能能够找到解决方案。
假设您的客户端将以 user 身份登录到您的服务器alice
。创建另一个bob
拥有该脚本的用户,并使其只能由用户读取/执行bob
:
# chown bob /path/to/myscript
# chmod 700 /path/to/myscript
现在,创建一项sudo
配置,允许alice
以 user 身份运行该脚本bob
。例如,/etc/sudoers.d/alice
使用以下配置创建:
alice ALL=(bob) NOPASSWD:/path/to/myscript
现在:
- 您的客户端以
alice
.alice
无法读取或执行给定的脚本。 alice
可以通过运行来运行脚本sudo -u bob /path/to/myscript
。这将以用户身份运行脚本bob
。
此解决方案具有一定的局限性:例如,由于脚本将以与调用者不同的用户身份运行,因此在调用者的主目录中创建文件时可能会遇到问题。