一位朋友请求我帮助在 Apache 2 中启用 mod_expires,这是一个运行 Ubuntu 16 的远程服务器。他给了我 ssh 密钥的访问权限,通过 terminar 登录后我运行:
sudo su <auser>
然后我运行命令:
a2enmod expires
但我收到一条错误消息:
Could not create /etc/apache2/mods-enabled/expires.load: Permission denied
我一直在阅读有关 a2enmod 的内容,它所做的只是从 mods_avaialble/expires.load 在 mods_enabled 中创建符号链接
我的朋友告诉我他给我的用户是 root。可能是什么问题?
- 我需要运行 sudo a2enmod expires 吗? (它要求密码)
- sudo su 到底做了什么?我以为它可以让你获得 root 访问权限而无需提供密码?
- 我记得以前你可以在 httpd.conf 中执行“加载模块...”,这是一个选项吗?
答案1
1.) 看来您的朋友为您提供的用户没有执行 a2enmod 的权限。你应该让他将你添加到 sudoers 中。
2.) 运行 sudo su 将允许您获得超级用户权限(root)。有密码或没有密码实际上取决于您如何添加到 sudoers 以及是否已添加。参考这个例子:
root ALL=(ALL) NOPASSWD: ALL # No Password Needed
root ALL=(ALL) ALL #Password is needed
3.) 现在加载模块是使用a2enmod 完成的。请参阅这里对于手册页