虚拟机VBox安装Ubuntu Xenial 记录

前一阵子,重新弄了个虚拟机跑Ubuntu,想想还是记录一下过程,以备下次需要。
Ubuntu选用的是64位的桌面系统xenial,这样要比服务器版本省下不少安装时间,尤其是下载时间。虚拟机是virtualbox6.1,最新版本的。
安装好重启后,就可以安装增强功能了。在vbox的"设备"下拉菜单表中,选中最后一个即可。然后在左侧的图标区选中最后出现的光盘,点击运行,并且输入密码即可。但这时还无法看见共享文件夹,原因是虚拟机普通用户是没有访问权限的,要在终端输入
sudo usermod  -G vboxsf -a  <登录的用户名> 
然后reboot重启,就可以访问共享文件夹了 
但我输入的时候,可能少输入了-a,造成当前登录用户无法使用sudo,提示说当前用户不在sudoers文件中。而桌面版本安装后默认root不能登陆系统,密码也是随机生成,其他用户使用root权限,可以使用sudo提权,前提是该用户在/etc/sudoers配置列表中。root密码没有修改过,这样想修改/etc/sudoers也不可能了,进入了一个死循环。
不过好在天无绝人之路,可以如下面的方法解决:
1.重启按shift键,进入Ubuntu高级模式,选择一个recovery mode进入,出现一个9个选项的菜单,如果是安装时语言是中文可能出现乱码,不过不影响操作。
 可以参考 https://blog.csdn.net/u012725714/article/details/38897493 "Ubuntu的recovery模式进入及退出"
2.菜单分别是:resume恢复正常启动;clean清理磁盘释放空间;dpkg修复损坏软件包;fsck磁盘修复;grub更新引导程序;network开启网络;root进入root的shell。
这里先选择fsck选择左边按钮yes进入读写模式,接着回车后返回选择root进入才可以修改文件,在root的shell中可以修改root密码,将需要sudo提权的用户名加入sudo组中
$passwd root 
$usrmod -G sudo <登录的用户名>  

其实打开/etc/sudoers文件,也可以看到sudo用户组允许sudo提权,把用户加入sudo组就可以执行sudo命令了,这里需要注意修改用户组后需要重启才能生效。
# User privilege specification
root    ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of groupsudo to execute any command
%sudo  ALL=(ALL:ALL) ALL
上面 root 表示用户、%admin 表示 admin 用户组下的所有用户(%+名表示给用户组设置权限),%sudo 表示sudo组下的所有用户
上面各行第一个ALL:多个系统之间部署 sudo 环境时,该ALL代表所有主机。也可以换成相应的主机名,表示改规则只适用主机名对应的系统
括号里面的(ALL)/(ALL1:ALL2):指出规定的 user/ALL1(默认是所有用户) 用户能够以何种身份(即归属于哪个组ALL2,默认是所有组)来执行命令。通常该ALL表示user用户能够以任何用户的身份执行命令。
最后一个ALL:表示能执行"命令表",ALL表示用户能够执行系统中的所有命令。
可以参考一下一个受限制的示例是:
%mailadmin   snow,rain=(root) /usr/sbin/postfix, /usr/sbin/postsuper, /usr/bin/doveadm
这个是组mailadmin的用户需要提高权限到root用户,就可以登录snow和rain两台服务器,在主机上可以进入/usr目录下的两个子目录,去操作里面的程序postfix,postsuper,doveadm。
nobody       ALL(/localhost)=(root) NOPASSWD: /usr/sbin/rndc reload
这个是用户nobody可以在任何主机上或本机,以root身份权限执行rndc reload,而且无需输入密码
%accounts ALL=(root) /usr/sbin/useradd,/usr/sbin/userdel, /usr/sbin/usermod
组accouts的成员可以在任何主机上,以root权限操作useradd,userdel,usermod命令
  
其实还有一种更为简便的方法来修改sudoers文件(参考 https://blog.csdn.net/anqixiang/article/details/105220403 ),当然前提是登录用户拥有root权限。
echo "me localhost=(root)  NOPASSWD:/usr/sbin/usermod,/usr/sbin/adduser,/usr/sbin/deluser" >> /etc/sudoers

解决了vboxsf组的问题,也就解决了共享文件夹和宿主和虚拟机双向复制粘贴问题,现在开始解决Ubuntu预装软件问题,这个参考 https://www.jianshu.com/p/67a86505279f 和 https://blog.csdn.net/Perfect_Accepted/article/details/82012743 。
 
 

你可能感兴趣的:(Linux基础,linux)