阻止用户运行某些命令

阻止用户运行某些命令

有人知道有什么方法可以阻止用户运行某些命令吗?例如,我想阻止用户在不经过我们的 SVN 存储库的情况下将数据复制到服务器或从服务器复制数据。(svn export vs scp)

有任何想法吗?

答案1

在 Linux 上(以及在 Mac OS 这种类 Unix 系统上),您可以使用 acl 来扩展基于“所有者用户”、“所属组用户”和“其他”的标准权限。因此,您可以创建一个名为“测试人员”的额外组,该组已禁用您想要排除的二进制文件的执行位。

http://www.techrepublic.com/blog/mac/introduction-to-os-x-access-control-lists-acls/1048

当然,这并不妨碍用户在自己的主目录中安装某些软件。

这里是否可以阻止 SCP 同时仍允许 SSH 访问?您的讨论可能也会有用

高血压

答案2

您无法(可靠地)阻止用户启动特定的命令列表。
他们会以某种方式找到绕过您的限制的方法。(不要费心去弄清楚如何做 - 您永远不会想到所有的可能性,因为它是一个无限的集合。)

限制用户仅有的能够运行特定的命令列表。(使用标志调用 bash -r(或将其硬链接到名称rbash),并参考bash 手册页。)
这对于实际使用来说是站不住脚的——这就像要求用户戴着拳击手套打字一样。
如果他们的帐户如此不堪,您不妨强迫他们使用远程触发的包管理工具,而不是授予他们 shell 访问权限。

另一个(更可行的)选项是使部署区域仅可由特定的 UID 写入,并强制用户使用sudo运行部署脚本来部署对其的更改。

相关内容