为什么服务器要以root身份启动,不能以root身份运行
为什么要以 root 启动?
绑定低编号端口(如 80、443)。
配置共享内存、设备文件、调整资源等需要的高权限操作。
为什么不能以 root 运行?
潜在漏洞可能导致系统被完全攻破。
不符合最小权限原则。
服务隔离无法实现,其他服务可能受到影响。
意外操作可能导致灾难性的后果。
如何解决这个问题?
启动时以 root 完成特权操作,然后立刻降级为普通用户运行。
使用 setuid() 和 setgid() 等 Linux 用户管理接口实现特权降级。