我在本地网络上的一台机器上安装了 CentOS,并安装了 httpd、PHP、Webmin(和 UserMin)等。我选择了 ProFTPd 并为 FTP、Webmin 和 Apache 打开了端口。
我现在可以通过本地网络访问 Webmin 并查看默认的 apache 测试页面。我还可以以我创建的用户身份建立 sfpt 连接。但是我无法通过 FTP 将文件写入 /var/www/。
我需要做什么才能允许一个或多个用户访问相关目录?
答案1
虽然 LDJames 的回答(不再在这里)让我关注整个用户和组问题,但它并不完全有帮助。值得庆幸的是,这足以让谷歌参与其中。以下是我为解决问题所采取的步骤。
该文件夹由 root 拥有,这不适合向其中添加用户。解决方案是创建一个特殊的小组。我称其为“www”,因为我很有创造力。然后将 html 文件夹移动到该组。
<user>
是我系统上用户的用户名
- su 到 root(或在每一行使用 sudo)
groupadd www
(建群)usermod -a -G www <user>
(将用户添加到组中)- 导航到 /var/www/
chgrp www html
(将文件夹设置为组)chmod g+rwx html
(允许组访问文件夹 - 另请参阅http://ss64.com/bash/chmod.html这很有帮助)
结果我现在可以上传文件,并且如果我愿意的话,也可以让其他用户这样做。
- 在某些提示下,我还将 Apache 设置为作为 www 组运行。
这是通过设置环境变量来完成的(环境变量的确切位置根据 Linux 的风格而有所不同)。
尽管有其他答案,正确的方法是:
export APACHE_RUN_USER=www
export APACHE_RUN_GROUP=www
上面假设我还创建了一个名为 www 的用户,而因为这是我桌上的一个开发盒,所以我很高兴 Apache 现在以 root 身份运行。
通过以下方式找到了有关设置 apache 的用户和组的信息:apache 和 PHP 应该以什么用户身份运行? /var/www 文件应该有什么权限?