Ubuntu进程权限设置怎样做
导读:Ubuntu 进程权限设置实操指南 一 基础认知 每个进程都以某个用户:组身份运行,权限由该身份决定;查看进程身份可用:ps -p -o user,group。 进程能访问的资源受可执行文件与配置文件的文件权限约束,可用:ls -l、c...
Ubuntu 进程权限设置实操指南
一 基础认知
- 每个进程都以某个用户:组身份运行,权限由该身份决定;查看进程身份可用:ps -p -o user,group。
- 进程能访问的资源受可执行文件与配置文件的文件权限约束,可用:ls -l、chmod、chown、getfacl/setfacl 管理。
- Ubuntu 默认启用 AppArmor 提供强制访问控制,可用:sudo aa-status 查看状态。
- 提升权限常用 sudo;如需细粒度授权,使用 sudo visudo 安全地编辑 /etc/sudoers。
- 涉及特权操作前,建议先查看系统日志:/var/log/syslog、/var/log/auth.log。
二 常见场景与做法
- 以更高权限启动进程
- 临时提升:在命令前加 sudo your_command。
- 长期以特定用户运行:在 systemd 服务中设置 User=、Group=,例如:
[Service] User=appuser Group=appgroup ExecStart=/usr/bin/your_app
- 调整可执行文件与资源文件的权限
- 基本权限:chmod 755 script.sh(所有者 rwx,组和其他 rx)。
- 精细授权:setfacl -m u:alice:rw /path/file;查看:getfacl /path/file。
- 使用特殊权限位(谨慎)
- setuid:文件执行时以文件所有者身份运行,如:sudo chmod 4755 /usr/local/bin/tool(设置后属主应为 root)。
- setgid:文件执行时以文件所属组身份运行,如:sudo chmod 2755 /usr/local/bin/tool。
- 通过 sudoers 精细授权
- 安全编辑:sudo visudo。
- 示例:允许用户 bob 无需密码执行特定命令:bob ALL=(ALL) NOPASSWD: /usr/bin/backup.sh。
- 使用 AppArmor 限制进程
- 查看状态:sudo aa-status。
- 为应用编写或调整策略(位于 /etc/apparmor.d/),然后加载并启用,以限制其对文件、网络、能力等资源的访问。
三 快速排查权限问题
- 确认进程身份:ps -p -o user,group,cmd。
- 检查可执行文件与关键配置文件的权限与属主:ls -l /path/to/exec /path/to/config。
- 查看是否受访问控制影响:getfacl /path;若启用 AppArmor,检查 aa-status 与对应 profile 日志。
- 查看系统日志定位拒绝原因:sudo tail -n 50 /var/log/syslog、sudo tail -n 50 /var/log/auth.log。
四 安全建议
- 遵循最小权限原则:能用普通用户就不用 root;服务尽量用专用系统用户运行。
- 谨慎使用 setuid/setgid:仅在确有必要时使用,并确保可执行文件属主为 root 且不可被普通用户改写。
- 优先用 sudoers + 白名单命令 替代 root 登录;用 visudo 编辑,避免语法错误导致系统不可用。
- 启用并维护 AppArmor 策略,限制进程对敏感路径与能力的访问。
- 对共享目录与敏感文件使用 ACL 进行细粒度授权,避免过度放宽全局权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu进程权限设置怎样做
本文地址: https://pptw.com/jishu/754894.html
