首页 > 技术文章 > Linux 用户和用户组管理(useradd userdel groupadd groupdel)

XiiX 2021-04-05 20:19 原文

Linux 用户和用户组管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

Linux系统用户账户的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加账号

useradd 选项 用户名
-c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-g 用户组 指定用户所属的用户组
-G 用户组,用户组 指定用户所属的附加组
-s Shell文件 指定用户的登录Shell
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号

删除账号

userdel 选项 用户名
# 把用户的主目录一起删除
userdel -r sam

Linux系统用户组的管理

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

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

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

groupadd 选项 用户组
-g GID指定新用户组的组标识号
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统用户组的GID相同

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

groupdel 用户组

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

groupmod 选项 用户组
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字

groupmod –g 10000 -n group3 group2
# 此命令组group2的标识号改为10000,组名修改为group3

切换用户组newgrp,以便具有其他用户组的权限

newgrp root
# 这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组

与用户账号有关的系统文件

这些文件包括/etc/passwd, /etc/shadow, /etc/group

  1. /etc/passwd文件是用户管理工作涉及的最重要的一个文件

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
    用户名:代表用户账号的字符串
    口令:一些系统中,存放着加密后的用户口令字
    用户标识号:是一个整数,系统内部用它来标识用户
    组标识号:字段记录的是用户所属的用户组
    注释性描述:字段记录着用户的一些个人情况
    主目录:也就是用户的起始工作目录
    用户登录后,要启动一个进程,负责将用户的操作传给内核,即shell
    系统中有一类用户称为伪用户(pseudo users)
    
  2. 拥有账户文件

    1. 除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit,corn,mail,usenet等,它们也都各自为相关的进程和文件所需要。
    2. /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

    它的文件格式与etc/passwd类似,由若干个字段,字段之间用":"隔开。这些字段是:

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    
  3. 用户组的所有信息都存放在/etc/group文件中

    将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。
    当一个用户同时是多个组中的成员是,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
    用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

可以批量建立大量的账号

推荐阅读