场景:普通用户编译的apache,要在该用户下启动1024端口以下的apache端口

1、假设普通用户为sims20,用该用户编译 安装了一个apache,安装路径为/opt/aspire/product/sims20/apache

./configure --prefix=/opt/aspire/product/sims20/apache   --enable-so --enable-modules=all   --enable-mods-shared=all   --enable-mods-shared='proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http proxy_rewrite'

make
  make install

2、编译完成后,设置http.conf的监听端口为80

3、直接用普通用户sims20启动

[sims20@bcd-app01 bin]$ ./apachectl  start
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

出错原因:在linux下,普通用户只能用1024以上的端口,而1024以内的端口只能由root用户才可以使用

4、利用setuid来解决问题,这样使用httpd能以root权限运行

root用户登录,进入/opt/aspire/product/sims20/apache/bin,分别用chown root  httpd、chmod u+s httpd 设置httpd的属主为root及特殊权限

[root@bcd-app01 bin]# ls  -l  httpd
-rwxr-xr-x 1 sims20 aspire 3517470  3月 15 17:12 httpd
[root@bcd-app01 bin]# chown root  httpd
[root@bcd-app01 bin]# ls  -l  httpd
-rwxr-xr-x 1 root aspire 3517470  3月 15 17:12 httpd
[root@bcd-app01 bin]# chmod u+s httpd
[root@bcd-app01 bin]# ls  -l  httpd
-rwsr-xr-x 1 root aspire 3517470  3月 15 17:12 httpd

5、重新进入普通用户sims20,启动apache

[sims20@bcd-app01 bin]$ ./apachectl  start

可以正常启动,没报错

6、试着访问一下

[sims20@bcd-app01 bin]$ curl  http://10.24.12.159:80
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
</body></html>

报403 Forbidden错误

7、看一下进程

[sims20@bcd-app01 bin]$ ps  -ef |grep httpd
root      7841     1  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7844  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7845  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7846  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7847  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7848  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    8006  3026  0 17:29 pts/4    00:00:00 grep httpd

怎么跑出daemon 用户了,  原来httpd主进程仍然以root用户的权限运行,而它的子进程将以一个较低权限的用户运行 ,而这个较低权限用户daemon 在http.conf中配置

7、在http.conf中配置一下,将用户改成root
   User daemon
   Group daemon

改成
    User root
    Group root

8、再次用普通用户启动apache

[sims20@bcd-app01 bin]$ ./apachectl  restart
Syntax error on line 76 of /opt/aspire/product/sims20/apache/conf/httpd.conf:
Error:\tApache has not been designed to serve pages while\n\trunning as root.  There are known race conditions that\n\twill allow any local user to read any file on the system.\n\tIf you still desire to serve pages as root then\n\tadd -DBIG_SECURITY_HOLE to the CFLAGS env variable\n\tand then rebuild the server.\n\tIt is strongly suggested that you instead modify the User\n\tdirective in your httpd.conf file to list a non-root\n\tuser.\n

不行的,要重新加参数编译

9、再次修改在http.conf中配置一下,将用户改成普通用户吧

改成
    User sims20
    Group aspire

10、再次用普通用户sims20启动apache

[sims20@bcd-app01 bin]$ ./apachectl  start
[sims20@bcd-app01 bin]$ ps  -ef  |grep  httpd
root      9720     1  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9721  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9722  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9723  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9724  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9725  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9739  3026  0 18:09 pts/4    00:00:00 grep httpd

6、试着访问一下

[sims20@bcd-app01 bin]$ curl  http://10.248.12.159:80
<html><body><h1>It works!</h1></body></html>

成功了

转载于:https://www.cnblogs.com/zzw-zyba/p/8575428.html

zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)相关推荐

  1. zzw原创_非root安装fastDFS

    zzw原创_非root安装fastDFS fastDFS 想要非root安装,没找到资料,分析了一下安装脚本,原来作者是留了安装路径的,但没有放出来. 1.解包 [bdc@svr001 setup]$ ...

  2. zzw原创_非root用户下安装nginx

    想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...

  3. zzw原创_解决Could not chdir to home directory /test/bdctool: Permission denied一例

    1.用命令新建一用户 adduser -d /test/bdctool  -m bdctool 2.用新用户登录,报错:Could not chdir to home directory /test/ ...

  4. zzw原创_根据某一文件复制出大量固定位数后缀名的递增的文件

    1.trre.sh   :根据某一文件复制出大量固定位数后后缀递增的文件.   如将 SPINFO_190516_20170109.001 复制成SPINFO_190516_20170109.002  ...

  5. Tomcat 启动闪退问题解决集(八大类详细)

    Tomcat启动闪退问题解决集(八大类详细) 本文目录: 一.Java环境不对,Tomcat 不同版本需要的Java环境不同. 二.环境变量没有配置好 三.Tomcat端口被占用 四.配置文件编码问题 ...

  6. linux非root用户搭建docker,linux centos7 非root用户安装源码版docker

    注意:非root用户必须要有sudo权限 一.安装前的准备 1.查看当前主机是否有docker组 若没有输出结果则新建 再次查看,发现已经有了docker组 2.新增拥有sudo权限的用户(若知道ro ...

  7. nginx非root用户使用1024以下端口

    nginx非root用户使用1024以下端口 nginx应用需要使用80和443端口,但是非root用户,nginx -t 检查文件是会报错: [majd@majd nginx]$ /home/maj ...

  8. zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环

    zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环 参考文章: (1)zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环 (2)https://www.cnblogs.com/ ...

  9. 非root用户使用1024以下端口(Linux的Capabilities)

    非root用户使用1024以下端口 一.问题背景 二.解决方法 1.进入root用户 2.分配用户权限 总结 1.Capabilities介绍 2.Capabilities其他功能名称 3.Capab ...

最新文章

  1. 【IBM Tivoli Identity Manager 学习文档】3 系统部署
  2. matlab 三维矩阵向量化,Matlab:向量化三维矩阵的工艺
  3. Java核心面试问题
  4. 匿名函数、冒泡排序,二分法, 递归
  5. mysql mdl 锁_MySQL MDL锁
  6. Linux文件查找命令find,xargs详述
  7. Linux LiveCD:从CD光盘运行Linux
  8. img之间出现缝隙的原因_神马情况?美缝剂施工出现脱胶是什么原因?
  9. LVM逻辑卷使用手册
  10. 三言两语说清“线性流程”
  11. 光伏电池matlab/simulink 搭建模型 可应用于光伏发电最大功率点跟踪 mppt中
  12. 看一看Facebook工程师是怎么评价《第一行代码》的
  13. java 机器学习库_7个最好的Java机器学习开发库
  14. 1994年联想大调整,杨元庆上位,能赚钱的“书呆子”倪光南却走了
  15. [转载]Geronimo renegade: OpenEJB 和 Apache Geronimo 的 EJB 实现
  16. 【独行秀才】macOS Big Sur 11.6.5正式版(20G517)原版镜像
  17. Gameplay Ability System - UE4
  18. oracle bloom过滤,布隆过滤(Bloom Filter)-必须了解的优化器算法
  19. Unicode编码(统一码)
  20. 论知乎是如何评论博客园与CSDN的!!

热门文章

  1. 韩国GENICOM 紫外线探测器 探头 - GUVV-T11GC-TLW5 原厂渠道
  2. 基于数据驱动设计复杂页面
  3. 2022中国IT用户满意度调查,XSKY SDS一体机获“用户推荐品牌”
  4. 计算机学院毕业设计文化衫,【计算机学院】PS决赛“设计服装” 选手勾勒毕业印象...
  5. 面向对象编程——药品信息类的封装
  6. js的链式调用和流程控制(sleep)
  7. 2680 争渡(递推)
  8. 上海宝付解读双十一数据背后玄机
  9. SE78如何上传265 BMP格式的LOGO图片-smartforms
  10. [Pytorch系列-41]:卷积神经网络 - 模型参数的恢复/加载 - 搭建LeNet-5网络与MNIST数据集手写数字识别