属于多个用户组的用户ssh登陆仅显示主用户组问题
ssh远程登陆后只显示用户主用户组
在远程host主机上运行docker容器,容器中应用程序都是用admin
用户运行,并且通过Docker volume方式将容器中数据共享存储到host主机的volume中。
在host主机创建admin
用户账号,uid
和gid
和容器中admin
用户相同,目的是在host主机上能够直接通过/var/lib/docker/volumes
来访问各个容器中的共享数据,方便备份、开发和数据同步。
由于Docker的目录安全要求,/var/lib/docker
子目录只对root用户可读写。通过以下命令适当放宽给root
用户组:
然后将host主机上admin
用户添加到root
分组
此时host主机上root用户切换到admin
用户身份可以验证admin
用户已经属于root
用户组:
但是,远程ssh以admin
用户身份登陆,却发现admin
用户的id
是不同的,这显示主用户组groups=505(admin)
:
Linux系统uid和gid范围
在现代的Red Hat Linux系统,创建用户账号时候,会限制uid
和gid
为1000
及以上。而以前的Red Hat Linux系统,则uid
和gid
从500
开始。由于历史原因,所以容器中admin
用户的uid
和gid
都采用了505
。
操作系统限制uid
和gid
范围是在/etc/login.defs
中定义的
将上述UID_MIN
和GID_MIN
更改成500
之后,就可以重新创建uid
和gid
为505
的admin
账号
然后再使用ssh远程登陆admin
账号,则恢复正常的goups
参考
Last updated
Was this helpful?