HTTP服务器server程序-u参数分析—StateThreads示例程序介绍

本文主要介绍 HTTP服务器 server 程序的一些常用选项,以及它是如何实现的。

1, -u 指定进程所属的用户

server 程序可以通过 -u 选项指定进程所属的用户,命令如下:

bash 复制代码
sudo ./server -u nobody -l ./log -p 5 -b 192.168.0.109:8888

ps -aux | grep server

可以看到,server 进程的用户都变成了 nobody,把 HTTP 的进程设置为低权限的用户 nobody 在生产环境可以提供安全性。

-u 参数的功能其实是通过 change_user() 函数实现的,这个函数挺精简的,有需要可以拿出来用。

scss 复制代码
static void change_user(void) {
    struct passwd *pw;

    if ((pw = getpwnam(username)) == NULL)
        err_quit(errfd, "ERROR: can't find user '%s': getpwnam failed", username);

    if (setgid(pw->pw_gid) < 0)
        err_sys_quit(errfd, "ERROR: can't change group id: setgid");
    if (setuid(pw->pw_uid) < 0)
        err_sys_quit(errfd, "ERROR: can't change user id: setuid");

    err_report(errfd, "INFO: changed process user id to '%s'", username);
}

本文是《 SRS原理 》一书中的文章,如需观看更多内容,请购买本书。

相关推荐
音视频牛哥4 天前
人形机器人的未来发展趋势是什么?从VLA、实时视觉到规模化运营
机器学习·机器人·音视频开发
霍营_托尼5 天前
纯前端播 40GB 本地视频?我把浏览器改造成了「磁盘流式」播放器
前端·javascript·音视频开发
花椒技术17 天前
2.46 秒生成 5 秒视频:拆解 H3 Max 的模型、推理栈与硬件协同
算法·音视频开发·视频编码
代码小学僧23 天前
从 0 到 1,记录我的第一个出海 SaaS 独立开发项目
前端·rpc·音视频开发
贾伟康24 天前
【HarmonyOS 7新能力|041】弱网直播优化工程封装:把接入逻辑放进可维护的分层结构
性能优化·harmonyos·arkts·音视频开发·直播
用户38034165882971 个月前
Broadcast Extension 里的 Live Activity:一次跨进程妥协
ios·音视频开发
用户38034165882971 个月前
macOS 录屏:ScreenCaptureKit 与 iOS 的分野,共用引擎的抽象层该切在哪
ios·音视频开发
用户38034165882971 个月前
FFmpeg 在 iOS 上的裁剪、集成与包体控制
ios·音视频开发
花椒技术1 个月前
把 AI 视频接进直播:提前生成、按次生成、持续生成怎么选?
agent·音视频开发
老孙讲技术1 个月前
把连锁门店轮询抓拍和遮挡叫醒接进督导台-setDeviceSnapEnhanced与setMessageCallback
后端·物联网·音视频开发