Skip to content

Commit 81b5996

Browse files
committed
docs: edit docs
1 parent e5696a4 commit 81b5996

2 files changed

Lines changed: 27 additions & 27 deletions

File tree

docs/mktemp.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
# mktemp 命令
22

3-
有时,Bash 脚本需要创建临时文件或临时目录,使用`mktemp`命令是最安全的做法。
3+
有时,Bash 脚本需要创建临时文件或临时目录。常见的做法是,自己在`/tmp`目录里面生成一个文件,这样做有很多弊端,使用`mktemp`命令是最安全的做法。
44

55
## 临时文件的安全问题
66

7-
直接创建临时文件,尤其是在`/tmp`目录里面,往往会导致安全问题。
7+
直接创建临时文件,尤其在`/tmp`目录里面,往往会导致安全问题。
88

9-
首先,`/tmp`目录是所有人可写的,任何用户都可以该目录里面的文件
9+
首先,`/tmp`目录是所有人可读写的,任何用户都可以往该目录里面写文件。创建的临时文件也是所有人可读的
1010

1111
```bash
1212
$ touch /tmp/info.txt
1313
$ ls -l /tmp/info.txt
1414
-rw-r--r-- 1 ruanyf ruanyf 0 12月 28 17:12 /tmp/info.txt
1515
```
1616

17-
上面代码中,在`/tmp`目录里面直接创建文件,该文件默认是所有人可读的。
17+
上面命令在`/tmp`目录直接创建文件,该文件默认是所有人可读的。
1818

19-
其次,如果攻击者知道临时文件的文件名,他可以创建符号链接,链接到临时文件,可能导致系统运行异常,也可能向脚本提供一些恶意数据。因此,理想的做法是,临时文件要使用不可预测的文件名
19+
其次,如果攻击者知道临时文件的文件名,他可以创建符号链接,链接到临时文件,可能导致系统运行异常。攻击者也可能向脚本提供一些恶意数据。因此,临时文件最好使用不可预测、每次都不一样的文件名
2020

21-
最后,临时文件使用完毕,应该删除。但是,脚本意外退出的时候,可能会忽略了清理临时文件
21+
最后,临时文件使用完毕,应该删除。但是,脚本意外退出时,往往会忽略清理临时文件
2222

2323
## 临时文件的最佳实践
2424

25-
临时文件的创建,应该遵循下面的最佳做法
25+
脚本生成临时文件,应该遵循下面的规则
2626

27-
- 创建前检查文件是否已经存在。
28-
- 确保临时文件已成功创建。
29-
- 临时文件必须有权限的限制。
30-
- 临时文件要使用不可预测的文件名。
31-
- 脚本退出时,要删除临时文件(使用`trap`命令)。
27+
> - 创建前检查文件是否已经存在。
28+
> - 确保临时文件已成功创建。
29+
> - 临时文件必须有权限的限制。
30+
> - 临时文件要使用不可预测的文件名。
31+
> - 脚本退出时,要删除临时文件(使用`trap`命令)。
3232
33-
## mktemp 的用法
33+
## mktemp 命令的用法
3434

35-
`mktemp`命令就是为安全创建临时文件而设计的。它在创建临时文件之前,不会检查临时文件是否存在,但是它有唯一文件名的生成机制和有效的清除机制,因此足以减轻安全攻击的风险
35+
`mktemp`命令就是为安全创建临时文件而设计的。虽然在创建临时文件之前,它不会检查临时文件是否存在,但是它支持唯一文件名和清除机制,因此可以减轻安全攻击的风险
3636

37-
直接运行`mktemp`命令,就能创建一个临时文件
37+
直接运行`mktemp`命令,就能生成一个临时文件
3838

3939
```bash
4040
$ mktemp
@@ -44,7 +44,7 @@ $ ls -l /tmp/tmp.4GcsWSG4vj
4444
-rw------- 1 ruanyf ruanyf 0 12月 28 12:49 /tmp/tmp.4GcsWSG4vj
4545
```
4646

47-
上面代码中`mktemp`命令创建的临时文件名是随机的,而且权限是只有用户本人可读写。
47+
上面命令中`mktemp`命令生成的临时文件名是随机的,而且权限是只有用户本人可读写。
4848

4949
Bash 脚本使用`mktemp`命令的用法如下。
5050

@@ -55,7 +55,7 @@ TMPFILE=$(mktemp)
5555
echo "Our temp file is $TMPFILE"
5656
```
5757

58-
为了确保临时文件创建成功,`mktemp`命令后面最好使用 OR 运算符(`||`),指定运行失败时的退出命令
58+
为了确保临时文件创建成功,`mktemp`命令后面最好使用 OR 运算符(`||`),指定创建失败时退出脚本
5959

6060
```bash
6161
#!/bin/bash
@@ -75,7 +75,7 @@ TMPFILE=$(mktemp) || exit 1
7575
echo "Our temp file is $TMPFILE"
7676
```
7777

78-
## mktemp 的参数
78+
## 四、mktemp 命令的参数
7979

8080
`-d`参数可以创建一个临时目录。
8181

@@ -84,14 +84,14 @@ $ mktemp -d
8484
/tmp/tmp.Wcau5UjmN6
8585
```
8686

87-
`-p`参数可以指定临时文件所在的目录。默认是使用`$TMPDIR`环境变量指定的目录,如果这个变量不存在,那么使用`/tmp`目录。
87+
`-p`参数可以指定临时文件所在的目录。默认是使用`$TMPDIR`环境变量指定的目录,如果这个变量没设置,那么使用`/tmp`目录。
8888

8989
```bash
9090
$ mktemp -p /home/ruanyf/
9191
/home/ruanyf/tmp.FOKEtvs2H3
9292
```
9393

94-
`-t`参数可以指定临时文件的文件名模板,模板的末尾必须至少包含三个连续的`X`字符,表示随机字符,建议至少使用六个`X`默认的文件名格式是`tmp.`后接十个随机字符。
94+
`-t`参数可以指定临时文件的文件名模板,模板的末尾必须至少包含三个连续的`X`字符,表示随机字符,建议至少使用六个`X`默认的文件名模板是`tmp.`后接十个随机字符。
9595

9696
```bash
9797
$ mktemp -t mytemp.XXXXXXX

docs/trap.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ $ trap [动作] [信号]
2929

3030
上面代码中,“动作”是一个 Bash 命令,“信号”常用的有以下几个。
3131

32-
- HUP:编号1,脚本与所在的终端脱离联系。
33-
- INT:编号2,用户按下 Ctrl + C,意图让脚本中止运行。
34-
- QUIT:编号3,用户按下 Ctrl + 斜杠,意图退出脚本。
35-
- KILL:编号9,该信号用于杀死进程。
36-
- TERM:编号15,这是`kill`命令发出的默认信号。
37-
- EXIT:编号0,这是 Bash 脚本特有的信号,不管什么情况,只要退出脚本就会产生。
32+
> - HUP:编号1,脚本与所在的终端脱离联系。
33+
> - INT:编号2,用户按下 Ctrl + C,意图让脚本中止运行。
34+
> - QUIT:编号3,用户按下 Ctrl + 斜杠,意图退出脚本。
35+
> - KILL:编号9,该信号用于杀死进程。
36+
> - TERM:编号15,这是`kill`命令发出的默认信号。
37+
> - EXIT:编号0,这不是系统信号,而是 Bash 脚本特有的信号,不管什么情况,只要退出脚本就会产生。
3838
3939
`trap`命令响应`EXIT`信号的写法如下。
4040

@@ -58,7 +58,7 @@ if grep -qi "kernel" $TMPFILE; then
5858
fi
5959
```
6060

61-
上面代码中,不管是脚本正常执行结束,还是用户按 Ctrl + C 终止,都会产生`EXIT`信号,从而触发删除临时文件的命令
61+
上面代码中,不管是脚本正常执行结束,还是用户按 Ctrl + C 终止,都会产生`EXIT`信号,从而触发删除临时文件
6262

6363
注意,`trap`命令必须放在脚本的开头。否则,它上方的任何命令导致脚本退出,都不会被它捕获。
6464

0 commit comments

Comments
 (0)