如何让开发人员的shell访问使用GIT和pipe理代码,没有别的?

在使用Webmin / Virtualmin(最新版本)的CentOS 6.5(SElinux off,chroot)中,我想让开发人员能够访问/ home / site中的SSH,因此他只能使用git来pipe理代码。 我也想让他访问FTP到/ home / site /和MySQL访问3个DB(站点和2个子服务器)

SSH :我创build了一个名为dev_ssh的用户。 SSH是基于证书的只有login,我有SSH到/ home / dev_ssh工作。 我想给这个用户访问/ home / site目录,但是用户不能cd到/ home / site,除非我把他添加到sudoers

FTP :我为网站(dev.site)创build了一个用户,他可以访问整个/ home / site。 这部分工作正常。

MySQL :我创build了一个mysql用户dev_mysql,并为这个用户提供了对所有3个数据库(主数据库和子数据库)的访问权限。 MySQL访问我可能必须这样保持,因为该用户只能访问那些3个DB(而unix用户只能从MySQL本地主机访问)才能远程login到MySQL。 这部分工作正常。

如何解决SSH访问/ home / site问题?

另外,整个设置是否是在Webmin环境中设置的正确方法?

使用系统组来访问目录。 将/home/site的组所有权更改为一个通用的组(如git ,并将用户dev_ssh添加到该组中。

 chgrp -Rvf git /home/site usermod -a -G git dev_ssh 

~/.ssh/authorized_keys

 command="git",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss [...] 

您可以将'git'用户限制为仅使用Git附带的名为git-shell的有限shell工具来执行Git活动。 如果你把它设置为你的'git'用户的loginshell,那么'git'用户不能对你的服务器有正常的shell访问权限。 要使用这个,请为您的用户的loginshell指定git-shell而不是bash或csh。 要做到这一点,你可能需要编辑你的/ etc / passwd文件。

 setfacl -md:u:dev_ssh:rx /home/site 

确保包含/home/site的文件系统已经使用acl选项安装。 资料来源: CentOS存取控制清单文件 。