有关网络服务器权限的一系列问题(切诺基)

有关网络服务器权限的一系列问题(切诺基)

我是 Linux 管理新手,正在配置 Cherokee Web 服务器。

我使用的是 Archlinux,所以我有一个拥有 /srv/http 的 http 用户。另一方面,我有一个名为“jesus”的用户,它位于 http 组中。

Cherokee is working with user and group http (http:http)

因此,我对 /srv/http 做了一些更改。我向组添加了写入权限,并更改了所有者和组,如下所示:

drwxrwxr-x  3 jesus http 4096 Oct 25 14:00 http

它就像:

所以现在 python 可以在其中写入他的 .pyc 文件(我认为 cherokee 告诉 python 创建该文件并且因为 cherokee 能够在那里写入)。

我的问题是:这些权限信息正确吗?有人告诉我,该组不应该具有写入权限,如果我有 http 文件夹(以及里面的网站),情况会更好,例如:

drwxr-xr-x  3 http http 4096 Oct 25 14:00 http

因此 cherokee 将能够在里面写入,因为 http 拥有该文件夹。

嗯,我很困惑。

那么,我的 http 文件夹及其内部的所有内容应具有什么权限,以及哪个用户和组应该拥有它?

我只需要我的个人网站能够正常运行而不会出现重大安全问题:P

谢谢!

PS:也许这有关系。当 python 创建 .pyc 文件时,它们是 -rw-r--r--。这也是正确的吗?

答案1

另一方面,我有一个名为“jesus”的用户,它属于 http 组。

我用来访问系统 (ssh) 的用户,并且还运行了 ts3。我认为既然网站是我的,那么用户就是那个。

具有 shell 访问权限的系统用户不应添加到该http组中。要在文档根目录中写入一些测试文件,您可以http使用以下命令切换到用户:

$ sudo su - http -s /bin/bash

对于 FTP 目的,你最好创建一个没有 shell 访问权限的新用户:

$ sudo useradd -d /home/ftp/ftpu1 -s /sbin/nologin ftpu1
$ sudo usermod -a -G nobody ftpu1
$ sudo mount --bind /srv/http/web1 /home/ftp/ftpu1

或使用虚拟用户。

文档根目录的正确权限和所有权应该是:

drwxrwsr-x 8 http nobody 4096 Oct 17 15:36 /srv/http/

注意s在组执行位位置。这意味着此文件夹设置了SGID,新创建的文件/文件夹也具有相同的组所有权。

不要忘记将umaskApache 和 FTP 服务器设置为 002,以使创建的文件/文件夹http可以被覆盖nobody,反之亦然。

相关内容