`
samjavaeye
  • 浏览: 193180 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何使用非Root用户启动Apache 80和1024以下端口

阅读更多

检查apache_error.log日志文件,发现有以下内容报错:
ls: /home/xxxx/output/jk.shm*: 没有那个文件或目录
(13)Permission denied: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs
httpd not running, trying to start

linux中默认非root用户不能使用80或1024以下端口,因此会有此错误。只需把httpd加上suid权限即可,测试环境是安装时统一处理的,应该不会有错误。
但是检查后发现确实是这个问题,chmod u+s /httpd/bin/httpd 执行命令添加suid权限即可。

附录:suid和sgid
SUID 是 Set User ID, SGID 是 Set Group ID的意思。
如果一个文件被设置了SUID或SGID位,会分别表现在所有者或同组用户的权限的可执行位上。例如:
1、-rwsr-xr-x 表示SUID和所有者权限中可执行位被设置
2、-rwSr--r-- 表示SUID被设置,但所有者权限中可执行位没有被设置
3、-rwxr-sr-x 表示SGID和同组用户权限中可执行位被设置
4、-rw-r-Sr-- 表示SGID被设置,但同组用户权限中可执行位没有被设置
 
给文件加SUID和SUID的命令如下:
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
chmod g+s filename 设置SGID位
chmod g-s filename 去掉SGID设置 

由于SUID和SGID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID和SGID位是没有多大意义的。
首先讲普通文件的SUID和SGID的作用。例子:
如果普通文件myfile是属于foo用户的,是可执行的,现在没设SUID位,ls命令显示如下:
-rwxr-xr-x 1 foo staff 7734 Apr 05 17:07 myfile任何用户都可以执行这个程序。UNIX的内核是根据什么来确定一个进程对资源的访问权限的呢?是这个进程的运行用户的(有效)ID,包括 user id和group id。用户可以用id命令来查到自己的或其他用户的user id和group id。
除了一般的user id 和group id外,还有两个称之为effective 的id,就是有效id,上面的四个id表示为:uid,gid,euid,egid。内核主要是根据euid和egid来确定进程对资源的访问权限。
一个进程如果没有SUID或SGID位,则euid=uid egid=gid,分别是运行这个程序的用户的uid和gid。例如kevin用户的uid和gid分别为204和202,foo用户的uid和gid为 200,201,kevin运行myfile程序形成的进程的euid=uid=204,egid=gid=202,内核根据这些值来判断进程对资源访问的限制,其实就是kevin用户对资源访问的权限,和foo没关系。
如果一个程序设置了SUID,则euid和egid变成被运行的程序的所有者的uid和gid,例如kevin用户运行myfile,euid=200,egid=201,uid=204,gid=202,则这个进程具有它的属主foo的资源访问权限。
SUID的作用就是这样:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。passwd就是一个很鲜明的例子。
SUID的优先级比SGID高,当一个可执行程序设置了SUID,则SGID会自动变成相应的egid。 

分享到:
评论

相关推荐

    如何修改apache80端口

    在Windows环境下,如果已经安装了IIS服务器,那么在安装WAMP(Windows + Apache + MySQL + PHP)时可能会遇到端口冲突的问题,因为IIS和Apache都默认使用80端口。为了避免端口冲突,我们需要将Apache的80端口更改为...

    apache 设置主机头,同一端口绑定多个域名和网站

    ### Apache配置主机头在同一端口绑定多个域名和网站 在Apache服务器中,有时我们需要在同一台服务器上运行多个网站,每个网站都有不同的域名。这可以通过配置虚拟主机(Virtual Hosts)来实现,其中一种方法是使用...

    Linux 解决Deepin无法在root用户启动Google Chrome浏览器的问题

    由于系统保留了低于1024的端口供root用户使用,所以非root用户在尝试绑定这些端口时会遇到权限问题。为了解决这个问题,我们可以利用set UID位来允许非root用户启动服务。 对于Apache,首先切换到root用户,然后...

    Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)

    但为了让Tomcat能和Apache共用80端口,通常的做法是让Tomcat监听在非80端口,并通过AJP将请求转发给Tomcat。 整个配置过程涉及到的关键知识点包括: 1. Apache HTTP服务器的工作原理,以及如何修改其配置文件。 2....

    web网站开启80端口服务

    【标题】:“web网站...总结起来,开启80端口服务并配置好Web服务器,能够提供一个直观、便捷的网站访问体验,同时利用文档根目录共享资源,方便了用户和内部团队的协作。但一定要注意服务器安全,避免不必要的风险。

    ubuntu下修改apache端口

    root@ubuntu:/etc/apache2# pwd /etc/apache2 root@ubuntu:/etc/apache2# vim ports.conf 8 NameVirtualHost *:81

    Nginx端口映射配置方法

    Nginx端口映射配置方法是网络服务器管理中的一个重要环节,它允许用户通过单一的公共端口访问多个运行在不同私有端口上的服务。Nginx作为高性能的反向代理服务器,常用于实现这一功能。以下是关于Nginx端口映射配置...

    IHS无法通过80端口连接到WAS应用端口的参考解决办法

    注意,必须使用root权限来重启IHS,可以使用以下命令来停止和启动IHS: ./opt/was/HTTPServer/bin/apachectl stop ./opt/was/HTTPServer/bin/apachectl start 在重启IHS之前,需要确保已经停止了IHS,可以使用以下...

    Apache2.2 for Linux安装手册

    8. **启动Apache**:通过`/opt/apache2/bin/apachectl -k start`命令启动Apache服务,然后使用`netstat -an | grep :80`检查80端口是否开放,`ps -aux | grep httpd`确认Apache进程是否运行。 9. **设置启动脚本**...

    IIS和Apache的WEB服务能共存于一台服务器

    如果我们想让IIS和Apache共存,就需要将IIS的端口修改为其他端口,例如8080,然后Apache可以继续使用默认端口80。 在实际操作中,我们可以按照以下步骤来实现IIS和Apache的共存: 1. 首先,在服务器上安装并配置好...

    apache James使用入门

    ### Apache James 使用入门详解 #### 一、Apache James 概述 Apache James 是一款由 Apache 组织开发的开源邮件服务器软件,它完全基于 Java 技术构建,支持多种邮件协议,包括 SMTP(Simple Mail Transfer ...

    Apache+mysql+php

    2. 安装MySQL:通过mysql-5.5.56-winx64.msi执行安装,配置数据库的root用户和密码,以及服务启动选项。 3. 安装PHP:将php-5.6.31-Win32-VC11-x64解压到Apache的安装目录下,并配置Apache的httpd.conf文件,使...

    php+mysql+apache安装包(包括常见错误分析)

    安装完成后,需要启动MySQL服务,并创建一个root用户或者新用户,分配相应的权限。为了方便管理数据库,可以下载MySQL的命令行客户端或图形界面工具如MySQL Workbench。通过`CREATE DATABASE`命令创建数据库,`USE`...

    apache+mysql+php部署

    - `Listen`:Apache 监听的端口,通常是 80。 - `ServerName`:服务器的域名。 - `ServerAdmin`:管理员的电子邮件地址。 - `DocumentRoot`:网站的根目录。 - `<Directory>`:定义目录访问规则,如权限、索引...

    windows下用apache和tomcat搭建jsp环境

    - 防火墙设置:确保Apache和Tomcat的端口(Apache默认80,Tomcat默认8005、8009)没有被防火墙阻止。 - 错误排查:查看Apache和Tomcat的日志文件,如`logs/error.log`和`catalina.out`,以定位和解决可能出现的问题...

    apache nifi使用指南

    5. **启动服务**:在 Linux 平台使用命令 `{NIFI_ROOT}/bin/nifi.sh start` 启动 NiFi,在 Windows 平台使用相应的命令。 以上步骤为搭建 NiFi 单机开发环境的基本流程,完成这些步骤后,用户便可以通过 Web 浏览器...

    Apache linux下部署

    - 使用`systemctl`命令来启动Apache服务: ```bash [root@linuxprobe ~]# systemctl start httpd ``` - 启动后,可以通过浏览器访问服务器IP或localhost来验证Apache是否成功启动。 2. **设置Apache服务开机...

    php apache mysql配置详解

    6. **安全考虑**:在生产环境中,不要忘记安全配置,如更改默认的MySQL root密码,使用非root用户运行Apache,限制Apache对系统文件的访问,以及启用防火墙规则。 7. **优化与性能**:根据需求调整Apache的并发连接...

    linux下安装apache的及反向代理配置完整过程

    在关闭防火墙后,需要添加以下内容到 `/etc/sysconfig/iptables` 文件中,以允许 Apache 服务器使用的端口: ``` -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall...

Global site tag (gtag.js) - Google Analytics