考虑组和用户使用不同的目录安装 Apache httpd - CentOS 6.6

考虑组和用户使用不同的目录安装 Apache httpd - CentOS 6.6

我删除了与 apache 相关的用户和组(从 RPM 中预装了 apache)。

我正在从二进制源“tar.gz”安装 Apache HTTPD

  1. 下载httpd-2.4.12.tar.gz
  2. 提取 tar zxvf /.../httpd-2.4.12.tar.gz -C /usr/local/
  3. 创建链接ln -s /usr/local/httpd-2.4.12 /usr/local/httpd
  4. 已安装apr-1.5.2.tar.gzapr-util-1.5.4.tar.gz(因为需要)

稍后,稍后

#./configure --prefix=/usr/local/httpd --with-included-apr --with-included-apr-util
-with-pcre=/usr/local/pcre --with-z=/usr/local/zlib
# make
# make install

到目前为止还没有出现任何问题...

后来编辑/usr/local/httpd/conf/httpd.conf并运行服务器后/usr/local/httpd/bin/apachectl,它工作得很好......


现在,我想为我的 Apache 目录创建usergroup/usr/local/httpd

问题一:

我需要一个系统帐户,例如,useradd -r -s /sbin/nologin apache


我想将我的 html 文件放入:(/usr/local/Html例如),在 httpd.conf 文件中编辑文档根目录<目录“usr/local/Html”>

问题2:

必须使用什么用户,或者阿帕奇,对于我的目录:?

chown -hvR apache: /usr/local/httpd
chown -hvR apache: /usr/local/Html

问题3: 必须将哪些权限以及如何分配给所有者chmod

chmod -R 750 /usr/local/Html

或者

chmod -R 775 /usr/local/Html/

PS:我正在阅读(不严格遵循) http://www.linuxfromscratch.org/blfs/view/svn/server/apache.html

谢谢你!


我有问题!

# useradd -g root -r -c "Apache User" -s /sbin/nologin apache
# chown -hvR apache:root /usr/local/httpd/

使用(没有问题)

# /usr/local/httpd/bin/apachectl
#

但尝试使用最近创建的apache用户,我有:

# /bin/su -p -s /bin/sh apache /usr/local/httpd/bin/apachectl start
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
#

答案1

  1. 回答: 是的,如果你删除了 rpm 带来的 apache 用户,你需要创建一个名为 apache 或 www 的用户,这里 -s /sbin/nologin apache 表示不要为 apache 用户添加 shell

    useradd -r -s /sbin/nologin apache

你可以把你的网络文件放在任何你想要的地方/srv/www,/var/www/或者/usr/local/httpd任何地方,但它必须定义在httpd.conf 具有 DocumentRoot 指令的文件和 Web 目录必须具有适当的用户所有权阿帕奇和一组又名

chown -R apache:root /srv/www

注意:如果您在 Centos 中运行 selinux 并计划将 web 文件放入 /var/www 中,则必须为该目录标记好 selinux 上下文,这可以使用以下命令来完成

semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?'
restorecon -Rv /srv/www

你可以通过运行来验证塞萨图斯命令无论您的系统是否启用了selinux,运行selinux都被认为是良好的安全实践

  1. 回答 用户必须是 apache (您新创建的用户),组为 root

  2. 回答权限模式为第755章或者750对于 Linux 虚拟主机来说被视为空闲

相关内容