相关疑难解决方法(0)

我的网站文件/文件夹在 Linux 网络服务器上应该有什么权限?

这是一个关于 Linux Web 服务器上文件权限的规范问题

我有一个运行 Apache2 的 Linux Web 服务器,该服务器托管多个网站。每个网站在 /var/www/ 中都有自己的文件夹。

/var/www/contoso.com/
/var/www/contoso.net/
/var/www/fabrikam.com/
Run Code Online (Sandbox Code Playgroud)

基本目录 /var/www/ 归 root:root 所有。Apache 以 www-data:www-data 运行。Fabrikam 网站由两位开发人员 Alice 和 Bob 维护。两个 Contoso 网站均由一位开发人员 Eve 维护。所有网站都允许用户上传图片。如果网站遭到入侵,其影响应尽可能地有限。

我想知道设置权限的最佳方法,以便 Apache 可以提供内容,网站不受攻击,并且开发人员仍然可以进行更改。其中一个网站的结构如下:

/var/www/fabrikam.com
    /cache
    /modules
    /styles
    /uploads
    /index.php
Run Code Online (Sandbox Code Playgroud)

应该如何对这些目录和文件设置权限?我在某处读到你永远不应该在网站上使用 777 权限,但我不明白这会导致什么问题。在繁忙时期,网站会自动缓存一些页面并将结果存储在缓存文件夹中。网站访问者提交的所有内容都保存在上传文件夹中。

security linux permissions web-server apache-2.2

344
推荐指数
3
解决办法
49万
查看次数

我可以使用 ACL 覆盖我的 umask 以使给定目录中创建的所有文件都可读吗?

假设我的 umask 是 0077。

我有一个目录,foo我想对其应用特殊权限。我在其中创建的所有文件foo都应该是全局可读的,并且所有目录都应该是全局可读和可执行的。

目前,如果我创建一个文件,它将是 0600,目录将是 0700:

$ cd foo/
$ touch file
$ mkdir directory
$ ls -l
drwx------ 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw------- 1 nfm nfm    0 2012-01-12 16:15 file
Run Code Online (Sandbox Code Playgroud)

我希望文件是 0644,目录是 0755,不管我的 umask:

drwxr-xr-x 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw-r--r-- 1 nfm nfm    0 2012-01-12 16:15 file
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

linux permissions access-control-list umask

15
推荐指数
1
解决办法
2万
查看次数

如何在 Ubuntu 9.10 上为在 /var/www 中编辑多个站点的多个用户设置权限结构?

我正在设置一个 Ubuntu 服务器,它将有 3 或 4 个 VirtualHosts,我希望用户能够在其中工作(添加新文件、编辑旧文件等)。我目前计划将网站存储在其中,/var/www但不反对移动它。

我知道如何添加新用户,我知道如何添加新组。我不确定处理只能编辑某些网站的用户的最佳方式。我阅读了这个问题中的答案,所以我想我可以设置一个组并将用户添加到该组中,但是他们都具有本质上相同的权限。我是否只需要为每个用户分配特定的权限?或者有更好的处理方法吗?

补充:我还应该注意,我将让每个用户通过 SSH/sFTP 登录。用户永远不需要在服务器上做任何其他事情。

ubuntu permissions user-management

5
推荐指数
1
解决办法
3719
查看次数

为所有用户设置 umask

我正在尝试将所有用户的默认 umask 设置为 002,包括我的 CentOS 机器上的 root。

根据这个和其他答案,这可以通过编辑/etc/profile. 然而,该文件顶部的评论说:

除非您知道自己在做什么,否则更改此文件不是一个好主意。最好在 /etc/profile.d/ 中创建 custom.sh shell 脚本以对您的环境进行自定义更改,因为这将防止在将来的更新中需要合并。

所以我继续创建以下文件:
/etc/profile.d/myapp.sh
与单行:

umask 002
Run Code Online (Sandbox Code Playgroud)

现在,当我以 root 身份创建一个文件时,该文件天生就有 664 权限,正如我所希望的那样。但是由我的 Apache mod_wsgi 应用程序创建的文件,或使用 sudo 创建的文件,仍然默认为 644 权限......

$ touch newfile(作为根):
结果 = 664(作品)

$ sudo touch newfile
结果 = 644(不起作用)

Apache mod_wsgi 应用程序创建的文件:
结果 = 644(不起作用)

Python 的 RotatingFileHandler 创建的文件:
结果 = 644(不起作用)

为什么会发生这种情况,以及如何确保系统范围内的 664 文件权限,无论创建文件的内容是什么?

linux fedora centos file-permissions umask

3
推荐指数
1
解决办法
1万
查看次数

允许多个 FTP 用户编辑公共 HTML 文件夹的权限 - Linux

在托管一个网站的专用服务器上,运行没有控制面板的 Linux,我试图授予多个用户编辑公共 HTML 文件夹 (/var/www/html/) 的权限。

我想确保以最佳方式执行此操作,我想如果我通过 CHMOD 宽松地设置权限,它将允许任何可以通过 FTP 访问该文件夹的人更改它。解决方案是设置wheel组,将目标用户添加到wheel组,然后为wheel组设置权限吗?

目前,只有一名用户可以编辑公共 HTML。

linux permissions ftp

1
推荐指数
1
解决办法
2万
查看次数

管理网络服务器的最佳用户是什么?

在 Apache 网络服务器中,我有用户www-data,并且其中的所有文件/var/www都归www-data. 不是为了安全吗?有时我需要通过 FTP 将文件上传到/var/www/*,但是对于我自己的用户,我没有写入权限。

假设我使用 WordPress,它推荐644文件和755文件夹的权限。安全地执行此操作的最佳方法是什么?我仍然需要能够通过 FTP 上传文件。

apache-2.4 ubuntu-16.04

1
推荐指数
1
解决办法
341
查看次数

自动 775 权限

伙计们,我有一个 linux 专用服务器。

有多个用户管理服务器上的特定目录。

但是如果用户上传了一些东西,例如一个插件/库。当它被执行时,它会创建该插件/lubrary 所需的子目录。用户没有该目录的权限。

如何自动为所有目录设置 775 权限?

permissions file-permissions

0
推荐指数
1
解决办法
490
查看次数