Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 5 additions & 23 deletions .markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -1,25 +1,7 @@
{
"MD007": {
// Unordered list indentation
"indent": 4
},
"MD013": false, // Line length
"MD033": {
// Inline HTML
"allowed_elements": [
"br", // Useful in tables
"figure",
"figcaption",
"s",
"del" // Python-Markdown parsing issue with CJK
]
},
"MD046": false, // Use fenced code block style, too many false positives
"MD051": false, // Link fragments should be valid, false positives
"MD052": false, // Reference link should be defined and used, false positives with includes/man.md
"MD010": false, // Some command output contains hard tabs
"MD024": {
// Allow multiple headers with the same content, if they are not siblings
"siblings_only": true
}
"MD046": false, // Always use code blocks for commands and outputs.
"MD014": false, // Linux 101 always prepend '$' or '#' to command lines.
"MD033": false, // Allow inline HTML, required by some special cases.
"MD053": false, // False postive for footnotes.
"extends": "node_modules/markdownlint/style/prettier.json",
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

## 友情链接

- [Linux 201](https://github.com/ustclug/Linux201-docs)
- [Linux 201](https://github.com/ustclug/Linux201-docs)

## Star History

Expand Down
34 changes: 17 additions & 17 deletions docs/Appendix/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

Ubuntu 基于 Debian,并且相比 Debian 而言更加新手友好。而 Debian 的开发周期更慢,它的 Stable 分支也更加稳定。在很多方面来说,它们的区别不大,但是仍然需要注意一些事情:

- 不同的发行版、不同的分支的软件源不能混用。向 Debian 添加 Ubuntu 或 Ubuntu PPAs 的源可能会导致软件依赖的混乱。
- Debian 不会预置一些 Ubuntu 特有的特性。从 Snapcraft 商店、Livepatch(在不停机的情况下修复内核漏洞的服务)到 ZSys(由 Ubuntu 开发的 ZFS 管理工具)都不会预置在 Debian 中。
- 在日常使用中,Debian 也有一些小的区别,例如默认情况下,`/sbin` 不在普通用户的 PATH 中。
- 不同的发行版、不同的分支的软件源不能混用。向 Debian 添加 Ubuntu 或 Ubuntu PPAs 的源可能会导致软件依赖的混乱。
- Debian 不会预置一些 Ubuntu 特有的特性。从 Snapcraft 商店、Livepatch(在不停机的情况下修复内核漏洞的服务)到 ZSys(由 Ubuntu 开发的 ZFS 管理工具)都不会预置在 Debian 中。
- 在日常使用中,Debian 也有一些小的区别,例如默认情况下,`/sbin` 不在普通用户的 PATH 中。

## CentOS 与 Fedora {#centos-and-fedora}

Expand All @@ -31,9 +31,9 @@ $ sudo dnf upgrade # 更新系统

SELinux 是由 NSA 编写的开源的 Linux 安全模块,在 CentOS 和 Fedora 上都默认开启。SELinux 解决的问题是,传统的 DAC(自主访问控制, Discretionary Access Control)安全模型(我们在第五章中看到的 `rwx` 就是传统的模型)无法有效应对一些安全风险,如[^1]:

- 用户可能会把「任何人都可读取」的权限赋予在敏感文件(如 SSH 密钥)上。
- 用户的进程可以修改文件的安全性属性。例如,邮件程序可以(尽管不应该)将邮件文件设置为「任何人都可读取」。
- 用户的进程继承用户的权限,如果进程本身有问题或是不安全,那么攻击者可以以该用户的权限作任何事情。例如,如果浏览器被攻击,它可以读取到用户的 SSH 密钥,但浏览器显然不应该做这种事情。
- 用户可能会把「任何人都可读取」的权限赋予在敏感文件(如 SSH 密钥)上。
- 用户的进程可以修改文件的安全性属性。例如,邮件程序可以(尽管不应该)将邮件文件设置为「任何人都可读取」。
- 用户的进程继承用户的权限,如果进程本身有问题或是不安全,那么攻击者可以以该用户的权限作任何事情。例如,如果浏览器被攻击,它可以读取到用户的 SSH 密钥,但浏览器显然不应该做这种事情。

SELinux 添加了额外的「强制访问控制」安全措施:系统中所有的文件、进程和端口等都被贴上了 SELinux 标签,如果访问者(Subject)和被访问对象(Object)的标签不符合规则,访问则会被拒绝。

Expand Down Expand Up @@ -172,9 +172,9 @@ NixOS 的整个系统配置都写在 `/etc/nixos/configuration.nix` 文件中。

NixOS 使用哈希值来标识每个包,相同内容的包总是有相同的哈希值。这意味着:

- 不同版本的软件可以同时存在而不会冲突
- 系统更新是原子性的,要么完全成功,要么完全失败
- 可以轻松回滚到任何之前的配置
- 不同版本的软件可以同时存在而不会冲突
- 系统更新是原子性的,要么完全成功,要么完全失败
- 可以轻松回滚到任何之前的配置

### 软件包管理 {#nixos-package-management}

Expand Down Expand Up @@ -265,13 +265,13 @@ $ nix-shell # 使用 shell.nix 文件定义开发环境

### 学习资源 {#nixos-resources}

- [NixOS 官方手册](https://nixos.org/manual/nixos/stable/)
- [NixOS Wiki](https://nixos.wiki/)
- [Nix Pills - 深入学习 Nix 概念](https://nixos.org/guides/nix-pills/)
- [Awesome Nix - Nix 生态系统资源](https://github.com/nix-community/awesome-nix)
- [NixOS 中文](https://nixos-cn.org/)
- [NixOS 与 Flakes 一份非官方的新手指南](https://nixos-and-flakes.thiscute.world/zh/)
- [nix_resources](https://linktr.ee/nix_resources)
- [wrapper-manager](https://viperml.github.io/wrapper-manager/)
- [NixOS 官方手册](https://nixos.org/manual/nixos/stable/)
- [NixOS Wiki](https://nixos.wiki/)
- [Nix Pills - 深入学习 Nix 概念](https://nixos.org/guides/nix-pills/)
- [Awesome Nix - Nix 生态系统资源](https://github.com/nix-community/awesome-nix)
- [NixOS 中文](https://nixos-cn.org/)
- [NixOS 与 Flakes 一份非官方的新手指南](https://nixos-and-flakes.thiscute.world/zh/)
- [nix_resources](https://linktr.ee/nix_resources)
- [wrapper-manager](https://viperml.github.io/wrapper-manager/)

NixOS 的学习曲线相对陡峭,但一旦掌握,它提供了传统发行版无法比拟的系统管理体验。特别适合需要可重现环境、频繁实验或需要强系统一致性的用户。
6 changes: 3 additions & 3 deletions docs/Appendix/man.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

## 命令行工具:以 `su` 为例

```
```text
SU(1) User Commands SU(1)
(第一行的标题是 User Commands,两边的 SU(1) 代表这篇文档是关于 `su` 的,在文档第一卷。
第一卷与 Shell 命令和程序有关。更多信息可以查看 man man 中 DESCRIPTION 一节的内容。)
Expand Down Expand Up @@ -262,7 +262,7 @@ util-linux July 2014 SU(1)

文档第三卷是程序库函数的信息,包括了 C 语言的标准库函数。

```
```text
STRCMP(3) Linux Programmer's Manual STRCMP(3)

NAME
Expand Down Expand Up @@ -320,7 +320,7 @@ COLOPHON(作者信息、文档来源等信息)

文档第二卷是关于系统调用的信息。当然,很多系统调用都由 C 运行时库包装了一层,否则用起来很麻烦。一个目前还没有被包装的系统调用的例子是 `copy_file_range()`,你需要在你的代码里面使用 `syscall()` 去手动包装它,才能方便地使用。

```
```text
KILL(2) Linux Programmer's Manual KILL(2)

NAME
Expand Down
12 changes: 6 additions & 6 deletions docs/Appendix/markdown.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,14 +194,14 @@ Markdown 使用一种和链接很相似的语法来标记图片,看起来像

我们推荐使用 [Typora](https://typoraio.cn/) 进行 Markdown 的编写,也可以使用 VSCode 配置 Markdown 插件进行编写。下面是一些推荐的 VSCode 插件:

- [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)(`yzhang.markdown-all-in-one`)
- [Markdown Preview Enhanced](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced)(`shd101wyy.markdown-preview-enhanced`)
- [Markdown Preview GitHub Styling](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles)(`bierner.markdown-preview-github-styles`)
- [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)(`yzhang.markdown-all-in-one`)
- [Markdown Preview Enhanced](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced)(`shd101wyy.markdown-preview-enhanced`)
- [Markdown Preview GitHub Styling](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles)(`bierner.markdown-preview-github-styles`)

你可以根据需要进行安装。

## 参考资料

- [Markdown 官方教程](https://markdown.com.cn/)
- [知乎:使用 vscode 开始 Markdown 写作之旅](https://zhuanlan.zhihu.com/p/56943330/)
- [USTC OSH-2023 课程主页](https://osh-2023.github.io/lab0/markdown/)
- [Markdown 官方教程](https://markdown.com.cn/)
- [知乎:使用 vscode 开始 Markdown 写作之旅](https://zhuanlan.zhihu.com/p/56943330/)
- [USTC OSH-2023 课程主页](https://osh-2023.github.io/lab0/markdown/)
Loading