【发布时间】:2013-01-30 02:01:43
【问题描述】:
我正在使用.htpasswd 对我服务器上的某些目录进行密码保护。但是,我注意到每次我这样做sudo htpasswd -c /etc/apache2/.htpasswd newuser 我当前的.htpasswd 内容都会被覆盖。我网站的每个目录在 .htpasswd 上都有自己的用户。
我怎样才能不覆盖,而是在我的.htpasswd 上添加一个新用户?
【问题讨论】:
我正在使用.htpasswd 对我服务器上的某些目录进行密码保护。但是,我注意到每次我这样做sudo htpasswd -c /etc/apache2/.htpasswd newuser 我当前的.htpasswd 内容都会被覆盖。我网站的每个目录在 .htpasswd 上都有自己的用户。
我怎样才能不覆盖,而是在我的.htpasswd 上添加一个新用户?
【问题讨论】:
完全相同,只是省略-c 选项。 Apache 上的文档here。
htpasswd /etc/apache2/.htpasswd newuser
另外,htpasswd 通常不以 root 身份运行。它通常由 Web 服务器或所服务文件的所有者拥有。如果您使用 root 来编辑它而不是作为这些用户之一登录,这是可以接受的(我想),但您需要小心确保您不会意外地以 root 身份创建文件(因此让 root 拥有它,其他人无法编辑它)。
【讨论】:
.htpasswd 它坚持使用-c 开关。
htpasswd /path/to/file username 完全有效(无论如何在语法上),甚至是 Apache 文档中的第一个示例。
htpasswd -c /etc/apache2/.htpasswd newuser!抱歉,没有注意到我在错误的窗口。将在 5 分钟内接受您的回答。谢谢!
FWIW,htpasswd -n username 将结果直接输出到标准输出,完全避免接触文件。
【讨论】: