前言:
解决Ubuntu Linux系统下使用”sudo”临时提升用户权限时遇到“YourUserName不在sudoers文件中。此事将被报告”的问题。
路虽弥,不行不至;事虽小,不做不成 —《荀子·修身》
前言:
解决Ubuntu Linux系统下使用”sudo”临时提升用户权限时遇到“YourUserName不在sudoers文件中。此事将被报告”的问题。
在安装完VirtualBox的USB控制器扩展(关于在VirtualBox中安装USB控制器扩展的方法可以查看我的这篇文章:http://zhaokaifeng.com/?p=443),并且在设置里打开了“启用USB控制器”的情况下,插入USB设备(如U盘)后,启动虚拟系统,在“设备->USB”里没有找到该USB设备。
1 添加Ubuntu当前登陆用户到usbfs用户组:
1 |
sudo adduser xxx usbfs |
2 添加Ubuntu当前登陆用户到usbfs用户组:
1 |
sudo adduser xxx vboxusers |
注:系统当前登陆用户即命令提示符中 xxx@yyy 中 @ 前面的 xxx 。也可以使用 whoami 查看当前登陆用户的用户名。
3
关闭虚拟系统;
重启Ubuntu物理机;
插入U盘,启动虚拟机,发现可以连接USB设备,问题解决。
物理机操作系统:Ubuntu 17.10
(Ubuntu版本查看命令:
cat /etc/issue )
我目前使用的主力操作系统是Ubuntu,原来安装的VirtualBox是在Ubuntu的软件中心里下载的,但是无法安装 VirtualBox 5.2.8 Oracle VM VirtualBox Extension Pack 这个扩展,所以也无法在虚拟机中使用U盘。为了解决这个问题,我在这里下载了 Ubuntu 17.04 ("Zesty") / 17.10 ("Artful") 的AMD64位版本并进行了安装(安装之前只是关闭了本机正在运行的VirtualBox并没有卸载原来的VirtualBox),安装完成后又下载安装了 VirtualBox 5.2.8 Oracle VM VirtualBox Extension Pack 这个扩展并进行了安装。至此上述下载和安装步骤并没有报错,但是我在启动虚拟系统时却出现了报错(具体报错内容见下文)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
VirtualBox - Error In supR3HardenedMainInitRuntime RTR3InitEx failed with rc=-1912 (rc=-1912) The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing '/sbin/vboxconfig' may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox. where: supR3HardenedMainInitRuntime what: 4 VERR_VM_DRIVER_VERSION_MISMATCH (-1912) - The installed support driver doesn't match the version of the user. 不能为虚拟电脑 CentOS2_DHCP1 打开一个新任务. The virtual machine 'CentOS2_DHCP1' has terminated unexpectedly during startup with exit code 1 (0x1). 返回 代码: NS_ERROR_FAILURE (0x80004005) 组件: MachineWrap 界面: IMachine {85cd948e-a71f-4289-281e-0ca7ad48cd89} |
根据上述报错信息我们知道,有可能是安装新的VirtualBox之前没有卸载原来的VirtualBox导致了VirtualBox内核版本的不匹配。此时,最简单直接的解决办法就是将本机上现有的VirtualBox以及相关扩展和依赖关系都清除,然后重新安装。(我之前在Windows上使用VirtualBox时也遇到过“VirtualBox不能为虚拟电脑打开一个新任务”的报错,但是当时的报错是因为我打开了虚拟机的USB控制器,却没有安装相应的扩展。关于当时的报错内容和解决办法可以点击这里)
1 关闭VirtualBox.
2 卸载VirtualBox:
1 |
sudo apt-get autoremove virtualbox-5.2 |
注:上述操作将自动卸载VirtualBox及其相关依赖。
3 更新系统:
1 2 3 |
sudo apt-get update sudo apt-get upgrade |
4 安装VirtualBox
通过下载的.deb安装包重新安装VirtualBox
5 安装USB控制器扩展
关于USB控制器扩展VirtualBox 5.2.8 Oracle VM VirtualBox Extension Pack的作用和安装方法,可以查看我的这篇文章Click Here.
之后再次启动虚拟系统,没有出现报错,问题解决。
1 |
vi /etc/hostname |
注:由于静态主机名是系统初始化时从/etc/hostname中读取的,所以修改其中的内容为自己想要的主机名即可实现对静态主机名的修改。
之后reboot以生效。
1 |
hostname aaa |
注:aaa为新主机名。
查看主机名:
1 |
hostname |
上述命令查看主机名发现显示的主机名是 aaa ,但是命令行提示符前面的主机名并没有改变。此时如果是在纯文本界面,使用 Alt+Fn+F3 或 Alt+F3 组合键即可以新的主机名(aaa)进行登陆,如果在图形化界面中,直接打开一个新的模拟终端就可以看到新的主机名(aaa)了。
注:reboot后,该方法所做的修改失效。
hostnamectl是CentOS-7中新增的一个用于修改主机名的指令。在CentOS中有“static静态”、“transient瞬态”和“pretty灵活”三种主机名命名方式(在static和transient形式的主机名中不允许出现特殊字符和空格,而在pretty形式的主机名中则没有这些限制,pretty形式的主机名只是用于展示给终端用户。),使用hostnamectl可以很方便的修改这三种状态的主机名。
同时修改static, transient, pretty三种形式的主机名:
1 |
hostnamectl set-hostname aaa |
仅修改静态形式主机名:
1 |
hostnamectl --static set-hostname aaa |
仅修改瞬态形式主机名:
1 |
hostnamectl --transient set-hostname aaa |
仅修改灵活形式主机名:
1 |
hostnamectl --pretty set-hostname aaa |
注:使用方法三修改后需reboot以生效。