在使用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存取控制清单文件 。