云计算基础大课
第二章 文件和用户管理
简介:从登陆CentOS-7Linux系统开始。详细阐述了Linux系统文件目录结构。丰富生动的案例,精彩演绎的Linux管理的第一步-文件管理和用户管理工作。
目标:熟悉掌握CentOS 7系统的文件和用户管理的操作与命令
第一节,Linux文件目录的功能
(1)一级目录的内容

01.etc:各种设置
02.root:超级管理员
03.dev:设备(Device)硬件都会以文件的形式在本文件夹体现出来
04.bin:二进制目录 这里面的文件都是命令 可以让计算机立刻工作的命令,也叫程序(类似于exe程序) 是普通用户使用的
05.sbin:super bin 超级管理员使用的命令
06.boot:启动目录 内核(vmlinuz-3.10.0)
(2)Home目录 普通用户的家目录

第二节,Linux文件管理
(1)touch & ls
touch:创建一个空白文件或更改现有文件的时间戳
ls:列出目录内容
(2)cp & cat
cp:复制文件或目录
cat:列出文件内容,合并文件或创建新文件
(3)vim
vim:一个文本编辑器,用于编辑文件内容
打开或新建文件:
vim filename
在 vim 中,有两种主要模式:普通模式(Normal Mode)和插入模式(Insert Mode)。您可以从普通模式进入插入模式,编辑文件内容,然后回到普通模式保存更改和退出。
普通模式:
- i 插入模式,你可以开始输入文本
- a 附加模式,从光标所在位置插入
- o 新开一行并进入插入模式
- O 在当前行上方新开一行并进入插入模式
- h、j、k、l 光标左移、下移、上移、右移
完成编辑后,按 Esc 从插入模式返回到普通模式
普通模式下执行命令:
- u 撤销上一步操作
- Ctrl + r 重做上个被撤销的操作
- yy 复制(yank)当前行
- p 在当前光标之后粘贴
- P 在当前光标之前粘贴
- dd 删除(剪切)当前行
- : 输入 : 进入末行命令模式
末行模式 (执行命令,以 : 开始):
- :w 保存文件但不退出
- :wq 或 :x 或 ZZ : 保存文件并退出
- :q! 不保存文件并强制退出
- :q 如果没有做更改,退出vim
- :%s/old/new/g 换全文中所有的 old 字符串为 new
- :set number 显示行号
- :set nonumber 隐藏行号
查找和替换:
- /pattern 在文本中向下搜索 pattern
- ?pattern 在文本中向上搜索 pattern
- n 继续搜索下一个匹配
- N 反向搜索前一个匹配
跳转至特定行:
- G 跳转至文件末尾
- gg 跳转至文件开头
- [line_number]G 跳转至文件中的第 line_number 行
(4)路径
绝对路径:从根目录开始的完整路径,例如/usr/local/bin
相对路径:相对于当前位置的路径,例如 ../

第三节,Linux文件类型
(1)普通文件()
(2)目录文件(d)
(3)链接文件(l): 符号链接
(4)特殊文件:例如块设备(b)和字符设备(c)
第四节,Linux用户简介
用户账号信息:登录名、密码、用户ID(UID)、组ID(GID)、描述信息、家目录、默认shell等
(1)/etc/passwd:存储用户信息
(2)/etc/group:存储群组信息
第五节,Linux用户shadow文件
(1)/etc/shadow:包含加密后的用户密码以及相关的密码管理信息

(2)shadow文件格式和重要字段介绍
在 CentOS 7 (以及其他大多数基于 Linux 的系统)中,/etc/shadow 文件存储了用户的密码数据以及与之相关的一些管理信息。这个文件的格式通常包含以下字段,以冒号 : 分隔:
- 用户名(username)
: 登录系统的用户的名字。
- 加密密码(encrypted password)
: 用户的加密密码。如果这一字段是一个星号(*)或者一个感叹号(!),则代表这个账户不能被用来登录系统。
- 最后一次密码更改日期(last password change)
: 表示自1970年1月1日以来密码上次更改经过的天数。例如,如果密码最后更改在1970年1月2日,则此字段为1。
- 密码更改前不可更改天数(minimum password age)
: 新密码设置的后,在这个天数内用户不能更改它。
- 密码过期前天数(maximum password age)
: 用户需要更改密码之前可以使用当前密码的最长天数。超过这个天数,用户在下次登录时会被迫更改密码。
- 密码到期前警告天数(warning period)
: 当密码即将过期时,在正式过期前给用户的警告提前天数。
- 密码过期后的宽限时间(inactive period)
: 密码过期后,账户被锁定之前的天数。如果一个账户在这个期间内没有被使用,那么系统会锁定账户直到系统管理员重新激活它。
- 账号过期时间(account expiration date)
: 该字段以自1970年1月1日以来的天数来表示账号过期的日期。一旦到期,账户将无法使用。
- 保留字段(reserved field)
: 目前这一字段不被使用,通常被设置为空或者包含了特定系统的特殊信息。
以下是 /etc/shadow 文件中的一个示例条目:
johndoe:$6$tr5qR/3.Ww$:17500:0:99999:7:::
- johndoe
- $6$tr5qR/3.Ww$
$6$
- 17500
- 0
- 99999
- 7
- 空字段
- 空字段
- 空字段
当设置用户密码安全策略时,管理员会根据需要对这些字段进行配置。这样可以帮助增强系统的安全性,例如通过强迫用户定期更换密码来降低密码泄露的风险。
(3)使用命令passwd更改密码和管理shadow文件
命令 passwd 在Unix和Linux系统中主要用于创建和更改用户密码。这个命令默认会更新 /etc/shadow 文件中对应用户的密码字段。
以下是使用 passwd 命令的一些基本用法:
- 更改当前用户的密码:
passwd
系统会提示您输入当前的密码(如果已设置),然后要求您输入新密码并确认。
- 更改指定用户的密码(需要超级用户权限):
sudo passwd username
这里 username 是您想要更改密码的用户。该命令会提示您输入并确认新的密码,不需要输入现有密码。
- 锁定用户账户(需要超级用户权限):
sudo passwd -l username
username 是您想要锁定的用户。该操作会在用户的密码前添加一个 !,这会阻止用户登录系统。
- 解锁用户账户(需要超级用户权限):
sudo passwd -u username
这会去掉密码字段前的 !,允许用户再次登录系统。
这些基本命令只涉及 passwd 能够更改的几个方面。要更加细致地管理 /etc/shadow 文件中的其他信息(比如密码过期时间等),需要使用其他工具,比如 chage 和对 shadow 文件的直接编辑(必须非常小心执行,因为错误的编辑可能导致安全问题或系统访问问题)。
chage 命令可以用来更改一个账户密码到期的信息,例如,下面的命令将显示指定用户的密码过期信息:
sudo chage -l username
要修改最后更改密码的日期、密码过期之前的天数等,可以使用下面的命令:
sudo chage -E "expiration_date" username
sudo chage -m "min_days" -M "max_days" -W "warn_days" username
其中 -E 指定账户的过期日期, -m 设定更换密码的最短天数, -M 设置更换密码的最长天数, -W 则是设置密码过期警告的天数。
第六节,用户管理命令
(1)账号部分
useradd:创建新用户账号
usermod:修改用户账号信息
userdel:删除用户账号
(2)信息部分
id:显示用户的UID和GID
who:显示当前登录用户信息
su:切换用户账号
第七节,Linux组管理
(1)创建部分
groupadd:创建新群组
groupmod:修改群组信息
groupdel:删除群组
(2)管理部分
gpasswd:管理群组成员和密码
/etc/group和/etc/gshadow文件介绍
第八节,Linux中SU/SUDO命令
(1)su:切换到另一个用户账号,常用于切换到root账号
(2)sudo:以另一个用户的安全权限执行命令,通常用于授权普通用户执行超级用户命令
(3)配置/etc/sudoers文件使用visudo编辑/etc/sudoers文件
第二章总结:
本章聚焦于CentOS 7系统的文件结构、文件和目录管理命令、Linux文件类型、以及用户与群组管理。通过本章的学习,你应该能够熟练地管理Linux系统的文件和用户账号,包括文件创建、编辑、权限设置,用户的添加、修改、删除,以及群组的管理。
课后思考:
如何在CentOS中查找特定文件或目录?
使用find命令可以根据文件名、大小、类型等条件搜索文件
示例:find / -name filename
如何为不同用户配置不同的权限策略?
使用chmod命令来更改文件和目录的权限,分配不同的访问权限给不同的用户或用户组
可以通过chown和chgrp命令更改文件和目录的所有者和所属群组
能否解释为何重要文件如/etc/passwd和/etc/shadow不能被普通用户直接访问?
为了确保安全性,Linux系统将关键文件的访问权限限制为只有超级用户(root)才可以访问和修改
这防止了普通用户对系统文件进行非授权更改,保护了系统的稳定性和安全性
/bin与/sbin目录有何异同?
/bin目录包含的命令是系统用户和管理员常用的基本命令,例如ls和cp
/sbin目录包含的命令是供超级用户(root)使用的系统管理命