Linux系统使用一个专门的文件将用户的登录名匹配到对应的UID值,这个文件就是/etc/passwd文件,它包含了一些与用户有关的关键信息
root用户账户是Linux系统的管理员,固定分配给他的UID是0。Linux系统会为各种功能创建不同的账户,而这些账户并不是真的用户,叫做系统账户
/etc/passwd文件文件中的密码字段都被设置成了x,这并不是说所有用户账户都用相同的密码,而密码都被保存在另一个叫/etc/shadow的文件中,这需要特殊的程序才能访问
/etc/passwd是一个标准的文本文件,但是不建议用编辑器直接修改其内容
/etc/shadow文件对Linux系统密码提供了更多的控制,只有root用户才能访问/etc/shadow文件,这让它比/etc/passwd安全许多
他一共有九个字段
1、与/etc/passwd文件中登录名对应字段的登录名
2、加密后的密码
3、上次修改密码后过去多少天
4、多少天后才能修改密码
5、多少天后必须修改密码
6、密码过期提前多少天通知用户
7、密码过期后多少天禁用用户账户
8、用户账户被禁用的日期
9、预留字段
/etc/group文件包含了系统上用到的每个组的信息和UID一样,GID也使用相同的格式,并从500开始分配
主目录 :用户的起始工作目录,用户登录后有 *** 作权限的访问目录
注释性描述 :这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。
登陆shell :用户登录后,要启动一个进程,负责将用户的 *** 作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
newgrp 指令类似 login 指令,当它是以相同的帐号,另一个群组名称,再次登入系统。 newgrp 命令可以从用户的附加组中选择一个群组,作为用户新的初始组。 欲使用 newgrp 指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则 newgrp 指令会登入该用户名称的预设群组。
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 !
在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的用户不论为与基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本组欢迎分享,转载请注明来源:内存溢出
评论列表(0条)