【问题标题】:Only a Set of shell script should execute a shell script只有一组 shell 脚本应该执行一个 shell 脚本
【发布时间】:2021-01-08 14:11:04
【问题描述】:

我在 /usr/bin/myapp 上有一个 shell 脚本,在 diff 文件夹中有另外 12 组脚本(比如 /opt/myapp)。我想要一个只有来自/opt/myapp 的脚本才能使用或执行/usr/bin/myapp 中的脚本的解决方案。这是为了保护/usr/bin/myapp 上的脚本,除/opt/myapp 之外的任何人都不应使用它。

也接受任何其他解决方案。提前致谢

【问题讨论】:

  • 为什么首先将脚本存储在 usr/bin 中,使用专用文件夹,为什么不使用带密码的 zip。
  • 我在 /usr/bin 中有密码
  • 那么只有你自己才能执行这些脚本。请添加更多详细信息,不确定您的目标。它可能比看起来更简单。正确的方法是使用@Martin 解决方案,但这会增加一整层可能的其他问题。
  • @Dinesh :这看起来像是一个设计缺陷。基本上,执行脚本的权限依赖于脚本的读取权限,而不是调用者的位置。也许最好将 12 个“脚本”编码为“主脚本”中的函数,而不是将它们作为单独的文件。在这种情况下,只有真正恶意的用户才能对这十二段神圣的代码动心,他需要故意破坏你的设计。

标签: linux bash shell


【解决方案1】:

标准的方法是只为特殊组授予文件夹的“执行”权限(或脚本的“读取”和“执行”权限)。

(请注意,仅限制脚本的“执行”权限是不够的,因为读取权限足以执行带有例如sh /path/to/script 的脚本。)

然后,您可以通过 sudo(使用一些 shell 包装器)或编写自己的二进制包装器来授予组权限给其他脚本。

【讨论】:

  • 感谢 Martin 提供您的输入 .. 将尝试这个并更新您的相同
猜你喜欢
  • 2013-04-18
  • 2016-09-29
  • 1970-01-01
  • 2015-07-22
  • 2012-01-11
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多