ubuntu16.04下无法登录或循环登录的解决方法

版权声明:本博客所有的原创文章,转载请注明出处,作者皆保留版权。 https://blog.csdn.net/anLA_/article/details/79940642

好吧,混了一回标题党。
这些天没事,开始学习docker。本身系统是ubuntu16.04。所以就直接开始了。
从docker官网获取安装:https://docs.docker.com/install/linux/docker-ce/ubuntu/

问题起因

由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作。
docker 需要用户具有 sudo 权限,为了避免每次命令都输入sudo,所以我们需要把本机当前用户加到docker用户组里面。
由于是粗心,从网上找到一篇,就把下面这句执行了:

sudo 循环登录 -aG docker $USER

然后呢,我发现好像并没有什么用诶,我也没在意,然后继续加上sudo进行docker打包镜像了。
后来,偶尔发现当前用户下面好多文件夹我都没有权限了
???
然后下载一个文件,都不能存了??

后来就打算重启看看,重启登录界面就进入了死循环,如标题:循环登录

还好是linux,还好我有root。

问题原因

然后在grub处进入了recovery模式,后来也前思后想,应该是那句写的有问题,才导致这样问题的。
但是那句本身没有错,因为我最开始没有加docker这个组。
后面一看,/home/xxx权限,全部被改为docker用户组的了。
通过查看/etc/passwd,/etc/group,/etc/shadow,了解到,
当前用户xxx确实被加入到了docker下面,但是就是/home/xxx下面权限都属于docker了。

解决方法

更改/home/xxx下面所有文件的uid和gid。
chgrp 组名 文件名 -R
chown 用户名 文件名 -R
-R标识递归目录下所有文件

后记

开始遇到这个问题比较懵,网上看同样标题的博客,有说卸载全部驱动重装的,有说全部删除某个特定文件的各种。。
不过还是具体问题具体分析吧,linux开源,老大root帐号密码我都有,还愁不能解决吗哈哈哈。

那么当输入用户帐号登录时,系统帮你处理了什么呢?
1. 先找寻/etc/passwd 里面,是否有你输入的帐号,如果没有则跳出。如果有的花,去/etc/group中把相应的uid和gid读出来,并且把该帐号的主文件夹与shell设置也一并读出。
2. 核对密码表,去/etc/shadow 里面找出对应帐号与uid,核对你刚刚输入的密码。
3. 如果都ok,那就进入shell1控管的阶段了。

猜你喜欢

转载自blog.csdn.net/anLA_/article/details/79940642