限制用户只能使用特定的 Linux 命令

限制用户只能使用特定的 Linux 命令

所以我想创建一个特殊的系统管理用户,只能安装、更新和删除包,但不想让他们sudo直接使用命令。举例来说,在像 Ubuntu 或 Linux Mint 这样的基于 Debian 的系统上,您可以使用命令apt进行安装,只需输入用户密码,这将暂时提升该用户安装、删除和更新软件包的权限,而一开始apt-get就需要这样做sudo,这就是我想避免用户使用的。

例如,您不希望他们使用这个;

$ sudo apt-get <flag> <package>

但你希望他们用这个来代替;

$ apt <flag> <package>

我知道有一种特定的方法可以向某些命令轮授予权限,而不授予指定命令的完全使用权,但我不确定如何为像这样的个人用户情况进行设置。

答案1

您可以/etc/sudoers使用修改文件visudo并实现此目标。

您可以使用 sudo 指定允许的命令,不必允许无限制的访问,例如

username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude

这将允许用户名运行sudo apt-getsudo aptitude无需任何密码,但不允许任何其他命令。

这个问题已经在以下链接中得到了回答: 允许非管理员用户通过 apt 或 rpm 安装软件包吗?

请注意,被授权的用户能够使用 sudo 运行的唯一命令是明确提到的命令,就像在上面的场景中,用户只能使用 sudo 除了 apt 或 aptitude 之外什么都不用。

相关内容