首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要编写一个脚本,该脚本将对用户进行jailkit,并允许用户访问特定的网站目录。

需要编写一个脚本,该脚本将对用户进行jailkit,并允许用户访问特定的网站目录。
EN

Ask Ubuntu用户
提问于 2012-11-01 13:24:52
回答 1查看 833关注 0票数 3

我有一个ubuntu12.04应用服务器托管一些网站。我们需要给予开发人员访问权限,才能将文件上传到其中一个网站。我已经安装了Jailkit,但似乎找不到如何让他访问sFTP的网站目录。

以下是我们的web目录结构:

/var/www/website.com/htdocs/ /var/www/另一个website.com/htdocs/ /var/www/website3.com/htdocs/所有属于www-data:www-data

有人能给我一些步骤,让用户通过sFTP访问其中的一个或两个目录,而不是ssh访问?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2013-01-02 00:42:50

通常,由于遇到的原因,这不是一个实用的目录结构。如果您只有一个网站,那么/var/www污染可能会很好。然而,在我的经验中,20+多年来,最好的方法是创建一个独立的主分区,以便主分区可以挂载nosuid、noexec、nodev等。每个网站都有自己的系统用户帐户。给该帐户一个shell,rssh,它允许sftp,但不允许ssh。在托管、雇用开发人员时,甚至从安全的角度来看,这都是实用的。

写了这么多之后,有一个解决方案变得清晰起来:将站点移动到用户帐户目录并更新web服务器配置。这可以通过创建子域上的网站副本来安全地完成。例如,对于域www.website.com,创建一个名为test.website.com的CNAME。确保test.website.com上的站点正常工作。然后,更新web服务器配置文件,一旦您知道它是完美无缺的,就将www.website.com指向新位置。

在这一点上,您可以提供通过sFTP访问任何人,您不关心这个问题。

但是..。为了达到目的并回答以下问题:一个不太明显但有效的解决方案是使用ACL。使用ACL,您可以在文件系统权限上获得更好的细粒度控制。使用ACL可以提供所需的限制。

要做的第一件事是安装acl软件:

代码语言:javascript
复制
sudo apt-get install acl

接下来要做的事情是使用ACL选项挂载或重新装入文件系统。

代码语言:javascript
复制
sudo -e /etc/fstab

您可能会看到这样的一行,因此添加acl选项。

代码语言:javascript
复制
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,acl 0 1

存起来,然后退出。已启用acl重装。

代码语言:javascript
复制
sudo mount -o remount,acl /

在此之后,您将可以访问ACL。有关于help.ubuntu.com的ACL指南。在askubuntu.com上使用ACL的一些示例:

管理PureFTPd下的任意用户权限

编辑和添加文件到“/var/www”的最简单方法是什么?

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/210540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档