有谁知道一种方法来防止用户运行某些命令? 例如,我想阻止用户从服务器复制数据,而不通过我们的SVN回购。 (svn输出vs scp)
有任何想法吗?
在Linux上(Mac OS是类Unix系统),可以使用基于“所有者用户”,“拥有组用户”和“其他”扩展标准权限的acl。 因此,您可以创build一个名为“testing人员”的额外组,禁用您要排除的二进制执行位。
http://www.techrepublic.com/blog/mac/introduction-to-os-x-access-control-lists-acls/1048
当然,这并不妨碍用户在主目录上安装一些软件。
这是否可以防止SCP,同时仍然允许SSH访问? 你有一个可能会导致有用的讨论
HTH
您不能(可靠地)阻止用户启动特定的命令列表。
他们会以某种方式绕过你的限制。 (不要费心去弄清楚 – 你永远不会想到所有的可能性,因为它是无限的。)
您可以限制用户只能运行特定的命令列表。 (用-r标志调用bash(或者将它硬链接到名称rbash ),并参考bash联机帮助页的“RESTRICTED SHELL”部分。
这对于实际使用来说是站不住脚的 – 就像要求用户input戴着拳击手套一样。
如果他们的账户被瘫痪了,你可能会迫使他们使用远程触发的包pipe理工具,而不是让他们访问shell。
另一个(更可行的)选项是使部署区域只能由特定的UID写入,并强制用户使用sudo运行部署脚本来部署对其的更改。