如何允许标准用户更新 VMware 的内核模块?

如何允许标准用户更新 VMware 的内核模块?

我为妻子安装了 VMWare Player。每隔一段时间(特别是在内核更新后),VMWare Player 就需要编译到内核中。

我的配偶没有激活 su-(如果有人搞砸了操作系统,我会)。我想允许她这样做,但仅限于那个程序。

这可能吗? 可以安全地完成吗(对于操作系统而言)? 如何完成?

编辑:我尝试将以下内容添加到 visudo

guijunkette ALL=(全部) NOPASSWD: /usr/bin/vmware-modconfig

当以她的用户身份运行时,输入密码后出现以下错误: 错误

因此,到最后,还是没有成功。

编辑:我已放弃 VMWare Player 并转而使用 VirtualBox。进行了全新安装。

答案1

笔记:如果你希望 VMWare Player 自动执行更新,我认为通过 是不可能的sudoers;这是因为VMWare 使用其自己的图形化 sudo 前端检查用户是否具有不受限制的 sudo 权限……

跟踪显示,当您启动 VMWare Player 并检测到新内核时,GUI 更新被调用的方式如下:

/usr/lib/vmware/bin/vmware-gksu--sudo-mode --message=请输入您的密码以继续。'/usr/bin/vmware-modconfig' --icon='vmware-player' --appname='VMware' --gcc='/usr/bin/gcc' --headers='/lib/modules/3.2.0-27-generic/build/include'  

正如您已经尝试过的,即使简单的添加也/usr/bin/vmware-modconfig不起作用。

我们假设您配偶的用户名是吉夫凯特。管理 VMWare 内核模块的脚本是/usr/bin/vmware-modconfig;根据上述说明,最好从终端明确调用它;为了让你妻子的生活更轻松,我提供了一个桌面快捷方式,这样她甚至不需要打开终端。

  1. sudo visudo
  2. 在第 25 行左右,在 行下方%sudo ALL=(ALL:ALL) ALL插入:

    guijunkette  ALL=(ALL) NOPASSWD: /usr/bin/vmware-modconfig --console --install-all
    
  3. 退出编辑器

重建模块后,她现在可以sudo vmware-modconfig --console --install-all无需输入密码即可运行。

桌面快捷方式

您可以做的是,在您妻子的文件夹中创建以下桌面文件~/Desktop,并且每当 VMWare Player 闪烁“您必须...”消息时,让她单击取消,运行此快捷方式,然后再次启动 VMware Player(成功):

[桌面条目]
名称=更新 VMWare 模块
GenericName=VMWare 更新程序
注释=更新 VMWare 模块以适应新内核(控制台模式)
执行=sudo vmware-modconfig --console --install-all
终端=true
图标=/usr/lib/vmware/share/icons/hicolor/48x48/actions/vm-upload.png
类型=应用程序
StartupNotify=true

将其粘贴到例如中/home/guijunkette/Desktop/vmwareupdater.desktop,并记住chmod +x它。

这是一个演示:

在此处输入图片描述

相关内容