验证一个 App 的效果时,没用真机,选择了好久未用的 AVD,提示我 KVM is required to run this AVD. /dev/kvm permission denied. 对这个显而易见的权限问题,StackOverflow 上有不少解决方式,最粗暴的是 chmod 777 /dev/kvm,还有不少人选择了 chown -R $USER /dev/kvm;另一个看起来温和,但是其实并不会有效果的方式是,把当前用户添加到 /dev/kvm 的属组中,给出的是名为 kvm 的组,三太爷在自己的系统上查看,并没有这个组,/dev/kvm 的属主是 root:root。
其实真正恰当的做法是:
1 |
sudo setfacl -m u:$USER:rwx /dev/kvm |
它确保只是让用户对该文件有访问权限,而不会有不必要的额外影响。那种 777 的方式显然会带来未知的隐患,因为它授予所有人所有的权限,而修改属主则会导致系统内的其他用户可能无法正常访问它。上述命令在我的终端里执行时报错,setfacl: Option -m: Invalid argument near character 3。看起来是 $ 的位置,也就是说,没有展开环境变量,直接把用户名代入执行即可。