禁用root后网页打不开了?

禁用root本地和远程登陆 后网页打不开
Nginx配置文件格式检查正常
防火墙80-443开启
服务80开启
访问网页打不开什么原因
之前是可以的,禁用root远程登陆后就不行了,是不是因为www文件夹在root目录下的原因呢?

应该www目录在root目录下,其他用户没有权限访问该目录。

看看这个:https://blog.csdn.net/tanga842428/article/details/73546556

禁用root本地和远程登陆后,网页打不开可能有以下几个原因:
1、禁用远程登录后,root用户的SSH登录权限被禁止。
2、禁用本地登录后,root用户将无法使用本地计算机进行登录。这将导致一些需要本地登录的功能无法正常工作,例如使用浏览器访问网页时需要输入用户名和密码。
3、如果网页依赖于某些第三方库或服务,则可能需要root权限才能正常工作。在这种情况下,禁用root本地和远程登陆将导致无法访问这些库或服务。

因为禁用了 root 本地和远程登录权限,导致您无法以 root 用户的身份运行 Nginx 服务,而 www 文件夹默认情况下会存储在 root 用户的 home 目录下。这可能是无法访问网页的原因之一。

您可以尝试将 www 文件夹移动到一个不依赖于 root 用户的目录中,并使用相应的用户和组权限重新设置 Nginx 配置文件和 www 文件夹的权限。此外,还应确保 Nginx 进程有读取 www 文件夹中网站文件的必要权限。

另外,请检查 Nginx 配置文件是否正确配置了正确的主机名和端口号,并检查防火墙是否允许对应的入站连接。如果仍然存在问题,请检查 Nginx 日志以获取更多信息来定位问题。

  • 这篇博客: 非root用户,没有root权限,安装nginx中的 原因分析 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •         看错误描述,使用的配置文件已经是/home/ap/p05_dev/nginx/conf/nginx.conf了,不过有几个问题:

    1.错误日志的路径是/usr/local/nginx/logs/error.log,而不是配置文件里配置的/home/ap/p05_dev/nginx/logs/error.log

    2.配置文件里配置的用户不生效,因为不是用super-user(超级管理员)来启动

    3.client_body_temp的路径还是/usr/local/nginx

            查看进程之后,发现nginx没有启动成功。error.log、client_body_temp这些都还是在/usr/local/nginx目录下,可以推断说使用的还是编译好的nginx里配置的,nginx.conf里的配置不全或没生效。

  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的信息,需要排查禁用root登录之后无法访问网页的问题。以下是可能的原因和解决方案:

    1. nginx没有以正确的用户权限启动 解决方法: 检查nginx的启动命令是否包含setcap设置,或者使用root用户重新启动nginx服务。 如果未使用setcap设置,则需要将nginx配置为以普通用户权限启动。使用以下命令重新编译nginx,并为其指定用户和组: ./configure --user=<user> --group=<group> ... 然后按照编译后的提示进行安装和启动。注意,需要确保所选的用户具有访问相关文件和目录的权限。

    2. nginx配置文件中的www目录对于当前用户无效 解决方法: 确认www目录的权限和所属用户是否正确。建议将www所在的目录和文件的拥有者和组都改为nginx用户和组,然后重新启动nginx服务。

    如果以上解决方法仍未解决问题,可以尝试以下排查步骤:

    1. 检查防火墙是否正确开放80和443端口 解决方法: 在服务器上使用telnet或nc命令测试80和443端口是否开放。如果没有开放,则需要修改防火墙规则。如果已开放,请确认是否存在其他软件占用了这些端口。

    2. 检查nginx错误日志和访问日志 解决方法: 查看nginx的错误日志和访问日志,确认是否存在错误或异常请求。根据日志内容进一步排查问题。

    3. 检查nginx配置文件是否正确 解决方法: 使用以下命令测试nginx配置文件是否正确: nginx -t 如果存在语法错误或其他问题,需要修改nginx配置文件。

查看nginx.conf 配置文件 其中是不是有root

server {
        listen       80;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /root/html;
            index  index.html index.htm;
        }
}

以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:
网页打不开的可能原因有:

  1. www数据文件夹权限问题。如果www文件夹在root目录下,禁用root登陆后,www-data用户将无法访问该文件夹,导致Nginx无法读取网页文件。
    解决方案:将www文件夹的所属用户和所属组改为www-data。命令如下:
    chown -R www-data:www-data /path/to/www
  2. Nginx配置文件用户权限问题。Nginx启动后会以www-data用户身份运行,需要有对配置文件的读取权限。
    解决方案:将Nginx配置文件的所属用户和所属组也改为www-data。命令如下:
    chown -R www-data:www-data /etc/nginx
  3. SELinux设置问题。SELinux安全模块可能限制了Nginx服务对网页文件的访问。
    解决方案:临时将SELinux设置为permissive模式。命令如下:
    setenforce 0
    永久解决方案是设置SELinux allow规则,这比较复杂,需要研究SELinux的配置方法。
  4. 防火墙设置问题。防火墙可能限制了80端口,导致无法访问网页。
    解决方案:使用如下命令开启80端口:
    firewall-cmd --add-port=80/tcp --permanent # CentOS 7
    ufw allow 80/tcp # Ubuntu
    除此之外,我的其他建议:
  5. 检查Nginx的错误日志,可能会有权限问题等导致网页无法访问的报错信息。日志地址:/var/log/nginx/error.log
  6. 尽量不要直接在root目录下放置网页文件,可以新建一个www用户并给其单独的主目录。
  7. 重启Nginx服务,让配置生效。命令:
    systemctl restart nginx # CentOS 7
    systemctl reload nginx # 无需中断访问重载配置

基于new bing的编写:
禁用 root 用户本地和远程登录并不应该导致无法访问网页。如果您的 Nginx 配置文件格式检查正常、防火墙和服务都已经开启,那么有可能是其他原因导致的。

您提到 www 文件夹在 root 目录下,这确实是不推荐的做法。建议您将 www 文件夹移动到非 root 用户目录下,并确保新的目录具有适当的权限以供 Web 服务器读取和写入。

另外,您可以检查以下几个方面:

  • 检查 Nginx 配置文件是否正确:确保请求正确路由到您的 Web 应用程序。

  • 检查防火墙规则是否正确:确保流量能够进出您的 Web 服务器。

  • 检查 Web 服务器是否正常工作:您可以尝试手动启动您的 Web 应用程序并检查日志文件以获取更多信息。

  • 检查 DNS 是否正常解析:确保域名解析到正确的 IP 地址。
    希望以上建议能够帮助您解决问题。

禁用root本地和远程登陆一般不会影响网页访问,因为这与Nginx配置文件和防火墙无关。可能是其他原因导致网页无法访问,比如Nginx配置文件有错误、域名解析有问题、网站服务宕机等等。www文件夹在root目录下不会影响网页访问。建议检查Nginx配置文件和网站服务是否正常运行。

禁用 root 账户是服务器安全性的一个重要步骤,但如果不正确地进行了设置,则可能会导致一些应用程序或服务无法正常工作。如果您在禁用 root 后遇到了网页打不开的问题,可以尝试以下几个步骤:

  1. 确认是否存在其他用户拥有访问 Web 服务器的权限,如果是,请使用该用户登录并测试网页是否可以打开。

  2. 检查 Web 服务器的日志文件,通常位于 /var/log/httpd/ 目录下(如果您使用的是 Apache Web 服务器),查看是否存在错误消息或异常。如果有,请根据日志文件中的错误信息对配置进行调整。

  3. 确认 Web 服务器的文件和目录权限是否正确设置。您可以使用以下命令检查并更改文件和目录的权限:

    $ sudo chown -R apache:apache /var/www/html/
    $ sudo chmod -R 755 /var/www/html/
    
  4. 检查防火墙设置,并确保将来自 Internet 的 HTTP 请求转发到Web服务器。您可以使用以下命令检查并更改防火墙设置:

    $ sudo firewall-cmd --permanent --zone=public --add-service=http
    $ sudo firewall-cmd --reload
    
  5. 如果您使用的是 SELinux 安全模块,请确认其规则是否允许 Web 服务器访问相关文件和目录。您可以使用以下命令来检查并更改 SELinux 规则:

    $ sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
    $ sudo restorecon -Rv /var/www/html
    

如果您按照上述步骤检查后仍然无法解决问题,建议检查您的 Web 服务器配置文件或与您的系统管理员联系以获取更多帮助。

该回答参考ChatGPT:
禁用root本地和远程登录不应该影响网页的访问。如果Nginx配置文件格式检查正常,防火墙80-443开启,服务80开启,那么可能是其他原因导致的。您可以检查一下Nginx的错误日志,看看是否有相关的错误信息。另外,www文件夹在root目录下也不应该影响网页的访问。建议您进一步排查问题,例如检查网页的代码、网络连接等方面。

将www目录的拥有者更换为nginx执行的拥有者

禁用root本地和远程登录不应该直接影响到网页访问的正常,因此可能存在其他原因导致网页无法打开。

首先,您需要检查Nginx配置文件中关于网页服务的配置是否正确。确保在配置文件中指定了正确的网页根目录以及网页服务监听的端口号。如果您进行了最近的配置更改,那么可能是配置文件中的错误导致了网页无法打开。

其次,您需要检查防火墙规则是否正确,确保80和443端口的流量能够被允许通过。您可以使用telnet命令测试端口的可达性,例如:telnet <IP地址> 80,如果连接成功则表示端口是开放的,否则则表示需要检查防火墙规则。

最后,您也提到了网页文件夹位置的可能问题。请确保您的Nginx配置文件中指定的网页根目录路径与实际网页文件夹的位置一致。如果您将网页文件夹移动到了非root用户的目录下,则需要修改文件夹的所有者和权限,以确保Nginx能够正常访问文件夹中的内容。

综上所述,您需要逐一排除以上可能导致网页无法打开的原因,并进行相应的修复。