只允许外部承包商访问apache网络文件夹.选项:SFTP监禁



以下问题:我们运行的是一个CentOS网络服务器,希望授予外部承包商访问权限,该承包商只需访问我们的网络文件夹"/var/www'即可修改/上传文件。

我尝试的是设置SFTP监禁(根据以下文件:http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/),但由于以下原因,我无法使其工作:整个Web文件夹已在CentOS中像往常一样分配了Apache用户Apache:Apache。但SFTP需要拥有root:root所有权,否则会出现以下错误:

致命:chroot目录组件"/var/www/"[postauth]的所有权或模式不正确

那么,我如何设置SFTP或其他解决方案来保留"www"文件夹apache:apache所有,并允许其他用户访问它呢?

除了SFTP之外,还有其他选择可以解决这个问题吗?或者SFTP是正确的做法吗?

提前感谢您的帮助!

好吧,您需要确保为SFTP目录设置了正确的权限和所有权。此外,请确保被监禁的用户主目录为root:root所有,并将其chmod为755(这样"其他"用户就可以执行它)。。

chown root:root /home/$SFTPUSER
chmod 755 /home/$SFTPUSER

此外,您还需要确保原始web目录由$SFTP用户和apache所有,并具有2775权限。

这就是我最终做到的:

创建组和用户

groupadd webmasters
useradd -g webmasters -d /var/www/ -s /sbin/nologin externalProvider
passwd externalProvider

在sshd_config中设置sftp服务器子系统

vim /etc/ssh/sshd_config

退出现有子系统并添加:

Subsystem       sftp    internal-sftp

添加sshd_config的末尾

Match Group webmasters
ChrootDirectory /var/www/
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

重新启动sshd服务

systemctl restart sshd

文件夹权限

文件权限非常关键!如果以下情况适用于您的情况,请仔细检查。

chown -R root:webmasters /var/www/html/
sudo find /var/www/html/ -type f -exec chmod 664 {} ;
sudo find /var/www/html/ -type d -exec chmod 775 {} ;
sudo find /var/www/html/ -type d -exec chmod g+s {} ; # Set SGID in order to keep group for newly created files
sudo chown -R apache:webmasters /var/www/html/ffhs/data/ # As data directory must be writable by apache
chown root:root /var/www/

最新更新