让linux用户隶属于多个组

让linux用户隶属于多个组

使用usermod

#以下语句都是相同作用:给用户「laowang」设置一个附加组「www」,反向理解,就是把用户laowang加入到www组中
usermod -G www laowang
usermod -a -G www laowang
usermod -aG www laowang

#注意如果你当前不是root用户,则要在命令前添加sudo,如:
sudo usermod -G www laowang

如图,-g/-G/-a都写清楚了,这里翻译一下

  • -g 强制使用给定的「GROUP」作为新的「主要组」
  • -G「附加组」的新名单
  • -a 添加用户到附加组
    Xnip2018-09-01_23-41-06.png

下图为使用实例,用户「langwang」最初只有一个组,叫「laowang」,组id为 1005:
Xnip2018-09-02_00-02-27.png

  • 第3行「usermod -G www laowang」,其中www是用户组,laowang是用户名,意思是把www组加入到laowang的所属组列表中,而且是作为「附加组」(英文supplementary group),与「附加组」对应的是「主要组」(英文primary group),注意「附加组」和「主要组」是有前后关系的,「主要组」在第一位,「附加组」在组要组的后面,所以这里「www」组排在「laowang」组的后面。
  • 第6行,「usermod -g laowang laowang」,第一个laowang是组名,第二个laowang是用户名,前面说了-g的意思是强制使用给定的「GROUP」作为新的「主要组」,而不是网上很多人所说的「覆盖」,所以这个命令执行后,并没有「覆盖」原来的组,而是提示no changes,没有变化,为什么呢?因为「laowang」组已经是用户「laowang」的「主要组」了,所以就没有变化。
  • 第7行,「usermod -g www laowang」根据上面所说,这句的意思是:强制把组www作为用户laowang的主要组,根据第9行显示,执行这句以后,www确实已经成为用户「laowang」的主要组,并且,原来的「laowang」这个组已经没有了,这里就体现出了网上很多人据说的-g是「覆盖」的意思。
  • 另外说说「-a」,我单独执行了「usermod -a laowang laowang」,报错,说明-a不能单独用,另外我又试了「usermod -aG laowang laowang」或者「usermod -a -G laowang laowang」,「laowang」这个组又重新被添加为用户「laowang」的「附加组」了,所以其实-a是跟-G一起用的,-a表示添加(a:append),那为什么单独使用-G也可以添加呢?这个我确实不清楚,我猜是系统哪里设置了单独使用-G相当于默认添加了-a吧。

使用gpasswd

把laowang加入到www组中(-a:append),反过来说,就是给用户laowang添加一个附加组www

sudo gpasswd -a laowang www

查询用户属于哪些组(在哪些组中)

id laowang

把laowang从www组中移除(-d:delete)

sudo gpasswd -d laowang www
打赏

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

让linux用户隶属于多个组