允许外部提供者在CentOS中访问Webfolder。 (选项SFTP)

以下问题:我们运行一个CentOSnetworking服务器,并希望为外部承包商授予访问权限,只需访问我们的webfolder“/ var / www”即可修改/上传文件。

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

致命:chroot目录组件的错误所有权或模式“/ var / www /”[postauth]那么我怎样才能设置SFTP或其他解决scheme,以保持“www”文件夹apache:apache拥有,并允许其他用户访问它?

有没有其他的select来解决这个问题,然后SFTP或SFTP是正确的事情?

预先感谢您的帮助!

我终于用SFTP来解决上述问题。 文件权限所在的主要问题。 我做了以下步骤(运行CentOS 7.2):

文件夹权限在设置文件权限之后。 包括粘性位(在代码后面解释)。

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/website/data/ # As data directory must be writable by apache chown root:root /var/www/ 

创build组和用户

为外部提供商创build用户并设置新密码。

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

在sshd_config中设置sftp-server子系统

 vim /etc/ssh/sshd_config 

取消现有子系统并添加:

 Subsystem sftp internal-sftp 

添加添加sshd_config的结尾

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

重新启动sshd服务

 systemctl restart sshd 

通过SFTPlogin来testing连接

 sftp externalProvider@hostname 

安全

SELinux正在执行,而且从来没有问题关于这个SFTP设置。