我是一名 Web 开发人员,我需要在我的服务器上运行一些第三方程序。由于这些程序第三者而且我并不总是 100% 确信它们的可靠性,我会以特定权限运行这些程序。由于这些程序需要将文件写入磁盘,因此我想设置权限以拒绝访问整个硬盘(我甚至不想只读),除了这些程序将写入的一个目录。我认为实现此目的的最简单方法是:
- 创建“第三方”组
- 创建用户“第三方用户”
- 拒绝“第三方”组访问整个硬盘(即使不是只读)
- 允许读写
/var/example/thirdparties
- 将“第三方用户”设置为我必须运行的程序的所有者
- 在“第三方用户”下编写一个 cronjob 来在启动时启动程序(类似于
@reboot sh /var/example/thirdparties/run-all-thirdparties-programs.sh
)
我的问题是..从技术角度来说,我如何创建这些组/用户并设置权限?如果我运行特定用户拥有的程序,该程序是否会从其所有者组/用户继承权限? 我对 Ubuntu Server 还很陌生。
另外...如果有人有更好的想法来实现我的目标,我会洗耳恭听 :) 谢谢
答案1
Linux 中的标准权限系统不能很好地支持您描述的用例(例如“拒绝访问整个硬盘”)。更好的方法是尝试使用chroot
或docker
,以确保程序在与主系统隔离的环境中运行。