Ric*_*ano 4 updates aptitude security sudo
我想设计一个 sudo 规则,允许用户ricardo使用 更新系统aptitude,但阻止他使用 sudo 运行任何其他命令(他是一个问题用户)。我遗漏了这条规则有什么缺陷吗?
ricardo ALL=(root) /usr/bin/aptitude
Run Code Online (Sandbox Code Playgroud)
Ricardo 只使用aptitude,不使用apt-get。另外,我目前没有在任何地方安装 Ubuntu,所以我知道这/usr/bin/aptitude可能不是允许的完全正确的文件。
如果这条规则存在缺陷,我该如何改进它?
此命令将限制用户aptitude除了更新存储库缓存和执行系统的安全升级之外的任何其他操作。
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade
Run Code Online (Sandbox Code Playgroud)
类似的命令将允许用户执行完整升级,但仅此而已:
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade
Run Code Online (Sandbox Code Playgroud)
根据aptitude 的文档 (10.04),safe-upgrade:
将已安装的软件包升级到最新版本。除非未使用,否则不会删除已安装的软件包
相比之下,full-upgrade:
将已安装的软件包升级到最新版本,根据需要删除或安装软件包。此命令不如 safe-upgrade 保守,因此更有可能执行不需要的操作。但是,它能够升级安全升级无法升级的软件包。
使用您的最佳判断应该允许用户运行。如果您不确定,请使用第一个规则,它只允许safe-upgrade.
请注意,如果您想允许用户安装软件包(这大大降低了安全性的任何好处,但假设是这样),您需要*在aptitude命令后包含一个,即
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *
Run Code Online (Sandbox Code Playgroud)
否则,您将收到一条错误消息,提示用户ricardo不允许运行该命令/usr/bin/aptitude install <package_name>。
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |