免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 45658 | 回复: 10
打印 上一主题 下一主题

菜鸟求助!关于useradd -g 和-G的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-10 22:44 |只看该作者 |倒序浏览
man useradd -g 和-G的解释:

-g: initial_group
              group 名 称 或 以 数 字 来 做 为 使 用 者 登 入 起 始 群 组 (group) 。群 组 名 须 为 现 有 存 在 的   名
              称 。群 组 数 字 也 须 为 现 有 存 在 的 群 组 。预 设 的 群 组 数 字 为 1 。
-G:group,[...]
              定   义 此 使 用 者 为 此 一 堆 groups 的 成 员 。每 个 群 组 使 用 "," 区 格 开 来 , 不 可 以 夹 杂 空
              白 字 元 。
               群 组 名 同 -g 选 项 的 限 制 。定 义 值 为 使用 者 的 起 始 群 组 。

------分割线------

现在root新建一用户testuser ,同时属于mysq、ftp组,起始目录有/home/testuser
useradd -g mysql -G ftp -d /home/testuser testuser

请问:
1. 对于testuser,请问-g 、-G有何区别?

2. testuser 用户建立后。cat /etc/group | grep testuser只发现ftp组中有testuser(-g ftp -G mysql,也只能在mysql中看到testuser,也就是说-g的组里面我看不见testuser用户)。通过id testuser可看见其所属组:uid=504(testuser) gid=101(mysql) groups=101(mysql),50(ftp)--- 请问,为什么-g 组中看不到testuser ?

3.因为我在cat /etc/group 看不到testuser,请问如果要在mysql组中,如何删除testuser?

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
2 [报告]
发表于 2009-12-11 00:22 |只看该作者
-g 用户所属组,-G 用户附加组

论坛徽章:
0
3 [报告]
发表于 2009-12-11 21:28 |只看该作者
原帖由 beyondfly 于 2009-12-11 00:22 发表
-g 用户所属组,-G 用户附加组



谢谢,这个俺知道,我不明白的是俺第2问和第3问。

论坛徽章:
0
4 [报告]
发表于 2009-12-11 21:55 |只看该作者
原帖由 文本文件 于 2009-12-11 21:28 发表



谢谢,这个俺知道,我不明白的是俺第2问和第3问。


我猜想是不是这样:
系统里面有个FTP这个组,但是好像没有mysql这个组,那你


  1. [root@foo ~]# useradd -g mysql -G ftp -d /home/testuser testuser

复制代码


会不会系统默认给你放到了FTP这个组了。。。。

论坛徽章:
0
5 [报告]
发表于 2009-12-11 22:04 |只看该作者
原帖由 文本文件 于 2009-12-10 22:44 发表
man useradd -g 和-G的解释:

-g: initial_group
              group 名 称 或 以 数 字 来 做 为 使 用 者 登 入 起 始 群 组 (group) 。群 组 名 须 为 现 有 存 在 的   名
              称 。群 组 ...



看看这个:
上面说“ -g   ....The  group name must exist.“

2009-12-11-215759_692x182_scrot.png (70.94 KB, 下载次数: 53)

2009-12-11-215759_692x182_scrot.png

论坛徽章:
0
6 [报告]
发表于 2009-12-11 23:53 |只看该作者
-g: 群组名须为现有存在的名称 。如果你没有这个组名,可能就没效

论坛徽章:
0
7 [报告]
发表于 2009-12-12 00:54 |只看该作者

回复 #1 文本文件 的帖子

对于第2个问题,*nix的实现机制应该是:
-g 设置的是用户的primary group。 这些信息记录在/etc/passwd中。事实上系统确认一个用户的primary group的时候是根据/etc/passwd,而跟/etc/group无关。 因此,"useradd -g"仅仅修改/etc/passwd,而不会修改/etc/group。同理,"usermod -g"一样。

这样其中一个好处在于,当"usermod -g"切换到一个临时组,然后再切换回来的时候,不会把临时组的信息“遗留”在该用户设置中(即该用户已不在临时组中---如果原来附属组中没有那个临时组的话)。


对于第3个问题,假设用户信息如下:
uid=504(testuser) gid=101(mysql) groups=101(mysql),50(ftp)

如果用户是以LZ的方法建立,以下命令可以将testuser从mysql组中删除。
usermod -g ftp testuser

论坛徽章:
0
8 [报告]
发表于 2009-12-12 01:01 |只看该作者
如果当testuser 的primary group(中文名怎样称呼好点?基本组?主组?)不是mysql时仍需要testuser属于mysql组中,在创建用户时或许用以下方法更合适:

useradd -g mysql -G mysql,ftp testuser

加"-G"参数会把修改记录在/etc/group。所以即使切换为另外一个primary group,mysql仍在附属组中。

论坛徽章:
0
9 [报告]
发表于 2009-12-13 20:45 |只看该作者
谢谢jiannma! 谢谢vvmao 和sysulzh !


现在明白了。
一个用户只能且必须属于一个g,可以属于多个G。 用户testuser 同时用户所属g和G的权限。

招聘 : 技术支持/维
论坛徽章:
0
10 [报告]
发表于 2010-01-10 13:00 |只看该作者

回复 #2 beyondfly 的帖子

正解
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP