linux--13、用户身份UID和GID

linux--13、用户身份UID和GID,第1张

root用户拥有极高的系统所有权,能够管理系统的各项功能,真正让root成为“超级用户”的原因是它的UID值。

每个用户都有对应的 唯一UID值 ,可以分成三类用户:

用户的UID保存在 /etc/passwd 文件中,而账户密码保存在 /etc/shadow 文件中。

例如,输入命令 $ cat /etc/passwd ,可以查看所有的用户信息,下面是三类用户的例子:

第一行为root超级用户,第二行为ftp系统用户,第三行为test普通用户。

每行用户信息都以 “:” 作为分隔符,划分为7个字段,每个字段所表示的含义如下:

用户名:密码:UID:GID:描述性信息:主目录:默认Shell

其中,默认shell为 /bin/bash 表示可以登录,为 /sbin/nologin 时表示不可以登录。

GID 是用户组的编号,可以将多个用户加入到某个组中,方便指派任务或工作。

每个用户在被创建时均会创建一个默认组(其GID与UID相同,叫作基本组或初始组),而后加入的组叫作扩展组或附加组。

用户组名和GID则保存在 /etc/group 文件中。

输入命令 $ cat /etc/group 可以查看所用用户组的信息,例如:

每行的用户组的信息都以 “:” 作为分割符,划分为4个字段,每个字段所表示的含义如下:

组名:密码:GID:该用户组中的用户列表

其中,组密码保存在 /etc/gshadow 文件中,用户组密码一般没用;组中的用户列表只包括附加用户,如果该组是某个用户的初始组,则这个用户不会出现在这个用户列表中。

linux一条命令不能创建多个用户组。Linux中创建用户组的命令是groupadd,这个命令只能创建一个用户组。

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1、增加一个新的用户组使用groupadd命令。其格式如下:

代码:

groupadd选项用户组

可以使用的选项有:

代码:

-gGID指定新用户组的组标识号(GID)。

-o一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

例1:代码:#groupaddgroup1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有最大组标识号基础上加1。

例2:代码:#groupadd-g101group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

2、如果要删除一个已有的用户组,使用groupdel命令。其格式如下:

代码:

groupdel用户组

例如:代码:#groupdelgroup1

此命令从系统中删除组group1。

3、修改用户组的属性使用groupmod命令。其语法如下:

代码:

groupmod选项用户组

常用的选项有:

代码:

-gGID为用户组指定新的组标识号。

-o与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

-n新用户组将用户组的名字改为新名字

例1:代码:#groupmod-g102group2

此命令将组group2的组标识号修改为102。

例2:代码:#groupmod_g10000-ngroup3group2

此命令将组group2的标识号改为10000,组名修改为group3。

4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:代码:$newgrproot

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

Linux中每个用户都要属于一个或多个组,有了用户组,就可以将用户添加到组中,这样就方便管理员对用户的集中管理。 Linux系统中用户组分为root组、系统组、普通用户组三类。当一个用户属于多个组时,这些组中只能有一个作为该用户的主属组,其他组就被称为此用户的次属组。 组基本信息在文件/etc/group中;组密码信息在文件/etc/gshadow中。通过命令:cat /etc/group、cat /etc/gshadow可查看文件内容。

各用户组中,以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:

组名:密码:GID:该用户组中的用户列表

而在gshadow文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符,分为 4 个字段,每个字段的含义如下:

组名:加密密码:组管理员:组附加用户列表

root用户可以直接修改/etc/group文件达到管理组的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。

下面使用案例分别讲解这些命令:

添加用户组的命令是 groupadd,命令格式如下:

groupadd  [ -g gid  [ -o ] ]  [ -r ]  [ -f ]  group

参数说明:

        -g:指定新建工作组的 id;

        -r:创建系统工作组,系统工作组的组ID小于 500;

        -K:覆盖配置文件 "/ect/login.defs";

        -o:允许添加组 ID 号不唯一的工作组。

        -f,--force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。

示例:创建一个新的组,并添加组 ID。

[root@VM-4-4-centos ~]# groupadd  -g  888  newgroup

此时在/etc/group文件中产生了一个id为888的项目:

删除用户组时,可用groupdel(group delete)指令来完成。倘若该组中仍包括某些用户,则必须先删除这些用户后,方能删除组。 注意:删除的组不能为主属组! 命令格式:

groupdel  [组名]         

示例:删除用户组 newgroup

[root@VM-4-4-centos ~]# groupdel  newgroup

此时再查看/etc/group文件时可以看到用户组newgroup已经不存在,删除成功!

要更改用户组识别码或名称可使用 groupmod 来完成。命令格式:

groupmod  [ -g  <群组识别码>  <-o >] [ -n  <新群组名称 >] [原群组名称]

参数说明 :

        -g <群组识别码> 设置欲使用的群组识别码。

        -o  重复使用群组识别码。

        -n <新群组名称> 设置欲使用的群组名称。

示例:创建用户组newgroup并修改其名称为modifiedgroup

[root@VM-4-4-centos ~]# groupadd  newgroup

[root@VM-4-4-centos ~]# groupmod  -n  modifiedgroup  newgroup

查看/etc/group文件,只存在名称为modifiedgroup的用户组,修改成功!

gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。命令格式:

gpasswd  [可选项]  组名

可选项参数 :

        -a:添加用户到组;

        -d:从组删除用户;

        -A:指定管理员;

        -M:指定组成员和-A的用途差不多;

        -r:删除密码;

        -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

示例1:将用户yangwei添加到组modifiedgroup中

[root@VM-4-4-centos ~]# gpasswd  -a  yangwei  modifiedgroup

此时查看/etc/group文件发现组 modifiedgroup中出现用户yangwei

示例2:将用户yangwei从组modifiedgroup中给删除

[root@VM-4-4-centos ~]# gpasswd  -d  yangwei  modifiedgroup

再次查看/etc/group文件发现用户yangwei已经不存在。

当需要在不同的群组下工作的时候我们需要进行切换群组 *** 作,这个 *** 作由newgrp指令来完成。命令格式如下:

newgrp [群组名称]

注意!当前用户必须都是两个群组的成员,否则切换群组时需要输入切换组的组密码,这时候当前用户作为临时成员在切换组下工作,所创建的文件全都属于切换组。

示例1:用户yangwei不属于群组modifiedgroup,请将当前工作组切换为modifiedgroup。

示例2:将用户yangwei添加到组modifiedgroup中,并切换工作组为modifiedgroup。

总结:Linux用户组管理需要掌握最基本的几个命令及其选项参数: groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11750443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存