如何让非 sudoer 访问内核模块特殊设备文件?

如何让非 sudoer 访问内核模块特殊设备文件?

如果用户不是 sudoer,是否可以访问内核模块?

我尝试以非 sudoer 身份访问 KVM(内核模块),但收到错误:

Could not access KVM kernel module: Permission denied.

有什么方法可以让所有用户(非 sudo 用户)都可以访问这个模块?

答案1

设置内核模块访问权限的一般方法是将文件添加到/etc/udev/rules.d。例如,您可以创建一个/etc/udev/rules.d/99-kvm.rules包含以下文本的文件:

KERNEL=="kvm", GROUP="kvm-users"

答案2

Ubuntu 18.04 升级

具体来说/dev/kvm,使用以下命令将用户添加到kvm组中:

sudo usermod -a -G kvm $USER

并重新启动计算机,问题就解决了。

-enable-kvm当我传递给时,我收到了该错误消息qemu-system-x86_64

我如何发现:如果我们这样做:

ls -al /dev/kvm

它给:

crw-rw---- 1 root kvm 10, 232 May 12 07:53 /dev/kvm

和:

id -a

给出:

uid=1000(ciro) gid=1000(ciro) groups=1000(ciro),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

未包含该kvm组。

也许之前通过 udev 规则授予访问权限,但后来他们转移到了组机制?https://bugzilla.redhat.com/show_bug.cgi?id=1479558#c3

是的,我们在 rawhide 包中删除了 kvm udev 规则,因为 rawhide systemd 现在提供这些规则。但是看起来您在 f26 上使用 virt-preview repo,所以现在没有任何内容将 /dev/kvm 权限设置为 666 和 group=kvm

kvm在升级期间似乎可以将用户添加到组中:如何仅在第一次安装包和升级期间运行脚本?但也许是因为安全问题而没有这样做?

相关内容