faq-post
Apache的`htpasswd`身份验证提供HTTP基本身份验证——这是一种服务器端访问控制机制,在提供内容之前,会对任何浏览器请求发出用户名/密码提示。它无需任何应用层代码,完全在Apache的模块系统内运行,并在任何PHP、Python或Node.js后端逻辑执行之前在Web服务器层面强制执行。 这使其成为保护预发布环境、内部管理面板、开发构建以及任何必须对公共互联网隐藏的目录的最快、最可靠的方法,而无需部署完整的身份提供商。 htpasswd适用场景与不适用场景 在执行任何命令之前,请先了解威胁模型。HTTP基本身份验证在`Authorization`标头中以Base64编码字符串传输凭据。Base64不是加密——它可以被轻易逆向。这意味着htpasswd身份验证只有在通过HTTPS部署时才是安全的。没有TLS,凭据将以明文形式暴露给任何网络观察者。 适用场景: 预发布和预生产环境 内部开发者工具和仪表板 维护期间临时限制网站访问 在具有自身登录功能的应用程序前添加辅助身份验证层 在服务器层面保护WordPress的`wp-admin`或`xmlrpc.php` 不适用场景: 处理敏感用户数据的面向公众应用程序的主要身份验证 需要审计和记录凭据轮换的环境 需要基于角色的访问控制的多租户系统 如果您的使用场景涉及生产用户账户,请考虑改用OAuth2、LDAP或应用层会话管理。 前提条件 具有root或`sudo`访问权限的Ubuntu 20.04、22.04或24.04服务器 已安装或可通过`apt`安装的Apache 2.4 DNS指向您服务器的已注册域名(强烈建议用于SSL) 基本熟悉Linux命令行和文本编辑器 如果您从零开始,VPS托管环境为您提供完整的root访问权限和干净的Ubuntu镜像——这是此配置的理想基础。 第一步:安装Apache2 如果尚未安装Apache,请更新软件包索引并安装: “`bash sudo apt update && sudo apt install apache2 -y “` 验证安装并确认服务正在运行: “`bash sudo systemctl status apache2 apache2 -v “` 启用Apache在重启时自动启动: “`bash sudo systemctl enable apache2 “` Apache的默认文档根目录为`/var/www/html`。主站点配置位于`/etc/apache2/sites-available/000-default.conf`。 第二步:安装apache2-utils软件包 `htpasswd`二进制文件是`apache2-utils`软件包的一部分。在大多数Ubuntu安装中,该软件包与Apache一起安装,但请明确确认其存在: […]
Faker 是一个 PHP 库,用于生成统计上真实的虚假数据——姓名、地址、电子邮件、电话号码、UUID 等——用于自动化测试、数据库填充和开发环境数据生成。在 Laravel 中,Faker 通过 `fakerphp/faker` 包作为一等公民内置其中,并直接与 Eloquent 模型工厂集成,为开发者提供一种结构化、可重复的方式来生成有意义的测试数据集,而无需接触生产数据。 如果您需要一句话的搜索答案:Laravel Faker 的工作原理是将 `FakerGenerator` 实例绑定到每个模型工厂中,提供数百个格式化器,您可以通过属性或方法调用它们,按需生成支持区域设置、类型安全的合成数据。 前提条件 在阅读本指南之前,请确保您的环境满足以下要求: Laravel 8 或更新版本(工厂类语法在 Laravel 8 中取代了旧的基于闭包的方式) PHP 8.0 或更高版本(推荐用于工厂中的类型化属性和 match 表达式) Composer 管理的项目,`fakerphp/faker` 存在于 `require-dev` 中 在 `.env` 中配置好数据库连接(`DB_CONNECTION`、`DB_DATABASE` 等) 基本熟悉 Eloquent 模型和 Artisan CLI Faker 究竟是什么——以及它不是什么 Faker 不是随机数生成器。它是一个领域感知的数据合成引擎。每个格式化器都了解其领域的结构规则:电子邮件地址恰好包含一个 `@`,电话号码遵循国家拨号规则,信用卡号通过 Luhn 算法校验。这一区别在集成测试中至关重要——纯随机字符串在到达您的业务逻辑之前就会因格式验证失败。 该库内置超过 180 个格式化器,按提供者类组织: `Person` […]
WHM(Web Host Manager)是由cPanel, LLC开发的服务器级管理控制面板,运行于基于Linux的Web服务器上。它提供root级别和经销商级别的访问权限,用于管理多个cPanel账户、配置服务器范围的设置、控制安全策略,以及通过基于浏览器的界面管理Apache、MySQL和DNS等核心服务。WHM运行于端口2087(HTTPS),是cPanel的后端对应组件,而cPanel则作为终端用户界面。 如果您正在运行托管主机环境、经销商托管业务,或安装了cPanel/WHM的自管理VPS主机或独立服务器,了解WHM的架构和访问方式对于维护正常运行时间、安全性和运营效率至关重要。 WHM与cPanel:理解架构关系 一个常见的误区是将WHM和cPanel视为可互换的工具。事实并非如此。它们处于同一软件栈的不同层级。 功能 WHM(Web Host Manager) cPanel — — — 目标用户 服务器管理员、经销商 终端用户、网站所有者 访问端口 2087(HTTPS)、2086(HTTP) 2083(HTTPS)、2082(HTTP) 权限级别 root或经销商 仅账户级别 账户创建 是——创建cPanel账户 否——管理现有账户 服务器服务控制 是(Apache、MySQL、DNS等) 否 DNS区域管理 服务器范围 仅限单个账户 SSL管理 服务器范围+单个账户 仅限单个账户 防火墙配置 是(CSF、WHM防火墙) 否 备份范围 完整服务器或单个账户 仅限单个账户 经销商管理 是 否 WHM是管理平面,cPanel是各个账户的数据平面。每个cPanel账户均由WHM创建、配置和管理。如果WHM不可用,cPanel账户仍可继续提供流量服务,但无法在服务器级别进行任何管理更改。 WHM的核心技术能力 账户与套餐管理 WHM使用一种称为托管套餐(也称为计划或功能列表)的概念来定义资源分配——磁盘配额、带宽限制、电子邮件账户上限、数据库限制和子域名——这些设置统一应用于cPanel账户。这种抽象方式使管理员无需逐一配置即可管理数百个账户。 主要操作包括: 使用预定义套餐或自定义资源限制创建cPanel账户 暂停和恢复账户而不丢失数据,这对于计费执行至关重要 终止账户并可选择保留数据 即时修改账户限制而无需重新创建账户 使用WHM内置的迁移工具在服务器之间迁移账户,该工具可原子性地处理DNS、电子邮件、数据库和文件结构 […]
当FTP客户端未能在配置的时间阈值内建立或维持与远程服务器的连接时,就会发生FileZilla连接超时错误。根本原因几乎总是以下四类之一:客户端设置配置错误、网络层干扰(防火墙、NAT、路由器)、服务器端服务故障,或客户端与服务器之间的协议不匹配。 本指南涵盖所有已知原因和修复方法——包括标准文档中省略的高级边缘情况——让您无需猜测即可诊断和解决问题。 FileZilla连接超时的原因 在修改设置之前了解故障模式可以节省大量时间。FileZilla向目标主机和端口发起TCP握手。如果该握手未在超时窗口内完成,或者控制通道在传输过程中静默,FileZilla将报告超时并断开会话。 主要原因包括: 错误的主机、端口或协议——在选择SFTP的情况下连接到端口21,或反之亦然,将始终超时 被动模式与主动模式冲突——主动模式要求服务器向客户端发起返回连接,而大多数NAT路由器和防火墙会静默丢弃此类连接 本地防火墙或安全软件阻止出站FTP控制或数据通道流量 服务器端FTP守护进程未运行——服务可能已停止、崩溃或在非标准端口上监听 服务器上的空闲会话超时——许多FTP守护进程(ProFTPD、vsftpd、Pure-FTPd)会终止空闲60–300秒的会话 ISP或企业网络阻止端口21——随着FTP被视为遗留协议,这种情况越来越普遍 IP级别封锁——fail2ban、CSF或类似的入侵防御系统可能在多次登录失败后封禁了您的源IP FTPS中的TLS/SSL协商失败——显式或隐式FTPS在任何数据流动之前需要完成有效的证书握手;不匹配会导致明显的超时 DNS解析失败——如果主机名解析到错误的IP或完全失败,连接将永远无法到达服务器 FTP、FTPS和SFTP:协议和端口参考 选择错误的协议是导致看起来像网络问题的超时的最常见原因。下表阐明了各协议之间的差异。 协议 端口(默认) 加密 传输 备注 — — — — — FTP 21(控制),20(主动数据) 无 TCP 遗留协议;避免在公共网络上使用 FTPS 显式 21 TLS(协商) TCP 在端口21上进行STARTTLS升级 FTPS 隐式 990 TLS(强制) TCP 从第一个字节开始加密;较少见 SFTP 22 SSH(始终) TCP 不是SSH上的FTP;独立协议 FTP 被动 21 + 临时端口 无 TCP […]
`public_html` 目录是您网站的文档根目录——服务器端文件夹,当访客加载您的域名时,您的 Web 服务器(Apache、Nginx、LiteSpeed)从该文件夹读取并提供所有可公开访问的文件。在大多数共享主机和基于 cPanel 的环境中,`www` 目录只是一个指向 `public_html` 的符号链接(symlink),它的存在是出于历史兼容性考虑,而非独立的存储位置。 理解这一区别并非表面功夫。将文件错误放置在 `public_html` 之外、错误配置文档根目录,或误解符号链接关系,都可能导致部署失败、403 Forbidden 错误,或无意中将敏感配置文件暴露于公众。 `public_html` 作为文档根目录的作用 当 HTTP 请求到达您的服务器时,Web 服务器守护进程会查阅其配置,以确定哪个目录映射到所请求的域名。该目录称为文档根目录。在几乎所有共享主机环境以及大多数运行 cPanel 或类似控制面板的 VPS 主机配置中,该文档根目录均为 `public_html`。 在典型的 cPanel 服务器上,绝对路径如下所示: “` /home/username/public_html/ “` 放置在此目录中的任何文件都可通过您的域名公开访问。映射关系是直接的: 服务器上的文件路径 公开 URL — — `/home/user/public_html/index.html` `https://example.com/` `/home/user/public_html/about.html` `https://example.com/about.html` `/home/user/public_html/images/logo.png` `https://example.com/images/logo.png` `/home/user/public_html/blog/post-1.php` `https://example.com/blog/post-1.php` `/home/user/secret-config.php` *(位于 public_html 之外)* 无法通过浏览器访问 最后一行至关重要。放置在目录树中 `public_html` 上方的文件——直接位于 `/home/username/` 中——对 […]
A WHOIS lookup 是一种查询响应协议,用于从公开可访问的数据库中检索与域名、IP 地址或自治系统号 (ASN) 相关的注册数据。结果包括注册人身份、管理联系人、注册和到期日期、域名服务器以及注册商记录——这些对于域名管理、滥用调查和网络诊断至关重要。 对于任何系统管理员、安全研究人员或域名所有者而言,WHOIS 不仅仅是一个查询工具——它是互联网透明度基础设施的基础层。了解其在协议层面的工作原理、它公开的数据内容(以及为何部分数据现已被编辑),以及如何在不同环境中有效使用它,是任何管理面向互联网资产人员的必备知识。 WHOIS Lookup 返回哪些信息? WHOIS 查询返回的数据因注册机构、TLD(顶级域名)和注册商的隐私政策而异。在完全未编辑的记录中,您可以看到以下字段: 注册人信息 完整法定姓名或组织名称 实际邮寄地址 电子邮件地址和电话号码 注册国家 管理和技术联系人 管理和技术角色的独立联系记录 用于域名转移授权、DNS 变更验证和滥用升级 域名注册详情 创建日期:原始注册时间戳(UTC) 更新日期:记录的最后修改时间 到期日期:域名未续费时失效的日期——对抢注策略至关重要 域名服务器记录 域名的权威 DNS 服务器 即使在 GDPR 下,域名服务器数据也不会被编辑,因为它在运营上是必要的 注册商信息 管理域名的 ICANN 认证注册商(例如 GoDaddy、Namecheap、Tucows) 用于交叉参考的 IANA 注册商 ID 域名状态代码 EPP 状态代码,如 `clientTransferProhibited`、`serverHold` 或 `pendingDelete`——这些经常被忽视,但具有重要的操作意义 WHOIS 协议的工作原理:深入解析 WHOIS 通过 TCP 端口 […]
MVC(Model-View-Controller)是一种软件架构模式,将应用程序分为三个独立且相互关联的组件——Model(数据与业务逻辑)、View(展示层)和Controller(请求处理器与协调器)。这种分离使开发团队能够独立构建、测试和维护每一层,使MVC成为现代Web框架中占主导地位的结构性模式,包括Laravel、Django、Ruby on Rails和ASP.NET Core。 MVC的核心回答了一个基本的工程问题:如何防止不断增长的代码库在自身重压下崩溃?通过在数据管理、用户界面渲染和应用流程控制之间强制划定严格边界,MVC为团队提供了一套可重复、可扩展的蓝图,能够经受多年的功能迭代和团队变动。 MVC三大组件详解 Model Model是应用程序数据和业务规则的权威真实来源,完全独立于用户界面。其职责包括: 向数据库查询和持久化数据(SQL、NoSQL或ORM抽象层) 执行业务逻辑和验证规则(例如,确保订单总额不能为负数) 当内部状态发生变化时,通知观察者——通常是View或中间层 封装领域逻辑,使其能够完全独立于HTTP关注点进行测试 许多入门级解释忽略了一个关键细节:Model并不仅仅是数据库表的封装器。在设计良好的系统中,Model层包含整个应用程序中最丰富的逻辑。仅持有getter/setter属性而不执行任何操作的贫血模型是一种公认的反模式,会导致Controller臃肿。 View View是展示层。它从Model接收数据(直接接收或通过Controller,取决于框架变体),并将其渲染为终端用户可消费的格式——通常是HTML、JSON、XML或原生UI组件树。 定义良好实现的View的关键约束: 不包含任何业务逻辑 不直接查询数据库 可在不修改Model或Controller的情况下替换 可以针对同一数据以多种形式存在(例如,HTML页面、JSON API响应和PDF导出均由同一Model驱动) Controller Controller充当Model与View之间的流量调度器。当用户操作触发HTTP请求(或任何输入事件)时,Controller会: 接收并验证传入请求 调用适当的Model方法以读取或修改数据 将结果数据传递给正确的View进行渲染 将渲染后的输出返回给客户端 MVC项目中最常见的架构错误是Fat Controller反模式——因为方便而将业务逻辑堆积到Controller中。这直接破坏了使MVC有价值的关注点分离原则。Controller应该是精简的协调器,而不是业务逻辑的存储库。 MVC工作原理:请求-响应周期 理解精确的数据流对于调试和设计可测试系统至关重要。 典型HTTP表单提交的逐步流程: 用户提交表单——浏览器向某个URL发送HTTP POST请求。 路由器(通常被视为Controller层的一部分)将URL匹配到特定的Controller动作。 Controller接收请求,提取并清理输入参数。 Controller调用一个或多个Model方法——例如,`Order::create($validatedData)`。 Model执行业务逻辑,与数据库交互,并返回结果或抛出异常。 Controller将结果传递给View模板。 View渲染最终的HTML(或JSON),响应被发送回客户端。 在传统MVC实现中,此周期是同步的。在现代响应式框架中(例如,React配合服务端MVC后端),View层可能部分解耦并由异步状态更新驱动,这引入了下文讨论的MVVM和MVP变体。 MVC与相关架构模式的比较 了解MVC相对于其衍生模式的定位,对于做出明智的架构决策至关重要。 模式 全称 与MVC的主要区别 最适用场景 — — — — MVC Model-View-Controller 基础模式;Controller协调所有流程 服务端渲染Web应用、REST […]
电子邮件至今仍是企业和个人数字通信的核心支柱,然而大多数用户对其底层运作机制知之甚少。从本质上看,电子邮件投递是一个多阶段的中继过程,由一套精确的协议链条来管理——SMTP负责传输,DNS MX记录负责路由,IMAP或POP3负责接收——各环节依次执行,在数秒内将邮件从发件人客户端送达收件人收件箱。 理解这一架构绝非纯粹的学术探讨。系统管理员、开发人员以及所有负责邮件环境管理的人员,都必须掌握这些组件之间的交互方式,才能诊断投递故障、强化安全防护、正确配置服务器,并避免邮件被归入垃圾邮件文件夹。本指南涵盖完整的技术全貌,包括入门文章中普遍忽略的边缘情况与故障模式。 电子邮件基础设施的关键组件 在追踪单封邮件的完整生命周期之前,有必要先厘清所涉及的各个独立系统。每个系统都承担着不可或缺的角色,任何一个环节的配置错误都可能悄无声息地导致投递失败。 邮件客户端(MUA — 邮件用户代理) 邮件用户代理(MUA)是用户撰写、发送和阅读邮件的界面。常见示例包括Microsoft Outlook、Apple Mail、Mozilla Thunderbird,以及Gmail网页界面等基于浏览器的客户端。MUA并不直接将邮件投递给收件人,其职责是将邮件移交给邮件提交代理(MSA)——通常在端口587上运行并要求身份验证——再由MSA传递给出站SMTP服务器。 一个常见的架构误解是将MUA与SMTP服务器视为一个整体。事实并非如此。MUA是客户端,SMTP基础设施才是传输层。 邮件服务器(MTA — 邮件传输代理) 邮件传输代理(MTA)是负责在系统之间中继邮件的服务器软件。Postfix、Exim、Sendmail和Microsoft Exchange是部署最广泛的MTA。MTA可以根据事务方向,同时充当发送方和接收方。正是MTA执行DNS查询、与远程服务器建立SMTP连接,并在投递失败时将邮件加入队列以便重试。 邮件投递代理(MDA) 在简化说明中常被忽视的邮件投递代理(MDA),是负责将接收MTA已接受的邮件放入磁盘上正确用户邮箱的组件。Dovecot和Courier是常见的MDA。MDA负责执行邮箱配额限制、应用服务器端过滤规则(Sieve脚本),并将邮件写入相应的存储格式(Maildir或mbox)。 DNS与MX记录 域名系统是电子邮件的路由骨干。若没有有效的MX(邮件交换)记录,任何外部服务器都无法找到特定域名的邮件投递目标。MX记录包含优先级值——数字越小优先级越高——允许管理员配置主邮件服务器和备用邮件服务器。发送MTA查询MX记录后,在发起连接之前,还需通过A记录或AAAA记录将所得主机名解析为IP地址。 电子邮件投递流程:逐步详解 第一步:邮件撰写与提交 用户在MUA中撰写邮件,填写收件人地址、主题、正文内容及附件。附件和HTML内容使用MIME(多用途互联网邮件扩展)进行编码,将二进制数据包装为base64编码格式,以便在基于文本的SMTP上安全传输。例如,包含PDF附件的邮件会被拆分为多个MIME部分:一部分用于文本正文,另一部分用于编码后的二进制数据。 用户点击”发送”后,MUA会向出站邮件服务器建立经过身份验证的加密连接——通常使用端口587(STARTTLS)或端口465(SMTPS)。通过SASL(简单身份验证和安全层)进行身份验证,可防止未经授权的中继滥用。 第二步:SMTP握手与邮件传输 发送MTA通过正式握手发起SMTP会话: 客户端发送`EHLO`(扩展HELO),以主机名标识自身。 服务器响应其支持的功能(例如STARTTLS、AUTH、SIZE限制)。 客户端发出`MAIL FROM:<sender@domain.com>`以声明信封发件人。 客户端发出`RCPT TO:<recipient@domain.com>`以声明收件人。 客户端发送`DATA`,随后附上完整的邮件头部和正文。 会话以`QUIT`结束。 无论连接发生在客户端与提交服务器之间,还是两个MTA在互联网上中继邮件之间,这一SMTP对话流程完全相同。 第三步:DNS解析与MX查询 发送MTA在连接收件人服务器之前,必须先解析目标地址。该过程遵循严格的顺序: 查询DNS以获取收件人域名的MX记录(例如`example.com`)。 接收一条或多条MX记录,每条记录包含主机名和优先级值。 通过A记录(IPv4)或AAAA记录(IPv6)将MX主机名解析为IP地址。 优先尝试连接优先级最高(数字最小)的MX主机。 关键边缘情况:若某域名不存在MX记录,RFC 5321规定发送MTA应回退至该域名的A记录并尝试直接投递。这一行为常被配置错误的域名所利用,可能导致意外的投递路径。此外,若MX记录指向CNAME,则违反RFC 2181,可能导致严格MTA出现投递失败。 第四步:服务器间SMTP中继 IP地址解析完成后,发送MTA通过端口25与收件人MTA建立TCP连接。端口25专用于服务器间通信,ISP通常会对住宅连接封锁该端口,以防止垃圾邮件从消费者IP段发出。 在企业和云环境中,邮件在到达目的地之前可能经过多个中继跳转。每次中继都会在邮件中添加一个`Received:`头部,形成可追溯的审计记录。检查这些头部是诊断投递延迟、识别邮件被滞留或拒绝位置的主要方法。 若两端服务器均支持,此阶段将协商STARTTLS机会性加密。若接收服务器未通告STARTTLS,大多数MTA会回退至未加密传输而非拒绝投递——这是一个已知的安全弱点,MTA-STS(邮件传输代理严格传输安全)正是为此而设计,通过强制加密连接来解决这一问题。 第五步:接收、过滤与垃圾邮件评估 接收MTA接受邮件后,并不会立即将其放入用户收件箱,而是执行一系列检查: SPF(发件人策略框架):接收服务器查询发件人域名DNS中的TXT记录,该记录列出了授权的发送IP地址。若发送IP不在列表中,则SPF检查失败。 DKIM(域名密钥识别邮件):发送服务器使用私钥对邮件头部和正文进行加密签名。接收服务器从DNS中获取对应的公钥并验证签名。有效的DKIM签名可证明邮件在传输过程中未被篡改。 DMARC(基于域的邮件身份验证、报告与一致性):将SPF和DKIM整合在一起。域名所有者发布DMARC策略,规定对身份验证失败的邮件如何处理——`none`(仅监控)、`quarantine`(发送至垃圾邮件)或`reject`(丢弃邮件)。DMARC还支持汇总报告和取证报告。 […]
DNS(域名系统)是一种分层式分布式命名系统,它将人类可读的域名(如 `www.example.com`)转换为机器可读的 IP 地址(如 `192.0.2.1`)。没有 DNS,每位互联网用户都需要记住他们所访问的每个网站、API 端点或邮件服务器的数字地址。DNS 是使现代互联网能够大规模导航的协议。 DNS 的核心是一个全球分布式数据库。查询通过结构化的委托链进行解析——从顶层的根服务器,经过顶级域(TLD)服务器,再到持有特定域名实际记录的权威名称服务器。这种架构使 DNS 同时具备快速、弹性和可扩展性。 为什么 DNS 不仅仅是一本”电话簿” “电话簿”的类比是一个有用的起点,但它大大低估了 DNS 在生产环境中的实际作用。DNS 支撑着: 名称解析——将 FQDN(完全限定域名)转换为 IPv4 和 IPv6 地址 电子邮件路由——MX 记录将 SMTP 流量引导至正确的邮件基础设施 服务发现——SRV 记录允许应用程序动态定位服务(在 SIP、XMPP 和 Kubernetes 中大量使用) 流量工程——Geo-DNS 和加权路由记录实现全球负载均衡和基于延迟的故障转移 安全执行——TXT 记录承载 SPF、DKIM 和 DMARC 策略;DNSSEC 添加加密验证 CDN 编排——CNAME 扁平化和 Anycast 路由允许 CDN 透明地提供最近的边缘节点服务 对于任何管理 VPS 托管环境或独立服务器的人来说,在这个层面上理解 DNS […]
`ulimit` 命令是 Unix 和 Linux 系统上的内置 shell 工具,用于强制执行每进程和每用户的资源限制,防止任何单个进程或用户耗尽系统资源,例如 CPU 时间、内存、打开的文件描述符和进程数量。它通过 `setrlimit()` 系统调用在内核级别运行,是系统管理员进行资源管理时最直接、开销最低的机制之一。 对于任何运行生产工作负载的服务器——无论是高流量 Web 应用程序、数据库引擎还是容器化微服务栈——配置错误或缺失的 `ulimit` 设置是导致级联故障、失控进程和系统完全中断的主要原因。正确配置这些限制不是可选项,而是基础设施卫生的基本要求。 `ulimit` 的底层工作原理 当 shell 进程调用 `ulimit` 时,它会调用 POSIX 标准中定义的 `getrlimit()` 和 `setrlimit()` 系统调用。每个限制以一对值表示:软限制和硬限制。这些值存储在内核进程描述符的每个进程中,并在 `fork()` 时由子进程继承。 理解这种继承模型至关重要。如果您在 shell 会话中设置了 `ulimit` 值,则从该 shell 派生的每个进程——包括通过 init 脚本启动的守护进程——都会继承这些限制。相反,在 `/etc/security/limits.conf` 中设置的限制在 PAM 登录时生效,而非在运行时生效,这意味着它们仅对新登录会话有效,对已运行的服务无效。 软限制与硬限制 属性 软限制 硬限制 — — — 谁可以提高它 任何非特权用户(不超过硬限制) 仅 […]
