1、 Linux用户及组

      Linux操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户。

      Linux系统用户是根据用户ID来识别的,从默认ID编号从0开始,但是为了和老式系统兼容,用户ID限制在60000以下,Linux用户分总共分为三种,分别如下:

  • root用户 (ID 0)

  • 系统用户 (ID 1-499)

  • 普通用户 (ID 500以上)

      Linux系统中的每个文件或者文件夹,都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,使用passwd命令可以修改当前用户密码。Linux操作系统用户的特点如下:

  • 每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名;

  • 每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组;

  • 每个组拥有一个GroupID;

  • 每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;

  • 每个可登陆用户拥有一个指定的Shell环境。

2 Linux用户管理

Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:

  • /etc/passwd 保存用户信息

  • /etc/shdaow 保存用户密码(以加密形式保存)

  • /etc/group 保存组信息

  • /etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制

  • /etc/default/useradd 显示或更改默认的useradd配置文件

如需创建新用户,可以使用命令useradd,执行命令useradd jfedu1即可创建jfedu1用户,同时会创建一个同名的组jfedu1,默认该用户属于jfedu1主组。

Useradd jfedu1命令默认创建用户jfedu1,会根据如下步骤进行操作:

  • 读取/etc/default/useradd,根据配置文件执行创建操作;

  • 在/etc/passwd文件中添加用户信息;

  • 如使用passwd命令创建密码,密码会被加密保存在/etc/shdaow中;

  • 为jfedu1创建家目录:/home/jfedu1;

  • 将/etc/skel中的.bash开头的文件复制至/home/jfedu1家目录;

  • 创建与用户名相同的jfedu1组,jfedu1用户默认属于jfeud1同名组;

  • Jfedu1组信息保存在/etc/group配置文件中。

在使用useradd命令创建用户时,可以支持如下参数:

Useradd案例演示:

  1. 新建jfedu用户,并加入到jfedu1,jfedu2附属组;

  1. 新建jfedu3用户,并指定新的家目录,同时指定其登陆的SHELL;

3、 Linux组管理

所有的Linux或者Windows系统都有组的概念,通过组可以更加方便的管理用户,组的概念应用于各行行业,例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在Linux系统,同样可以创建用户,并用组的概念对其管理。

Linux组有如下特点:

  • 每个组有一个组ID;

  • 组信息保存在/etc/group中;

  • 每个用户至少拥有一个主组,同时还可以拥有31个附属组。

通过命令groupadd、groupdel、groupmod来对组进行管理,详细参数使用如下:

Groupadd案例演示:

  1. groupadd创建jingfeng组

  1. groupadd创建jingfeng组,并指定GID为1000;

  1. groupadd创建一个system组,名为jingfeng组

Groupmod案例演示:

  1. groupmod修改组名称,将jingfeng组名,改成jingfeng1;

  1. groupmod修改组GID号,将原jingfeng1组gid改成gid 1000;

4 Linux用户及组案例

Useradd主要用于新建用户,而用户新建完毕,可以使用usermod来修改用户及组的属性,如下为usermod详细参数:

Usermod案例演示:

  1. 将jfedu用户属组修改为jfedu1,jfedu2附属组;

  1. 将jfedu用户加入到jfedu3,jfedu4附属组,-a为添加新组,原组保留;

  1. 修改jfedu用户,并指定新的家目录,同时指定其登陆的SHELL;

  1. 将jfedu用户名修改为jfedu1;

  1. 锁定jfedu1用户及解锁jfedu1用户方法;

Userdel案例演示:

使用userdel可以删除指定用户及其用户的邮箱目录或者Selinux映射环境:

  • userdel jfedu1 保留用户的家目录;

  • userdel -r jfedu1 删除用户及用户家目录,用户login系统无法删除;

  • userdel -rf jfedu1 强制删除用户及该用户家目录,不论是否login系统。

5 Linux权限管理

       Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。

      Linux每个进程都是以某个用户身份运行,进程的权限与该用户的权限一样,用户的权限越大,则进程拥有的权限就越大。

Lnux中有的文件及文件夹都有至少权限三种权限,常见的权限如表5-1所示:

表5-1 Linux 文件及文件及权限

Linux权限授权,默认是授权给三种角色,分别是user、group、other,Linux权限与用户之间的关联如下:

  • U代表User,G代表Group,O代表Other;

  • 每个文件的权限基于UGO进行设置;

  • 权限三位一组(rwx),同时需授权给三种角色,UGO;

  • 每个文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组使用O来表示;

在Linux系统中,可以通过ls –l查看jfedu.net目录的详细属性,如图5-1所示:

inux用户组&权限管理-LMLPHP

图5-1 Linux jfedu.net目录详细属性

jfedu.net目录属性参数详解如下:

  • d 表示目录,同一位置如果为-则表示普通文件;

  • rwxrwxr-x 表示三种角色的权限,每三位为一种角色,依次为u,g,o权限,如上则表示user的权限为rwx,group的权限为rwx,other的权限为r-x;

  • 2表示文件夹的链接数量,可理解为该目录下子目录的数量;

  • 从左到右,第一个jfedu1表示该用户名,第二个jfedu1则为组名,其他人角色默认不显示;

  • 4096表示该文件夹占据的字节数;

  • Dec 10 01:36 表示文件创建或者修改的时间;

  • Jfedu.net 为目录的名,或者文件名。

06-30 07:47