我已经在 ubuntu 12.04 系统上设置了 LAMP。我想为 Apache 根文件夹中的所有文件设置密码,以便只有授权人员才能使用它们。如何为文件夹设置密码?
答案1
在这种情况下,您不想用密码保护文件,而是决定谁应该被允许接触文件。应该用密码(或其他方式,如密钥)保护用户帐户。其他任何事情都适用于用户之间共享密码,这总是错误的。
您要做的就是设置文件和目录的所有权。这很简单:chown -R www-data:groupname /siteroot
(siteroot 是包含您要保护的文件的目录)。
在上面的例子中,我将所有权设置为 www-data,因为此用户需要访问权限才能发布这些文件。我已将“groupname”设置为组所有者。您可以使用自己的主要组,该组与您的用户名相同。在这种情况下,只有您和服务器才能管理这些文件。
如果您希望多个本地用户能够管理内容,那么您需要创建一个新组,将相关用户添加到该组并将其设为组所有者。假设您希望现有用户“joe”、“john”和“gina”被允许读取和编辑 /var/www/ 目录中的文件。其他人根本无权访问该文件夹。
addgroup mysite-editors
adduser joe mysite-editors
adduser john mysite-editors
adduser gina mysite-editors
chown -R www-data:mysite-editors /var/www/*
chmod o-rwx -R /var/www
最后一行是删除“其他人”对 /var/www 中任何文件的读取、访问或写入的权限。
答案2
您可以使用基本身份验证来执行此操作。例如:
在 apache 文件夹中创建一个 htpasswd 文件(您可以在任何地方创建它)
htpasswd -c /etc/apache2/passwd username
现在将以下内容添加到
/
指令中:AuthType Basic AuthName "By Invitation Only" AuthUserFile /etc/apache2/passwd Require valid-user