起因是这样:
本来是想体验一下acl,创建了两个用户,一个用户组,并把原来的用户一起加入到这个用户组里
$ usermod +G acluser jck <= 没有加-a
悲剧就此发生了,usermod如果不加-a,是会把原来的附加组信息都擦掉重写的
原来jck的附加组里面有samba,sudo等一系列用户组,都没有了,只有jck和acluser了
而且ubuntu默认是不设置root密码的,至此,root权限和这台机器说拜拜了
解决办法:
1.按照网上所说可以进recovery模式,不需要root密码即可获得root权限的shell,然后可以设置密码
走一个:
重启后(因为没有root权限,所以是暴利的...),在grub选项(“如果GRUB菜单隐藏,可以按Esc调出,如果设置了GRUB密码,按p来解锁”,据说啊据说)选择recovery mode,一般会是第二个,然后就出现上图的内容,选择root......那一项,会看到地下黑框框里的内容,输入密码或者按Ctrl+D。
到这里你会发现不行的(至少我是这样),我没有root密码,Ctrl+D会返回到刚进入这个界面的情况...
难道改版本了?真是太不科学了,我放弃了这个方法。
2.修改grub启动项的内容,进入单人维护模式
重启,看到grub选项时,在正常进系统那个选项(通常是第一个)按“e”编辑,会看到如下内容,我的是这样的
在光标所在一行(linux...那一行)添加如下内容
ro quiet splash rw single init=/bin/bash
将会变成下面这样
然后Ctrl+x启动,两三秒中就会进入到一个root权限的shell里了,图我忘了截了
然后你可以为所欲为,当然这里给root加个密码就得了
# passwd root
设置完密码系统会有提示,重启(命令都是不好用的,直接Ctrl+Alt+DEL)
进入系统后,切换到root,找到这个文件“/etc/sudoers”,查看一下权限内容
# ll /etc/sudoers -r--r----- 1 root root 745 Jan 17 17:03 /etc/sudoers
你懂得,把他改成可写的
# chmod 640 /etc/sudoers # ll /etc/sudoers -rw-r----- 1 root root 745 Jan 17 17:03 /etc/sudoers
打开,找到“root ALL=(ALL:ALL) ALL”,在下面添一行一模一样的,用户名换成你的
root ALL=(ALL:ALL) ALL
cec ALL=(ALL:ALL) ALL
保存退出,然后再把权限改回来就成了,在把root密码注释掉,我的系统就变成原来的样子了
但是sudo的用户组好想还没加进来呀...不管了 :-)