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