Skip to content

Linux用户与组的基本管理

用户和组的基本概念

默认情况下一个用户会拥有一个同名的私有组,比如我们用ls -l 时候会经常看到某个文件所属的用户和组是相同的就是这个原因。一个用户可以加入多个组,但是同一时间只有一个是有效组,有效组的概念可以在创建文件的时候体现出,当前用户创建一个文件的所属组就是当前的有效组,有效组可以切换。下面就这几个部方面详细说明。

用户和组的数据结构

  • /etc/passwd 用户表
  • /etc/shadow 用户密码表
  • /etc/group 群组表
  • /etc/gshadow 群组密码

这三个表里面都是用英文冒号”:”分隔各个字段。只介绍几个重要字段。序号表示第几个字段。

/etc/passwd 中的字段中重要的有 1.账号名称;3.UID;4.GID;6.家目录;7.shell。

/etc/group 中的重要字段有 1.组名;3.GID;4.加入此组的其他账号

用户管理基本命令

创建用户useradd

基础用法直接输入要创建的用户名就可以创建一个新用户了。实际上CentOS做了四件事:

  • 在 /etc/passwd 里面建立一行与帐号相关的资料,包括建立 UID/GID/家目录等;
  • 在 /etc/shadow 里面将此帐号的密码相关参数填入,但是尚未有密码;
  • 在 /etc/group 里面加入一个与帐号名称一模一样的群组名称;
  • 在 /home 底下建立一个与帐号同名的目录作为使用者家目录,且权限为 700

大家可以看到上面创建的用户UID是1001,这个与UID和GID的预留规则有关

  • 0 root
  • 1~999 系统账号。其中又可以区分为两块。1~200是系统建立的。201~999可以由使用者自行创建。
  • 1000~2^32-1 给普通使用者,所以我们上面创建的用户的UID是1001。另一个用户elastic是1000。

useradd还有很多额外参数,可以创建系统账号,也可以指定用户的UID和初始加入的组。

用户信息修改usermod、用户删除userdel

参考鸟哥的说明

群组管理基本命令

创建群组groupadd

这里有个-r参数,表示创建系统组,useradd也有同样的参数,表示创建系统账号。

群组修改groupmod、群组删除groupdel

参考鸟哥的说明

群组管理gpasswd

可以设置群组的管理员,可以将某个用户在群组加入或删除。下面实例是将laotie这个用户加入www-exe组中。groups命令用以查看用户所属的群组,返回的第一个群组是该用户当前的有效群组

切换有效群组newgrp

前面说过用户可以有多个组,但是只有一个有效组,怎么切换呢。用newgrp命令,这个命令有点类似su,你可以把他理解为重新开启了一个终端并使用指定群组。

分享到:
Published in程序猿的东西

Be First to Comment

发表评论