海牛部落 Linux 系列教程:(5) 用户与用户组管理

教程 青牛 ⋅ 于 2017-09-22 15:19:33 ⋅ 最后回复由 wdy 2022-05-19 20:50:18 ⋅ 17309 阅读

1 Linux 的账号与群组

1.1 使用者标识符:UID 与 GID
虽然我们登入 Linux 主机的时候,输入的是我们的账号,但是其实 Linux 主机不会直接认识你的账号名称,他仅认识 ID。而你的 ID 与账号的对应就在 /etc/passwd 当中。
每个登入的使用者都会有两个ID,即UID 和 GID
UID:
用户标识号(User ID),是一个整数,系统内部用它来标识用户。
0是系统管理员账号,1-499是系统保留账号,500+即一般账号。useradd 命名默认生成UID=1000。
GID:用户组标识号(Group ID),是一个整数,系统内部用它来标识用户组。
1.2 与用户相关的配置文件
1.2.1 /etc/passwd
用户(user)的配置文件,存放账户信息;

file

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
  用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

用户名:
是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。
口令:
一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
用户标识号:UID
组标识号:GID
注释性描述:
字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。
主目录:
也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
登录Shell:
用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。
1.2.2 /etc/shadow
用户(user)影子口令文件,存放账户密码相关信息。该文件的权限必须设置为:400 或者600,即:Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件。

file

每行内容按:分隔。
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

登录名:
是与/etc/passwd文件中的登录名相一致的用户账号
口令:
存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;
星号代表帐号被锁定;
双叹号表示这个密码已经过期了。
$6$开头的,表明是用SHA-512加密的,
$1$ 表明是用MD5加密的
$2$ 是用Blowfish加密的
$5$ 是用 SHA-256加密的。

最后一次修改时间:

回复帖子,然后刷新页面即可查看隐藏内容

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-青牛,http://hainiubl.com/topics/170
回复数量: 79
  • a670117585
    2018-03-22 10:24:44

    学习

  • 良记
    2018-04-09 11:17:01

    学习学习

  • songyahui
    2018-04-20 20:00:16

    ??

  • 2018-04-23 14:04:36

    good

  • xiagxiag09
    2018-05-04 09:14:37

    学习

  • nsnzdw
    2018-05-04 16:49:45

    very good!

  • wangchunshun
    2018-05-10 15:15:19

    学习一下我就知道

  • wolflee86
    2018-05-14 21:29:55

    感谢分享~~~

  • YancyLee
    2018-05-16 17:54:50

    mark

  • luo6994658 to be a doer,not a dreamer
    2018-05-21 20:58:29

    @青牛 青牛老师, Linux用户是根据什么识别所属组的?是GID么?通过groupadd -o 创建了相同GID而名字不同的组的时候,用户是怎么区分所属组的?

  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2018-05-21 23:57:43

    @luo6994658 你可以看一下/etc/group和/etc/passwd这两个文件

  • luo6994658 to be a doer,not a dreamer
    2018-05-22 11:26:55

    @青牛

    file

    file

    正常来说ly用户在ly组,但是我创建了一个新的组ly1的GID跟ly的GID相同,但是在删除新的组ly1的的时候,ly用户却在ly1里面了,使得这个组无法删除。 这不是说明了 这个用户属于了新组了么?

  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2018-05-22 14:40:22

    @luo6994658 是的,ly用户的组是1010,现在1010这个GID是ly1组的,所以不能删因为ly用户是在ly1组的,至于为什么又跑到ly1组了?而不是在原来的ly组了呢?你想想文件是不是从上往下读的,ly和ly1有相同的gid,那当然这个gid分给最后出现的了。也就是说虽然组ID在文件里能重复,但是最终一个组ID只能给一个组,给那个?给/etc/group中最后出现的那个。

  • luo6994658 to be a doer,not a dreamer
    2018-05-22 16:58:43

    @青牛 搜噶,明白了,青牛老师,还有一个小问题 - -||(不是问题少年 ) GID不应该是每个组唯一么?,那为什么相同GID的组,老的组不会被回收呢 - -||。老的组有什么存在的意义么?

  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2018-05-22 17:05:20

    @luo6994658 你这种手动指定了相同的GID,老的组不也回收了吗,只是别一种方式覆盖了。还可以理解为老的组做为备份了,新的组删除了是不是这个GID就还给老的组了。所以你可以理解为存在的意义就是被当成备份了。

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter