Anda di halaman 1dari 83

Linux 用户与 组群管理

基础内 容介绍 用
案例一 及其相 关内 容 户 第

案例二 及其相 关内 容 五

案例三 及其相 关内 容 章

课程总 结与操 作实 训 管
课后习 题 理
Linux 用户与 组群管理

本章教 学目标:

掌握文件 权限 、用户 、组 的管理 命令


熟悉用户 、组 、文件 权限 的分类
了解用户 及组 的基本 概念
掌握对用 户与 组的管 理
Linux 用户与 组群管理

重点:
Linux 系统下 用户 及组的 创建 ;
如何对 用户 来进行 管理 ;
难点:
如何控 制用 户对文 件操 作权 限;
关键词 :
用户帐 户 UID GID
Linux 用户与 组群管理

5-1 用户管理概述
1 、用户管理 的范围
• 用户帐 号管理
• 组帐号 管理
• 用户 / 组帐号 的权限 管理
Linux 用户与 组群管理

5.1 用户和组文件

执行

创建 归属于
文件和程序 用户 组
安装

继承、 调用
UID GID
Linux 用户与 组群管理

5.1 用户和组文件
Linux 继承了 Unix 传统的方 法, 把全部 用户 信息保 存为
普通 的文 本文件 。用 户可以 通过 对这些 文件 的修改 来管
理用 户和 组。

文件 保护 策略有 :
1. 登录名 和登录 密码
2. 加密
3. 设置访 问特权
Linux 用户与 组群管理

5.1.1 用户账号文件―― passwd


口令文件 (/etc/passwd)

该文件用 于用 户登录 时校验 用户 的登录 名、 加密的 口令


数据
项、用户 ID(UID) 、 默 认的用 户分 组 ID(GID) 、 GECOS
字段 、
用户登录 子目 录以及 登录后 使用 的 shell 。
该文件的每一行保存一个用户的资料,而用户资料的每一个
数据项之间采用冒号“:”分隔。
jl:x:100:0:Jim Lane,ECT8-3, ,:/staff/ji:/bin/sh
Linux 用户与 组群管理

5.1.1 用户账号文件―― passwd


•登录名 注意它的唯一性,它的长度一般不超过 32 个字符,
它们可以包括冒号和换行之外的任何字符。登录名要区分大
小写。放在 /etc/passwd 文件的开头部分的用户是系统定义的虚
拟用户 bin 、 daemon 。

(2) 加密的 口令 当编辑 /etc/passwd 文件来创建一个新账号时,


在加密口令字段的位置要放一个星号 (*) 。这个星号防止未经
授权就使用该账号,直到设置了真实的口令为止。
Linux 用户与 组群管理

5.1.1 用户账号文件―― passwd


(3)UID 是 32 位无符号整数,它能表示从 0 到 4294967296
的值。建议在可能的情况下将站点上的最大 UID 号限制在
32767 。 root 的 UID 为 0 。 UID 在整个机构中应该是唯一

(4)GID 组的 ID 是一个 32 位整数。 GID 0 是给 root 的组保留的。
GID 1 通常指的是名为“ bin” 的组, GID2 指的是“ daemon” 组。

(5)GECOS 字段 通常用来定义每个用户的个人信息。
Linux 用户与 组群管理

5.1.1 用户账号文件―― passwd


(6) 用户的 登录 子目录 每个用户都需要有地方保存自己的配

文件。这个地方就叫做用户登录子目录。要禁止没有主目录的
用户登录,可以把 /etc/login.defs 中的 DEFAULT_HOME 设置
为 no 。

(7) 登录 shell 用户上机后运行的 shell ,此处出现的是默认的 shell


大多数情况下是 /bin/bash 。
Linux 用户与 组群管理



/etc/
passw
d



Linux 用户与 组群管理

 /etc/passwd 是一个 简单的 文本 文件, 以纯


文本显 示加密 口令 的做法 存在 安全隐 患。
同时, 由于 /etc/passwd 文件是 全局 可读
的,加 密算法 公开 ,恶意 用户 取得了
/etc/passwd 文件, 便极有 可能 破解口 令。
 Linux/Unix 广泛 采用了 “ shadow 文件” 机
制,将 加密的 口令 转移到 /etc/shadow 文件
里,该 文件只 为 root 超级用 户可读 ,而 同
时 /etc/passwd 文件 的密 文域显 示一 个 * ,
从而最 大限度 地减 少了密 文泄 漏的机 会。
Linux 用户与 组群管理

5.1.2 用户影子文件―― shadow


shadow 文件 的每 行是 8 个冒号 分隔 的 9 个域, 格式
如下 :
username : passwd : lastchg: min: max: warn: inactive: expire: flag
登录名 ;
加密后 的口 令;
上次修 改口 令的 时间;
两次修 改口 令之 间的最 少天数 ;
两次修 改口 令之 间的最 大天数 ;若 最大天 数是 99999 ,则永 远不 过
在口令 作废 之前 多少天 , login 程序 应该开 始警 告用 户口令 即将过 期
在达到 了最 大口 令作废 天数之 后, 登录账 号作 废之 前必须 等待的 天
账号过 期的 天数 。若该 字段的 值为 空,则 该账 号永 远不过 期;
保留字 段, 目前 为空。
Linux 用户与 组群管理

5.1.2 用户影子文件―― shadow


Linux 用户与 组群管理

用户影子文件―― shadow 各项详解


shadow 文件 的每 行是 8 个冒号 分隔 的 9 个域, 格式
如下 :
username : passwd : lastchg: min: max: warn: inactive: expire: flag
Ø 登录名
Ø 加密口令
Ø 口令上次更改时距 1970 年 1 月 1 日的天

Ø 口令更改后不可以更改的天数
Ø 口令更改后必须再更改的天数 ( 有效期 )
Ø 口令失效前警告用户的天数
Ø 口令失效后距账号被查封的天数
Ø 账号被封时距 1970 年 1 月 1 日的天数
Ø 保留未用
Linux 用户与 组群管理

5.1.3 用户组账号文件―― group


 /etc/group 文件包 含了 Linux 组的名称 和每 个组中
的成员 列表 。例如 :
 wheel : x : 10 : evi,garth,trent
 每一行 代表 了一个 组其 中包 含有四 个字段 :
• 组名;
• 被加密 的口 令 ( 已被废 弃, 很少使 用 ) ;
• GID ;
• 成员列 表, 彼此用 逗号隔 开 ( 注意不要 加空
格 )。
 为了避 免与 厂商提 供的 GID 发生 冲突 ,一般从
GID100 开始分配 本地组 。
Linux 用户与 组群管理

/etc/group 的内容
Linux 用户与 组群管理

5.1.4 组账号号文件―― gshadow


 组口令与组
的其他信息
相分离的安
全机制,其
格式如下:
用户组 名 :

密的组 口
令:
组成员 列表

supersun:8kuwngCidEio::liyangsuper,snoppy,desiny
Linux 用户与 组群管理

5.1.5 使用 pwck 和 grpck 命令验证用户和组文



 pwck 用来验证用户账号文件和影子文件的一致性,验证文
件中的每个数据项中每个域的格式以及数据的正确性。如
果发现错误,该命令将会提示用户对出现错误的数据项进
行删除。
该命令 主要验证每 个数据项是 否具有:
正确的 域数目
唯一的 用户名
合法的 用户和组标 识
合法的 主要组群
合法的 主目录
合法的 登录 shell 。
Linux 用户与 组群管理

pwck 的使用
a. vi /etc/passwd
b. 输入其中没有的用户信息
c. pwck /etc/passwd
d. 如果数据域的项数正确,只会反映出不存在相关的用户信
息,不会提示用户删除该信息
e. 如果数据域项数不正确,系统提示用户进行删除,用户确
定删除后该文件验证才通过。
Linux 用户与 组群管理





Linux 用户与 组群管理
5.2 使用 shell 命令管理用户和组
用户和 用户组管 理命令
用户管理命令 说明
useradd username 向系统添加新用户
options
usermod username 修改用户的设置值
options
userdel –r username 从系统里删除用户
用户组管理命令 说明
groupadd 建立一个新用户组
groupdel 清除一个用户组
修改一个用户组, -g 用于修改一个用户
groupmod options
组 ID ; -n 用于修改一个用户组名字
Linux 用户与 组群管理

给出案例
案例一
• 新建 一个 user1 用户, UID 、 GID 、主目录均按 默认;
• 新建 一个 user2 用户, UID=800 、其余按默 认;
• 新建 一个 user3 用户, 默认主目 录为 /abc 、其余默认 ;并观察
这三 个用户的信 息有什么 不同;
• 分别 为以上三个 用户设置 密码为 123456 ;
• 把 user1 用户改名为 u1,UID 改为 700 ,主目录 为 /test;
• 把 u1 用户锁定,在 不同的终端 分别登录 user2 与 u1, 并观察有
什么 现象;
Linux 用户与 组群管理

5-2 用户帐号的管理
1 、用户帐号 的分类
• 超级用户 ( UID=0 )
• 普通用户 ( 500<=UID<max=60000 )
操作权 限受到 限

• 伪用户( 系统 用户) ( UID=1—
499 ):限 制本机 登录
Linux 用户与 组群管理

2 、用户帐号 包含的信 息
• 用户名:
• 口令:
• UID :用户 唯一 标识符
• GID :用户 组的唯 一标 识符
• 用户描述 信息 :
• 用户主目 录: 用户登 录的 初始目 录
• SHELL 类型 :设置 SHELL 程序的 种类
Linux 用户与 组群管理

3 、用户管理
1 )添加新用户
• 格式:
useradd/adduser [ 参数 ] 用户名
• 参数:
 -u UID // 指定用 户的 UID 值
 -g 组名 // 指定用 户所属 的默 认组
 -G 组名 // 指定用 户附加 组
Linux 用户与 组群管理

 -d 路径 // 指定 用户 主目录
 -e 时间 // 指定 用户 帐号有效 日期 (YYYY-
MM-DD)
 -s shell 类型 // 指定默认 的 shell 类型
 -m // 建立用 户主 目录
 -M // 不建立 用户 主目录
Linux 用户与 组群管理

• 实例:
 # useradd u2 // 新建用户
 # useradd -g g2 u2 // 新建用户 u3 ,主要 群组
为 g2
 # useradd -e 2009-08-12 u3 //
Linux 用户与 组群管理

2 )设置 用户口令
• 格式: passwd [ 选项 ] [ 用户 名 ]
d ( delete ) // 删除 用户 口令
 -l ( lock ) // 暂时锁定 指定的 用户 账号
 -u ( unlock ) // 解除 指定 用户账号 的锁定
 -S ( status ) // 显示指 定用户 账号 的状态
• 实例:
 #passwd u2
Linux 用户与 组群管理

 useradd –r tom –c “Tom” –g jerry –s


/bin/sh –d /home/Jone
 passwd tom
 Enter password:
Linux 用户与 组群管理

 passwd tom // 设置口令


 passwd -d tom // 删除用户 口令
 passwd -l tom // 锁定账号
 passwd -u tom // 解锁账号
 passwd -s tom // 显示账号
Linux 用户与 组群管理

3 )删除用户
• 格式:
userdel [ 参数 ] 用户 名
• 参数:
-r // 同时删 除用户 主目 录
• 实例:
 # userdel u2
 # userdel -r u3
Linux 用户与 组群管理

4 )修改 用户信息
• 格式:
usermod [ 参数 ] 用户名
• 参数:
 -l 新用户 名 当前 用户 名 // 更改用 户名
 -d 路径 // 更改用 户
主目 录
 -G 组名 // 修改 附加 组
 -L 用户帐 号名 // 锁定用 户帐 号 ( 不能登
录)
 -U 用户 帐号 名 // 解锁用 户帐 号
Linux 用户与 组群管理

• 实例:
 # usermod -d /abc u3
 # usermod -G group2 u3
 # usermod -l user3 u3
 # usermod -L user1
 # usermod -U user1
Linux 用户与 组群管理

 usermod 命令用 来修改使用 者账号, 具


体修 改信息和 useradd 命令所 添加的信
息一 样。
例子 usermod –g super –u 5600 jeffery
// 将用户 jeffery 组改为 super, 用户 id 改为 5600
usermod –l honey-jone –s /bin/ash –c “honey-jone”
jone
// 将用户 jone 改名为 honey-jone, 登录的 shell 改为
/bin/ash
// 用户描述改为“ honey-jone”
Linux 用户与 组群管理

5 )切换用户 身份
• 格式:
su [-] [ 用户 名 ]
• 实例:
 #su –
 #su tom
Linux 用户与 组群管理

6 )查看用户 的 UID GID 和用户 所


属组群的信息
• 格式:
id [ 用户 名 ]
• 实例:
 #id tom
Linux 用户与 组群管理

分组操作
…………………………

点评、操作演示:
………………………………………..
Linux 用户与 组群管理





Linux 用户与 组群管理

案例二
 建立一 个标准 的组 group1 , GID=900 ;
 建立一 个标准 组 group2 ,选项 为默 认,观 察该 组的
信息有 什么变 化;
 新建用 户 ah 、 xh ,再 新建 一个组 group3 ,把
root 、 u1 、 user2 用户添加 到 group1 组中, 把
ah 、 xh 添加到 group2 组,
 把 group3 组改名 为 g3 , GID=1000 ;
 查看 user2 所属 于的 组,并 记录 ;
 删除 user1 组与 g3 组,观察 有什 么情况 发生 ;
Linux 用户与 组群管理

5-3 组帐号管理
1 、组的分类
• 私用组 :创建 用户 时自动 创建 的组
• 标准组 :可以 包含 多个用 户的 组
Linux 用户与 组群管理

2 、组的信息
• 组名:组 的标 识符号
• 口令
• GID :组的 唯一标 识符
• 组的成员
Linux 用户与 组群管理

3 .组帐号的 管理
1 )建立组
• 格式:
groupadd [ 参数 ] 组名
• 参数:
 -g GID // 指定新建 组的 GID 值
 -r // 建立伪用 户组 ( 1--499 )
• 实例:
 # groupadd g2
 # groupadd –r g3
Linux 用户与 组群管理

 例子:
groupadd –g 5400 testbed
// 创建一个 gid 为 5400 组名为 testbed 的
用户组
Linux 用户与 组群管理

2 )删除 组
• 格式:
groupdel 组名
• 实例:
 groupdel g3
Linux 用户与 组群管理

3 )修改组的 信息
• 格式:
groupmod [ 参数 ] 组名
• 参数:
 -n 新组名 原组名 // 修改组的 名称
 -g GID // 修改组的 GID
• 实例:
 # groupmod -n group1 g1
 # groupmod -g 860 g2
Linux 用户与 组群管理

 groupmod -n testbed-new testbed


// 将组 testbed 的名称改为 testbed-new
groupmod -g 5404 testbed-new
// 将组 testbed-new 的 gid 改为 5404
groupmod –g 5405 –n testbed-old testbed-
new
// 将组 testbed-new 的 gid 改为 5405, 名称改
为 testbed-old
Linux 用户与 组群管理

4 )添加 / 删除组成员
• 格式:
gpasswd [ 参数 ] 用户 名 组名
• 参数:
 -a 用户 名 // 向指定组 添加 用户
 -d 用户 名 // 从指定组 中删 除用户
• 实例:
 #gpasswd -a u1 root
 #gpasswd -d u1 root
Linux 用户与 组群管理

5 )显示用户 所属组
• 格式:
groups [ 用户名 ]
• 实例:
 #groups (显示当 前用 户所属 组 )
 #groups root (显示 root 用户 的所 属
组)
Linux 用户与 组群管理

使用 Red Hat 用户管理器管理用户和组

 启动 Red Hat 用户管理器


两种方 法:
• 一种通 过 shell ,使用 如下命 令:
redhat-config-users
• 第二种 方法是 通过 图形界 面来 启动用 户管 理
器。
【开始】 | 【系 统设置 】 | 【用 户和组 群】

单项 。
Linux 用户与 组群管理





Linux 用户与 组群管理






Linux 用户与 组群管理
修改用 户属性
Linux 用户与 组群管理
修改帐 Linux
号信 息 用户与 组群管理
Linux 用户与 组群管理







修改组Linux
群 用户与 组群管理
Linux 用户与 组群管理





Linux 用户与 组群管理

分组操作
…………………………

点评、操作演示:
………………………………………..
Linux 用户与 组群管理





Linux 用户与 组群管理

案例三
 用 root 用户 登录 ,在根 目录 下新建 一目 录 test ,设置
文件的 权限, 当用 户 u1 登录 时, 能进入到 /test 目录
之中, 并能建 立属 于 u1 用户 的文 件;当用 户 xh 登录
时,只 能进入 到 /test 目录中 ,但 不能建 立属 于 xh 用
户的文 件;
 以 root 身份 登录 ,在 test 目录下 新建 一个文 件 ff 与目
录 dd ,观 察新 建文件 及目 录的权 限, 进行一 定的 设
置,让 新建的 目录 具有写 与执 行的 权限;
 进行设 置,把 文件 的所属 用户 变为 ah 用户;同 时把
目录 dd 的权限 设具 有读、 写、 执行 的权限 ;
 利用 ah 用户 登录 ,来观 察对 dd 的操作 情况;
Linux 用户与 组群管理

5-4 权限管理
1 、文件权限
• 定义:是 一种 限制用 户对 文件操 作的 规

• Red Hat Linux 9.0 系统 中文件 访问 权限
通常分为 三类 :
 读: r 或 4
 写: w 或 2
 执行 : x 或 1
Linux 用户与 组群管理

权限名称 对文件的含义 对目录的含义

读 读取文件内容 检查目录内容

改变目录内容 , 在目录中建立子
写 修改文件内容
目录和新文件

执行 执行文件 可以使用 cd 命令进入目录


Linux 用户与 组群管理

2 、权限值的 表示方法
(1) 8 进制数 字表示
r :4 w :2 x :1
rw : 6 rx : 5 wx : 3
rwx : 7
0 :代 表没有 权限
Linux 用户与 组群管理

(2) 字符表示方法
r-- : 只读 -w- :

--x : 执行
rw- :读 写
-wx : 写 和执 行 r-x :
读和执 行
rwx : 读写 执行
--- :无权 限
Linux 用户与 组群管理

3 、权 限设 置的方法
( 1 ) chmod
• 功能:设 置用 户的文 件操 作权限
• 格式:

格式一: chmod [ 操作对象 ] [ 操作符 ] [ 权限 ]


文件名
(称为 字符设 定法 )
 命令中各选项的含义为:
Linux 用户与 组群管理

(1) 操作 对象
u 表示 “用户 ( user )”, 即文件 或目 录的
所有者 。
g 表示 “同组 ( group )用户 ”, 即与文 件
属主有 相
同组 ID 的所有 用户 。
o 表示 “其他 ( others )用户 ”。
a 表示 “所有 ( all )用 户”。 它是 系统默 认
值。
Linux 用户与 组群管理

(2) 操作符 号
+ 添加某个权限。
- 取消某个权 限。
= 设置唯一权限。
Linux 用户与 组群管理

(3) 所表 示的权限可 用下述字母 的任意组合


r 可读。
w 可写。
x 可执行 。
Linux 用户与 组群管理

实例:
# chmod o+w /home/abc.txt
# chmod u-w /home/abc.txt
# chmod o-rx /home/abc.txt
# chmod o=rx /home/abc.txt
Linux 用户与 组群管理

格式二: chmod [ 权限值 ] 文件名


(称为数字设定 法)
权限值 :
上述八进制表示 法
数字属性的格 式应为 3 个从 0
到 7 的八进制数 ,其顺序是
( u )( g )( o )
Linux 用户与 组群管理

② 三位 8 进制数字

u g o

6 6 4

实例:
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
Linux 用户与 组群管理

( 2 ) chown
• 功能:改变 文件拥有者
• 格式:
# chown < 用户名 > < 文件名 >
• 实例:
# chown user1 f1
Linux 用户与 组群管理

( 3 ) chgrp
功能: 更改文件所 属的组
格式:
# chgrp < 组名称 > < 文件名 >
实例:
# chgrp ahxh /home/abc.txt
Linux 用户与 组群管理

( 4 ) umask
• 功能:设 置权 限掩码 (决 定新建 文件 的权
限)
• 格式: umask 权限值
• 说明:
 超级用 户默认 掩码 值为 0022 ,普 通用户
默认为 0002
• 实例:
 # umask 0044
• 计算公式 :目 录: 0777-umask
文件 : 0666-
umask
Linux 用户与 组群管理

分组操作
…………………………

点评、操作演示:
………………………………………..
Linux 用户与 组群管理





Linux 用户与 组群管理

归纳与总结
 通过本节课的学习我们要掌握以下内容:

文件权限、用户 、组的管理 命令
用户、 组、文件权 限的分类 
用户及 组的基本概 念
Linux 用户与 组群管理

上机实 训
 以自己 姓名的 英文 缩写来 创建一 个用 户,以 自己 的班
级来创 建一个 组; 再创建 一个用 户 test ;把用 户的 密
码分别 设为 ahxhcjy
 把自己 的用户 加入 到班组 组内, 把 test 用户加 入到
root 组内;
 以 root 身份 登录 ,在根目 录下 ,创 建一个 目录
ahxh ,并在该 目录 下新建 一个 文件及 子目 录, 设置
ahxh 目录的权 限, 达到以 下目 的;
 以自 己的 用户登 录, 能查看 ahxh 目录里面 的内
容, 能进 入到该 目录 之中; 能在 该目录 下创建 新
文件 ;
 以 test 用户登 录, 能查看 ahxh 目录里面 的内
容, 能进 入到 ahxh 目录中 ,但 能在该 目录 下创
建新 文件 。
Linux 用户与 组群管理





Linux 用户与 组群管理
课后习 题
1 、要给 所有 的人读 取权 限, 用数字 表示  B
A 、 441 B 、 444 C 、 222
D 、 111
2 、 root 用户的 UID 和 GID 为 B
A、2和0 B、0和0 C、1和0 D 、 500
和 500
3 、创建一个用户指定用户的自家目录。参数为  B
A 、 -u B 、 -d C 、 -g D 、 -M
4 、为了修改文件 test 的许可模式 , 使其文件属主具有读、写和运
行的权限,组和其它用户可以读和运行,可以采用的方法  A
A 、 chmod 755 test B 、 chmod 700 test
C 、 chmod ux+rwx test D 、 chmod g-w test
Linux 用户与 组群管理
5 、如果 开机 就在文 字模 式, 则现在 要进 入图象 模式
用什么 命令  B C
A 、 ctrl+alt+f7 B 、 init 5 C 、 startx
D 、 init / 目录下的 www 文件权限改为只有主用户有执行的权
6 、现在将
限,其他人都没有  A C
A 、 chmod 100 /www B 、 chmod 001 /www
C 、 chmod u+x ,g-x,o-x /www D 、 chmod o-x,g-x,u-x /www

7 、如果现在要新增一个用户叫 china ,则该用什么命令  A B


A 、 adduser china B 、 useradd china
C 、 mkdir china D 、 vi china
Linux 用户与 组群管理

8 、可对文件配置权限的命令有  BC
A 、 chown B 、 umask C 、 chmod D 、 attrib

9 、 /etc/passwd 文件中包含的信息有  A B C D
A 、 uid B 、 gid C 、用户主目录
D 、 shell
10 、使用 chmod 命令修改文件权限时,可以使用的有关用户的
选项参数有  A B C D
A、g B、u C、a D、o