第四章 用户和组管理
4.1 用户和组文件
4.2 使用命令行方式管理用户和组
4.3 使用 Red Hat用户管理器管理用户和组结束
4.1 用户和组文件返回
Linux操作系统采用了 UNIX传统的方法,把全部的用户信息保存为普通的文本文件。
4.1.1 用户账号文件 ——passwd
4.1.2 用户影子文件 ——shadow
4.1.3 用户组账号文件 ——group
4.1.4 组账号文件 ——gshadow
4.1.5 使用 pwck和 grpck命令验证用户和组文件结束
4.1.1 用户账号文件 ——Password
/etc/passwd文件是 LINUX安全的关键文件之一。该文件用于用户登录时校验用户的登录名、加密的口令数据项、用户
ID( UID),默认的用户分组 ID( GID)、
用户信息、用户登录子目录以及登录后使用的 shell。
返回如,liyang:x:500:500:liyang/home/liyang:/bin/bash
该用户的基本信息为:
登录名,liyang
加密的口令表示,x
UID,500
GID,500
用户信息,liyang
HOME目录,home/liyang
登录后执行的 shell,/bin/bash
当用户登录进入系统后,有一个属于自己的操作环境。用户可以使用 CAT命令查看
/etc/passwd文件内容,里面有完整的系统账号内容。
4.1.2 用户影子文件 ——shadow
Linux使用不可逆的加密算法如 DES来加密口令,由于加密算法是不可逆的,所以黑客从密文是得不到明文的。但 /etc/passwd文件是全局可读的,加密的算法是公开的,恶意用户取得了 /etc/passwd文件,便极有可能破解口令。而且,在计算机性能日益提高的今天,对账号文件进行字典攻击的成功率会越来越高,速度越来越快。因此,针对这种安全问题,Linux/UNIX广泛采用了,shadow( 影子)文件”机制,将加密的口令转移到 /etc/shadow文件里,该文件只为 root超级用户可读,
而同时 /etc/passwd文件的密文域显示为一个 x,从而最大限度地减少了密文泄露的机会。
返回
该文件的每行是 8个冒号分割的 9个域,格式如下:
Username,passwd,lastchg,min,max,
warn,inactive,expire,flag
其中,各个域的含义如下表所示:
使用 CAT命令可以显示 /etc/shadow文件的内容。
域名 含义
username 用户登录名
passwd 加密的用户口令
lastchg 表示从 1970年 1月 1日起到上次修改口令所经过的天数
min 表示两次修改口令之间至少经过的天数
max 表示口令还会有效的最大天数
warn 表示口令失效前多少天内系统向用户发出警告
inactive 表示禁止登录前用户名还有效的天数
expire 表示用户被禁止登录的时间
flag 保留域,未使用
4.1.3 用户组账号文件 ——group
/etc/passwd文件中包含着每个用户默认的分组
ID( GID)。 在 /etc/group文件中,这个 GID被映射到该用户分组的名称以及同一分组中的其他成员去。
/etc/group文件含有关于小组的信息,
/etc/passwd中的每个 GID在文件中应当有相应的入口项,入口项中列出了小组名和小组中的用户,这样可方便地了解每个小组的用户,否则必须根据 GID在 /etc/passwd文件中从头至尾地寻找同组用户,这提供了一个比较快捷的寻找途径。
/etc/group文件对小组的许可权限的控制并不是必要的,因为系统用来自于 /etc/passwd文件的 UID、
GID来决定文件存取权限,即使 /etc/group文件不存在于系统中,具有相同的 GID用户也可以小组的存取许可权限共享文件。小组就像登录用户一样可以有口令。如果 /etc/group文件入口项的第二个域为非空(通常用 x表示),则将被认为是加密口
使用 CAT命令可以查看 /etc/group文件的内容,其中每一行的内容表示如下:
用户分组名
加密的用户分组口令
用户分组 ID号( GID)
以逗号分隔的成员用户名单
4.1.4 组账号文件 ——gshadow
如同用户账号文件的作用一样,组账号文件也是为了加强组口令的安全性,防止黑客对其实行的暴力攻击,
而采用的一种将组口令与组的其他信息相分离的安全机制。
返回
使用 CAT命令进行查看 /etc/gshadow,其中格式为:
用户组名
加密的组口令
组成员列表
4.1.5 使用 pwck和 grpck命令验证用户和组文件
Linux提供了 pwck和 grpck两个命令分别验证用户以及组文件,以保证这两个文件的一致性和正确性。下面将分别加以介绍。
pwck用来验证用户账号文件( /etc/passwd) 和影子文件( /etc/shadow) 的一致性,其验证文件中的每一个数据项中每个域的格式以及数据的正确性。如果发现错误,该命令将会提示用户对出现错误的数据项进行删除。
返回
4.2 使用命令行方式管理用户和组返回
4.2.1 使用 useradd命令添加用户
4.2.2 使用 usermod命令修改用户信息
4.2.3 使用 userdel命令删除用户
4.2.4 使用 groupadd命令创建用户组
4.2.5 使用 groupmod命令修改用户组属性
4.2.6 使用 groupdel命令删除用户组结束
4.2.1 使用 useradd命令添加用户返回
Linux使用 useradd命令添加用户或更新新创建用户的默认信息。
格式为:
useradd 选项 用户名
例如:建立一个用户名为 jone,用户组为 jerry,
登录 shell为 /bin/sh,登录主目录为 /home/Jone的用户。
# useradd –r jone –c ―JONE‖ –g jerry –s /bin/sh -d
/home/Jone
# passwd jone 给该用户指定密码
4.2.2 使用 usermod命令修改用户信息返回
usermod命令用来修改使用者账号,具体的修改信息和 useradd命令所添加的信息一致
使用格式,usermod 选项 用户名
该命令的参数与 useradd 命令使用的参数一致。
例:将用户 jerry 的组改为 super,其用户 ID改为
5600
# usermod –g super –u 5600 jerry
将用户 jone的用户名改为 honey-jone,其登录 shell
改为 /bin/ash,用户描述改为,honey-jone”
# usermod –l honey-jone –s /bin/ash –c ―honey-jone‖。
4.2.3 使用 userdel命令删除用户返回
userdel命令用来删除系统中的用户信息。
格式为:
userdel 选项 用户名选项 –r,删除账号时,连同账号主目录一起删除。
例:删除用户 manager
# userdel manager
4.2.4 使用 groupadd命令创建用户组返回
groupadd命令可指定群组名称来建立新的组账号。需要时可从系统中取得新组值。
使用格式为:
Groupadd 选项 用户组名例:创建一个 GID为 5400,组名为 testbed的用户组
# groupadd –g 5400 testbed
创建一个 GID为 5401,组名为 testbed的用户组,由于组名不唯一,创建失败。
4.2.5 使用 groupmod命令修改用户组属性返回
groupmod命令用来修改用户组信息。
使用格式为:
groupmod 选项 用户组名例:将 testbed的名称改为 test
# groupmod –n test testbed
将组 test的 GID改为 5404
#groupmod –g 5404 test
4.2.6 使用 groupdel命令删除用户组返回
groupdel命令比较简单,用来删除系统中存在的用户组。
使用格式为:
groupdel 用户组名使用该命令时必须确认待删除的用户组存在。
首先使用 CAT命令显示系统中存在的组,再进行删除。
4.3 使用 Red Hat用户管理器管理用户和组返回相对于命令行方式来说,图形用户界面方式管理有简单、直观的优点。
4.3.1 启动 Red Hat用户管理器
4.3.2 创建用户
4.3.3 修改用户属性
4.3.4 创建用户组
4.3.5 修改用户组属性 结束
4.3.1 启动 Red Hat用户管理器在 Linux系统中,有两种方法可以启动 Red
Hat的用户管理器( Red Hat User Manager)。
第一种是通过在 shell下使用 redhat-config-
users命令来启动。
# redhat –config-users
第二种方法是通过使用图形界面来启动用户管理器:
单击【开始】 |【系统设置】 |【用户和组群】
来启动用户管理器。
4.3.2 创建用户返回启动了 Red Hat用户管理器后,就可以方便地进行添加用户的操作了。
4.3.3 修改用户属性返回通过使用 Red Hat用户管理器,不但可以创建用户,而且可以方便地修改系统已有用户的各个相关属性。
4.3.4 创建用户组返回如同创建用户一样,使用 Red Hat用户管理器后可以方便地进行添加用户组的操作。
4.3.5 修改用户组属性返回在 Reh Hat用户管理器中,修改用户组属性如同创建用户组群一样,也是一件比较简单的工作。