Linux:权限复盘扩展|粘滞位|软件包管理器|Linux软件生态
上篇文章:
https://blog.csdn.net/2401_86123468/article/details/153783787?spm=1001.2014.3001.5501
回顾上篇文章,再追问三个关于权限的问题:
1.复盘扩展
1.进入一个目录需要什么权限?
首先讨论r:

可见,能否进入目录不是r影响的,r影响能否查看目录。
再讨论w:

没有w权限,就不能新增文件和删除文件。文件是否能被删除,由所在的目录w决定(如:目录内的文件是root创建的,但是目录是用户创建的,此时由root创建的文件,普通用户不能读不能写,但普通用户可以删除root创建的文件)。
再讨论x:

可见,x决定是否能够进入目录。
2.什么决定了文件或者目录的默认权限?
2.1文件
对于一个文件而言,其拥有x权限不是主流,其起始权限为666,也就是110 110 110

此时刚创建好的文件所拥有权限为664
在Linux中,存在一种叫做权限掩码(umask)的东西:

此处的0002是八进制,并且只看后三位,将其转换为二进制为:000 000 010,此时就是权限掩码,它的作用是从起始权限中,去掉凡是在权限掩码中出现的权限。
详细分析权限掩码和作用过程:

其中,文件拥有的最终权限 = 起始权限 & (~权限掩码)


权限掩码方便用户灵活调整创建文件时的最终权限:

2.2目录
首先,对于一个目录,其具有x权限是刚需,因为任何目录新建好,都是默认就要进入。所以,其起始权限为777,而此时创建好的目录权限为775。
原因与文件相同:


注意:
不同的系统,不同的用户,umask可能会不一样。
umask不用担心被修改的问题,当重新登陆系统时,umask会恢复默认。
通过umask,可以批量创建满足用户权限需求的文件。
3.粘滞位
注意:粘滞位只能给目录使用。
3.1普通用户不读不写不执行,可以删除吗?
结果是,可以删除,前提是root创建的文件是在普通用户创建的目录下。
因为删除文件按所在目录权限决定而不是目标文件决定。
3.2Linux共享文件
除过管理员,任何人都没有权利进入其他用户的”家里“。

所以,共享文件就不能在任何一个用户的家目录下,一般都存在非用户家目录内部。
具体步骤:

不过,此时的文件由其他人也可以删除,因为此时文件所在的目录,对other有w权限。

但如果去掉w权限,那么在创建的共享文件中的用户也不能新建文件了。
所以此时需要新的权限特征:给目录设置粘滞位。
此时,我们的需求是:任何人都能在共享目录下新建文件;自己只能删除自己创建的文件。

当⼀个目录被设置为"粘滞位"(chmod+t),则该目录下的⽂件只能由超级管理员删除或者该目录的所有者删除或者该⽂件的所有者删除。
注意,此时我们创建的共享目录创建在/目录下,实际上,在Linux根目录中,就存在一个共享目录:

它自身便拥有t。
此后,有关共享文件的创建,更推荐在tmp目录下创建,且不必担心被其他人删除。
2.软件包管理器
2.1软件包
在Linux下有三种安装软件的方式:源代码安装,rpm包,yum/apt
由于前两种方式较为麻烦,所以有人将一些常用的软件提前编译好,做成软件包(类似于手机,windows上的应用商店),放在一个服务器上,通过包管理器可以方便的获取到这个编译好的软件包,直接进行安装。
软件包和包管理器之间的关系就是"App"和”应用商店“一样。
yum(Yellow dogUpdater,Modified)是Linux下非常常用的一种包管理器.主要应用在Fedora,RedHat,Centos等发行版上。
Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。
2.2Linux软件生态
操作系统的生态是评估一款操作系统好坏的核心。
当操作系统有了完整的生态后,也会被更多人选择使用。

其中,开源也是一种商业模式,其核心在于通过开放源代码吸引用户和开发者,构建生态系统,最终通过附加价值实现盈利。

Linux下载软件的过程:

那么,我们的Linux机器,怎么知道软件包在全球的哪台机器上?
在我们Linux中的配置文件中保存着目标服务器的下载链接。

国内镜像源
由于我们使用的Linux系统都是国外的,而我们国内不能访问国外网站,那么此时就会出现一些国内的软件商,通过镜像的方式将国外的所有软件包拷贝一份,并且将配置文件修改为国内的。

(由豆包生成)以下是国内主流的 Linux 软件安装源官方链接,覆盖主流发行版和镜像站,适合快速下载和更新系统及软件包:### 一、企业及云服务商镜像站
1. **阿里云镜像站**  - **官方链接**:[https://developer.aliyun.com/mirror/](https://developer.aliyun.com/mirror/)  - **支持发行版**:CentOS、Ubuntu、Debian、OpenSUSE、Fedora 等。  - **特点**:同步速度快,提供 Docker、Maven、PyPI 等工具镜像,适合企业级部署。2. **华为云镜像站**  - **官方链接**:[https://mirrors.huaweicloud.com/](https://mirrors.huaweicloud.com/)  - **支持发行版**:Ubuntu、CentOS、Debian、OpenEuler(华为自研 Linux)等。  - **特点**:提供详细的配置指南(如 Ubuntu 源替换命令),适合政企客户。3. **腾讯云镜像站**  - **官方链接**:[https://mirrors.cloud.tencent.com/](https://mirrors.cloud.tencent.com/)  - **支持发行版**:Ubuntu、Debian、CentOS、Kubernetes 等。  - **特点**:覆盖开发工具链(如 Node.js、Python),适合云原生开发。4. **网易开源镜像站**  - **官方链接**:[http://mirrors.163.com/](http://mirrors.163.com/)  - **支持发行版**:CentOS、Ubuntu、Debian、OpenWrt 等。  - **特点**:稳定性高,提供 Maven、NPM 等语言包镜像。### 二、高校及教育机构镜像站
1. **清华大学开源软件镜像站(TUNA)**  - **官方链接**:[https://mirrors.tuna.tsinghua.edu.cn/](https://mirrors.tuna.tsinghua.edu.cn/)  - **支持发行版**:Ubuntu、Debian、CentOS、Arch Linux、Fedora 等。  - **特点**:覆盖编程语言(如 PyPI、RubyGems)、开发工具(如 Docker、Kubernetes),提供 IPv4/IPv6 双栈支持。  - **状态监控**:[https://mirror.tuna.tsinghua.edu.cn/](https://mirror.tuna.tsinghua.edu.cn/) 可查看镜像同步状态。2. **中国科学技术大学镜像站(USTC)**  - **官方链接**:[https://mirrors.ustc.edu.cn/](https://mirrors.ustc.edu.cn/)  - **支持发行版**:Ubuntu、Debian、Fedora、Gentoo、OpenWrt 等。  - **特点**:教育网优化,提供科学计算相关软件(如 R、Julia),状态监控页面:[https://mirrors.ustc.edu.cn/status](https://mirrors.ustc.edu.cn/status)。3. **北京交通大学镜像站**  - **官方链接**:[https://mirror.bjtu.edu.cn/](https://mirror.bjtu.edu.cn/)  - **支持发行版**:Debian、Ubuntu、CentOS、Arch Linux 等。  - **特点**:提供详细的配置文档,适合教育网用户。4. **上海交通大学镜像站**  - **官方链接**:[https://ftp.sjtu.edu.cn/](https://ftp.sjtu.edu.cn/)  - **支持发行版**:Ubuntu、Debian、CentOS、Kali Linux 等。  - **特点**:覆盖开发工具链(如 Git、Node.js),华东地区访问速度快。### 三、其他镜像站
1. **中国科学院软件研究所镜像站(ISCAS)**  - **官方链接**:[http://mirror.iscas.ac.cn/](http://mirror.iscas.ac.cn/)  - **支持发行版**:Ubuntu、Debian、Fedora、openSUSE 等。  - **特点**:同步国际开源社区资源,适合科研机构使用。2. **搜狐开源镜像站**  - **官方链接**:[http://mirrors.sohu.com/](http://mirrors.sohu.com/)  - **支持发行版**:CentOS、Ubuntu、Debian 等。  - **注意**:需验证链接有效性,部分镜像可能因政策调整变更。### 四、使用建议
1. **配置方法示例**  - **Ubuntu/Debian**:  修改 `/etc/apt/sources.list`,将 `http://archive.ubuntu.com` 替换为镜像站地址(如华为云:`http://mirrors.huaweicloud.com`),然后执行 `sudo apt update`。  - **CentOS**:  下载镜像源配置文件(如阿里云):  ```bashsudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.reposudo yum clean all && sudo yum makecache```。2. **版本注意事项**  - CentOS 7 已停止支持(2024 年 6 月),建议迁移至 CentOS Stream 或 AlmaLinux,镜像站仍提供历史版本下载。  - 优先选择 LTS(长期支持)版本,如 Ubuntu 22.04、Debian 12,以获取更稳定的更新和安全补丁。3. **速度优化**  - 根据地理位置选择镜像站:  - 华东地区:优先选择上海交大、清华、阿里云。  - 华南地区:华为云、腾讯云。  - 教育网用户:USTC、清华镜像站速度更快。  - 若遇到访问问题,可通过修改 `/etc/hosts` 文件指定镜像站 IP(如 USTC 教育网 IP:`202.38.95.110`)。### 五、扩展资源
- **编程语言镜像**:  - PyPI(清华大学):[https://pypi.tuna.tsinghua.edu.cn/simple](https://pypi.tuna.tsinghua.edu.cn/simple)  - NPM(淘宝):[https://npm.taobao.org/](https://npm.taobao.org/)  
- **代码托管镜像**:  - Gitee(码云):[https://gitee.com/](https://gitee.com/)(同步 GitHub 项目)  - FastGit:[https://hub.fastgit.org/](https://hub.fastgit.org/)(加速 GitHub 访问)  通过以上镜像站,可显著提升 Linux 软件下载速度和稳定性,同时减少国际网络波动的影响。建议定期检查镜像站状态,确保使用最新同步的资源。软件包依赖问题
当我们下载软件时,不仅仅是需要的软件本身,更包含其自身依赖的文件。
之所以在Windows下没有这样的感触,是因为其已经被打包好了,而在Linux下并没有。
此时,在Linux下使用yum/apt下,会自动帮我们打包。

本章完。
