Top

  1. 查看目录和文件
  2. 创建目录和文件
  3. 复制 / 删除 / 移动文档
  4. 使用 vim 新建 / 修改文件
  5. 管理用户账号
  6. 管理组账号
  7. 配置文档归属
  8. 配置访问权限

1 查看目录和文件

1.1 问题

本例要求先学会使用 ls 列出目录和文件属性,相关说明如下。

1)查看根目录 / 下有哪些文档或子目录

2)以长格式显示结果,对比 /bin、/usr/bin/ 目录详细属性

3)列出当前目录下的所有文档(包括隐藏文档)

然后学会使用 cat、less 命令来查看 Linux 中的短文件、长文件,相关说明如下。

1)显示文件 /etc/os-release 的内容,了解系统版本

2)分页浏览文件 /proc/cpuinfo 的内容,了解 CPU 处理器信息

1.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用 ls 命令列出目录或文件属性

1)查看根目录 / 下有哪些文档或子目录

  1. 1. \[root@svr203 ~\]\# ls /
  2. 2. bin etc lib64 mnt root srv tmp
  3. 3. boot home lost+found opt run sudo usr
  4. 4. dev lib media proc sbin sys var

在白底黑字的命令行终端上的 ls 显示结果中,黑色表示常规文件、深蓝色表示目录、浅蓝色表示快捷方式、绿色表示可执行文件、红色表示压缩包文件、黄色表示设备。

2)以长格式显示结果,对比 /bin、/usr/bin/ 目录详细属性

  1. 1. \[root@svr203 ~\]\# ls -ld /bin /usr/bin/
  2. 2. lrwxrwxrwx. 1 root root 7 12 8 20:40 /bin -> usr/bin
  3. 3. dr-xr-xr-x. 2 root root 20480 5 26 16:56 /usr/bin/

/bin 目录实际上是指向 /usr/bin 目录的一个快捷方式(一种特殊的文件)。

3)列出当前目录下的所有文档(包括隐藏文档)

  1. 1. \[root@svr203 ~\]\# ls
  2. 2. anaconda-ks.cfg
  3. 4. \[root@svr203 ~\]\# ls -A
  4. 5. anaconda-ks.cfg .bash_logout .bashrc .tcshrc
  5. 6. .bash_history .bash_profile .cshrc

步骤二:使用 cat、less 命令查看文件

1)显示文件 /etc/os-release 的内容

  1. 1. \[root@svr203 ~\]\# cat /etc/os-release
  2. 2. NAME="openEuler"
  3. 3. VERSION="20.03 (LTS-SP1)"
  4. 4. ID="openEuler"
  5. 5. VERSION_ID="20.03"
  6. 6. PRETTY_NAME="openEuler 20.03 (LTS-SP1)"
  7. 7. ANSI_COLOR="0;31"
  8. 9. \[root@svr203 ~\]#

2)浏览 CPU 信息 /proc/cpuinfo

  1. 1. \[root@svr203 ~\]\# cat /proc/cpuinfo
  2. 2. processor : 0
  3. 3. vendor_id : GenuineIntel
  4. 4. cpu family : 6
  5. 5. model : 142
  6. 6. model name : Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
  7. 7. stepping : 10
  8. 8. microcode : 0xe0
  9. 9. cpu MHz : 2712.001
  10. 10. cache size : 8192 KB
  11. 11. physical id : 0
  12. 12. siblings : 1
  13. 13. core id : 0
  14. 14. cpu cores : 1
  15. 15. apicid : 0
  16. 16. initial apicid : 0
  17. 17. fpu : yes
  18. 18. fpu_exception : yes
  19. 19. cpuid level : 22
  20. 20. wp : yes
  21. 21. flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant\_tsc arch\_perfmon nopl xtopology tsc\_reliable nonstop\_tsc cpuid pni pclmulqdq vmx ssse3 fma cx16 pcid sse4\_1 sse4\_2 x2apic movbe popcnt tsc\_deadline\_timer aes xsave avx f16c rdrand hypervisor lahf\_lm abm 3dnowprefetch cpuid\_fault invpcid\_single pti ssbd ibrs ibpb stibp tpr\_shadow vnmi ept vpid ept\_ad fsgsbase tsc\_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md\_clear flush\_l1d arch_capabilities
  22. 22. bugs : cpu\_meltdown spectre\_v1 spectre\_v2 spec\_store\_bypass l1tf mds swapgs itlb\_multihit srbds
  23. 23. bogomips : 5424.00
  24. 24. clflush size : 64
  25. 25. cache_alignment : 64
  26. 26. address sizes : 45 bits physical, 48 bits virtual
  27. 27. power management:
  28. 29. \[root@svr203 ~\]#

2 创建目录和文件

2.1 问题

本例要求从 Linux 命令行创建目录、创建测试文件,相关说明如下。

1)使用 mkdir 命令创建目录结构 / ntd/lnxsec/

2)使用 touch 命令在 / ntd/lnxsec / 目录下创建空文件 day01.txt、day02.html

3)列出 /ntd/lnxsec/ 目录下所有以 .txt 结尾的文件

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:创建目录结构

1)创建新目录

  1. 1. \[root@svr203 ~\]\# ls -ld /ntd/lnxsec
  2. 2. ls: 无法访问/ntd/lnxsec: 没有那个文件或目录
  3. 4. \[root@svr203 ~\]\# mkdir /ntd/lnxsec
  4. 5. mkdir: 无法创建目录"/ntd/lnxsec": 没有那个文件或目录
  5. 7. \[root@svr203 ~\]\# mkdir -p /ntd/lnxsec

2)确认创建结果

  1. 1. \[root@svr203 ~\]\# ls -ld /ntd/lnxsec/
  2. 2. drwxr-xr-x. 2 root root 4096 5 29 10:24 /ntd/lnxsec/
  3. 3. \[root@svr203 ~\]#

步骤二:创建空文件

1)进入目标文件夹

  1. 1. \[root@svr203 ~\]\# cd /ntd/lnxsec/
  2. 2. \[root@svr203 lnxsec\]\# pwd
  3. 3. /ntd/lnxsec

2)创建新文件

  1. 1. \[root@svr203 lnxsec\]\# ls
  2. 2. \[root@svr203 lnxsec\]\# touch day01.txt day02.html

3)确认创建结果

  1. 1. \[root@svr203 lnxsec\]\# ls
  2. 2. day01.txt day02.html

步骤三:列出 /ntd/lnxsec/ 目录下所有以 .txt 结尾的文件

使用通配符 * 表示文件名中的未知部分。

  1. 1. \[root@svr203 ~\]\# ls /ntd/lnxsec

3 复制 / 删除 / 移动文档

3.1 问题

本例要求从命令行完成文档的复制 / 删除 / 移动等操作,相关说明如下。

1)在当前目录下创建一个子目录 mulu1

2)将文件夹 /boot/grub2 复制到目录 mulu1 下

3)将目录 /root/ 下以 .cfg 结尾的文件复制到 mulu1 下

4)将目录 mulu1 下的 grub2 子目录改名为 grub2.bak

5)删除 mulu1 目录下的 grub2.bak 子目录

3.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:在当前目录下创建一个子目录 mulu1

1)确认当前目录

  1. 1. \[root@svr203 ~\]\# pwd
  2. 2. /root

2)创建子目录

  1. 1. \[root@svr203 ~\]\# ls -ld /root/mulu1
  2. 2. ls: 无法访问/root/mulu1: 没有那个文件或目录
  3. 3. \[root@svr203 ~\]\# mkdir /root/mulu1
  4. 4. \[root@svr203 ~\]\# ls -ld /root/mulu1
  5. 5. drwxr-xr-x. 2 root root 6 4 23 14:33 /root/mulu1

步骤二:将文件夹 /boot/grub2/ 复制到目录 mulu1 下

1)复制文件夹

  1. 1. \[root@svr203 ~\]\# ls /root/mulu1/
  2. 2. \[root@svr203 ~\]\# cp /boot/grub2/ /root/mulu1/
  3. 3. cp: 略过目录"/boot/grub2/"
  4. 4. \[root@svr203 ~\]\# ls /root/mulu1/
  5. 5. \[root@svr203 ~\]\# cp -r /boot/grub2/ /root/mulu1/

2)确认复制结果

  1. 1. \[root@svr203 ~\]\# ls /root/mulu1/
  2. 2. grub2

步骤三、将目录 /root/ 下以 .cfg 结尾的文件复制到 mulu1 下

1)复制文件

2)确认结果

  1. 1. \[root@svr203 ~\]\# ls /root/mulu1/
  2. 2. anaconda-ks.cfg grub2 initial-setup-ks.cfg

步骤四:将目录 mulu1 下的 grub2 子目录改名为 grub2.bak

  1. 1. \[root@svr203 ~\]\# mv /root/mulu1/grub2 /root/mulu1/grub2.bak

步骤五:删除 mulu1 目录下的 grub2.bak 子目录

1)删除 grub2.bak 目录

  1. 1. \[root@svr203 ~\]\# rm -rf /root/mulu1/grub2.bak

2)确认删除结果

  1. 1. \[root@svr203 ~\]\# ls -d /root/mulu1/grub*
  2. 2. ls: cannot access '/root/mulu1/grub*': No such file or directory

4 使用 vim 新建 / 修改文件

4.1 问题

本例要求使用 vim 新建文件、修改文件,相关说明如下。

首先,使用 vim 编辑器在 / bin / 目录下新建文件 hello,操作要求如下:

1)录入内容 echo Hello World

2)保存后使用 cat 命令确认文件内容

然后,修改系统文件 / etc/hosts,操作要求如下。

1)在末尾增加一行内容 “127.0.0.1 www.baidu.com”

2)保存后使用 cat 命令确认文件内容

4.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用 vim 创建新文件

1)使用 vim 编辑器新建文件 /bin/hello

  1. 1. \[root@svr203 ~\]\# vim /bin/hello

2)按 i 键切换为输入模式,在第一行录入文本

3)保存文件

完成录入后,先按 Esc 键回到命令模式,再输入 :wq 保存并退出编辑器。

4)使用 cat 命令确认文件内容

  1. 1. \[root@svr203 ~\]\# cat /bin/hello
  2. 2. cat /etc/os-release

步骤二:使用 vim 修改文件

1)修改文件 /etc/hosts

在末尾增加一行内容 127.0.0.1 www.baidu.com。

  1. 1. \[root@svr203 ~\]\# vim /etc/hosts
  2. 2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. 3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 4. 127.0.0.1 www.baidu.com

2)使用 cat 命令确认文件内容

  1. 1. \[root@svr203 ~\]\# cat /etc/hosts
  2. 2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. 3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 4. 127.0.0.1 www.baidu.com

5 管理用户账号

5.1 问题

本例要求从命令行管理 Linux 用户账号,相关说明如下。

1)新建名为 nvshen 的用户账号,将密码设置为 1234567,测试远程登录

2)彻底删除用户 nvshen,检查其 ID 信息,检查其家目录是否可用

5.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:新建名为 nvshen 的用户账号

1)新建用户

  1. 1. \[root@svr203 ~\]\# id nvshen
  2. 2. id: nvshen: no such user
  3. 3. \[root@svr203 ~\]\# useradd nvshen
  4. 4. \[root@svr203 ~\]\# id nvshen
  5. 5. uid=1001(nvshen) gid=1001(nvshen) 组=1001(nvshen)

2)为用户设置密码为 1234567

  1. 1. \[root@svr203 ~\]\# passwd nvshen
  2. 2. 更改用户 nvshen 的密码
  3. 3. 新的 密码:
  4. 4. 无效的密码: 密码少于 8 个字符
  5. 5. 重新输入新的 密码:
  6. 6. passwd:所有的身份验证令牌已经成功更新。

3)测试以用户 nvshen 远程登录到系统

在 Windows 真机中打开 putty.exe 工具,连接到此 Linux 虚拟机,以账号 nvshen 可以登录成功。

步骤二:彻底删除名为 nvshen 的用户账号

1)删除用户

  1. 1. \[root@svr203 ~\]\# userdel -r nvshen
  2. 2. \[root@svr203 ~\]#

2)检查已删除用户的 ID 信息,查看提示结果(已没有此用户)

  1. 1. \[root@svr203 ~\]\# id nvshen
  2. 2. id: nvshen: no such user

3)检查其家目录是否可用

  1. 1. \[root@svr203 ~\]\# ls /opt/nvshen
  2. 2. ls: 无法访问/opt/nvshen: 没有那个文件或目录

6 管理组账号

6.1 问题

本例要求从命令行管理 Linux 组账号,相关说明如下。

1)新建名为 gaibang 的组账号

2)确认用户 nvshen 可用(或重新添加)

3)将用户 nvshen 添加为 gaibang 组的成员,确认结果

4)将 gaibang 组账号删除,再次检查用户 nvshen 的组属性

6.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:新建名为 gaibang 的组账号

  1. 1. \[root@svr203 ~\]\# groupadd gaibang

步骤二:确认用户 nvshen 可用(或重新添加)

1)添加新用户帐号

  1. 1. \[root@svr203 ~\]\# id nvshen
  2. 2. id: nvshen: no such user
  3. 3. \[root@svr203 ~\]\# useradd nvshen

2)确认用户账号的默认属性

  1. 1. \[root@svr203 ~\]\# id nvshen
  2. 2. uid=1001(nvshen) gid=1002(nvshen) 组=1002(nvshen)

步骤三:将用户 nvshen 添加为 gaibang 组的成员,确认结果

1)添加组成员

  1. 1. \[root@svr203 ~\]\# gpasswd -a nvshen gaibang
  2. 2. 正在将用户“nvshen”加入到“gaibang”组中

2)确认成员用户的属性

  1. 1. \[root@svr203 ~\]\# id nvshen
  2. 2. uid=1001(nvshen) gid=1002(nvshen) 组=1002(nvshen),1001(gaibang)

步骤四:将 gaibang 组账号删除,再次检查用户 nvshen 的组属性

1)删除组账号

  1. 1. \[root@svr203 ~\]\# groupdel gaibang

2)检查原组成员用户的属性

  1. 1. \[root@svr203 ~\]\# id nvshen
  2. 2. uid=1001(nvshen) gid=1002(nvshen) 组=1002(nvshen)

7 配置文档归属

7.1 问题

本例要求理解文档的归属关系,并通过归属变更了解其重要性,相关说明如下。

首先新建测试用户 lvbu、diaochan,然后完成下列归属测试操作。

1)检查用户 lvbu 的家目录的归属

2)以用户 diaochan 登录,尝试进入 lvbu 的家目录

3)把 lvbu 的家目录的属主更改为 diaochan

4)以用户 diaochan 登录,再次尝试进入 lvbu 的家目录

5)以用户 lvbu 登录,结果是什么?

6)重新将 lvbu 的家目录的属主恢复为 lvbu

7.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备测试账号

1)新建用户 lvbu、diaochan

  1. 1. \[root@svr203 ~\]\# useradd lvbu
  2. 2. \[root@svr203 ~\]\# useradd diaochan

2)为用户 lvbu、diaochan 设置密码

  1. 1. \[root@svr203 ~\]\# echo 1234567 | passwd --stdin lvbu
  2. 2. 更改用户 lvbu 的密码
  3. 3. passwd:所有的身份验证令牌已经成功更新。
  4. 4. \[root@svr203 ~\]\# echo 1234567 | passwd --stdin diaochan
  5. 5. 更改用户 diaochan 的密码
  6. 6. passwd:所有的身份验证令牌已经成功更新。

步骤二:更改归属测试

1)检查用户 lvbu 的家目录的归属

  1. 1. \[root@svr203 ~\]\# ls -ld ~lvbu
  2. 2. drwx------. 3 lvbu lvbu 78 7 23 12:03 /home/lvbu

2)以用户 diaochan 登录,尝试进入 lvbu 的家目录

  1. 1. \[root@svr203 ~\]\# su - diaochan
  2. 2. \[diaochan@svr203 ~\]$ cd ~lvbu
  3. 3. -bash: cd: /home/lvbu: 权限不够
  4. 4. \[diaochan@svr203 ~\]$ exit
  5. 5. 登出

3)把 lvbu 的家目录的属主更改为 diaochan

  1. 1. \[root@svr203 ~\]\# chown diaochan ~lvbu
  2. 2. \[root@svr203 ~\]\# ls -ld ~lvbu
  3. 3. drwx------. 3 diaochan lvbu 78 7 23 12:03 /home/lvbu

4)以用户 diaochan 登录,再次尝试进入 lvbu 的家目录

  1. 1. \[root@svr203 ~\]\# su - diaochan
  2. 2. 上一次登录:一 7 23 17:38:27 CST 2018pts/1
  3. 3. \[diaochan@svr203 ~\]$ cd ~lvbu
  4. 4. \[diaochan@svr203 lvbu\]$ exit
  5. 5. 登出

5)以用户 lvbu 登录,结果是什么?

  1. 1. \[root@svr203 ~\]\# su - lvbu
  2. 2. su: 警告:无法更改到 /home/lvbu 目录: 权限不够
  3. 3. -bash: /home/lvbu/.bash_profile: 权限不够
  4. 4. -bash-4.2$ exit
  5. 5. 登出
  6. 6. -bash: /home/lvbu/.bash_logout: 权限不够
  7. 7. \[root@svr203 ~\]#

6)重新将 lvbu 的家目录的属主恢复为 lvbu

  1. 1. \[root@svr203 ~\]\# chown lvbu ~lvbu
  2. 2. \[root@svr203 ~\]\# ls -ld ~lvbu
  3. 3. drwx------. 3 lvbu lvbu 78 7 23 12:03 /home/lvbu

8 配置访问权限

8.1 问题

本例要求理解目录的 r、w、x 权限,学会从命令行设置文档权限,相关说明如下。

首先,通过下列操作测试对目录的 r、x 权限:

1)修改 lvbu 的家目录属性,使其他人有读取、可执行权限

2)以用户 diaochan 登录,尝试 ls -A、cd 到 lvbu 家目录

然后,通过下列操作测试对目录的 w 权限:

1)由 root 用户在 /home/lvbu/ 目录下新建 root.txt 文件

2)对比目录 /home/lvbu/ 和文件 /home/lvbu/root.txt 的归属及权限

3)以用户 lvbu 登录,尝试查看、修改、删除 root.txt 文件

8.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:测试对目录的 r、x 权限

1)修改 lvbu 的家目录属性,使其他人有读取、可执行权限

  1. 1. \[root@svr203 ~\]\# chmod o+rx /home/lvbu
  2. 2. \[root@svr203 ~\]\# ls -ld /home/lvbu
  3. 3. drwx\-\-\-r-x. 3 lvbu lvbu 78 7 23 12:03 /home/lvbu

2)以用户 diaochan 登录,尝试 ls -A、cd 到 lvbu 家目录

  1. 1. \[root@svr203 ~\]\# su - diaochan
  2. 2. 上一次登录:一 7 23 17:40:33 CST 2018pts/1
  3. 3. \[diaochan@svr203 ~\]$ ls -A /home/lvbu
  4. 4. .bash_logout .bash_profile .bashrc .mozilla
  5. 5. \[diaochan@svr203 ~\]$ cd /home/lvbu
  6. 6. \[diaochan@svr203 lvbu\]$ exit
  7. 7. 登出

步骤二:测试对目录的 w 权限

1)由 root 用户在 /home/lvbu/ 目录下新建 root.txt 文件

  1. 1. \[root@svr203 ~\]\# vim /home/lvbu/root.txt
  2. 2. Top Secret.

2)对比目录 /home/lvbu/ 和文件 /home/lvbu/root.txt 的归属及权限

  1. 1. \[root@svr203 ~\]\# ls -ld /home/lvbu/ /home/lvbu/root.txt
  2. 2. drwx\-\-\-r-x. 3 lvbu lvbu 78 7 23 12:03 /home/lvbu
  3. 3. -rw-r--r--. 1 root root 0 7 23 17:49 /home/lvbu/root.txt

3)以用户 lvbu 登录,尝试查看、修改、删除 root.txt 文件

  1. 1. \[root@svr203 ~\]\# su - lvbu
  2. 2. 上一次登录:一 7 23 18:19:15 CST 2018pts/1
  3. 4. \[lvbu@svr203 ~\]$ cat /home/lvbu/root.txt
  4. 5. Top Secret.
  5. 6. \[lvbu@svr203 ~\]$ vim /home/lvbu/root.txt
  6. 7. Top Secret.
  7. 8. .. ..
  8. 9. "/home/lvbu/root.txt" \[只读\] 1L, 12C
  9. 11. \[lvbu@svr203 ~\]$ rm -rf /home/lvbu/root.txt
  10. 12. \[lvbu@svr203 ~\]$ ls /home/lvbu/root.txt
  11. 13. ls: 无法访问/home/lvbu/root.txt: 没有那个文件或目录
  12. 14. \[lvbu@svr203 ~\]$ exit
  13. 15. 登出
  14. 16. \[root@svr203 ~\]#

https://tts.tmooc.cn/ttsPage/NTD/NTDTN202109/LNXSEC/DAY02/CASE/01/index.html