### 《LINUX与UNIX SHELL编程指南》读书笔记知识点详解 #### 一、文件的安全与权限 在《LINUX与UNIX SHELL编程指南》这本书中,作者详细介绍了Linux和Unix系统中关于文件的安全性和权限管理的核心概念。这部分内容非常重要,因为理解文件权限对于进行有效的系统管理以及编写可靠的Shell脚本都是基础。 **1. 文件的基本访问方式** - **读 (r)**:允许用户查看文件的内容。这是最基本的文件操作权限。 - **写 (w)**:允许用户修改或删除文件。这比读权限更加敏感,因为它涉及到对文件内容的更改。 - **执行 (x)**:如果文件是一个Shell脚本或可执行程序,那么执行权限则允许用户运行它。 **2. 文件的权限分类** 文件权限根据针对的用户类型可以分为三类: - **文件属主**:创建该文件的用户。属主对文件具有最高的控制权。 - **同组用户**:拥有该文件的用户组中的任何用户。这些用户通常具有一些共同的特点,比如属于同一个部门或项目团队。 - **其他用户**:除了文件属主和同组用户之外的所有用户。这类用户通常只具有较低级别的访问权限。 **3. `ls -l` 命令的输出解析** `ls -l` 命令可以详细列出目录中的文件及其属性。以下是一个示例输出及解析: ``` drwxr-xr-x 2 root root 4096 Oct 14 20:18 bin ``` - **第1个部分**(第1个字符)表示文件的类型: - **d**:目录文件,即目录也是一种特殊类型的文件。 - **l**:符号链接,即指向另一个文件的链接。 - **b**:块设备文件,例如硬盘驱动器。 - **c**:字符设备文件,例如串行端口。 - **p**:命名管道,用于进程间通信。 - **s**:套接字文件,用于网络通信。 - **-**:普通文件,即不是上述特殊类型的文件。 - **第1个部分**(第2-10个字符)分为3组(triplets),分别表示文件的属主、组用户和其他用户的权限。 - **第2个部分**:表示该文件的硬链接的数目。硬链接指向同一个文件的不同入口。 - **第3个部分**:表示文件的属主。 - **第4个部分**:文件的属主所在的主要用户组。 - **第5个部分**:表示文件的大小,以字节为单位。 - **第6-7个部分**:文件的最后修改日期和时间。 - **第8个部分**:文件名。 **4. 文件的权限位** - **文件权限位**由9个字符组成,分成3个triplets,分别表示文件属主、文件属主所属缺省组的用户、系统中其他用户所拥有的权限。 - **每个triplet**由3个字符位组成(rwx),分别表示可读、可写、可执行。如果对应位置的字符是"-",表示不具有对应权限。 - **SUID(Set User ID)**:当设置在文件权限位的owner triplet第3个位置上的字符为“s”时,称为SUID。这意味着当某用户执行该文件时,系统将使用文件owner的UID替代实际执行该文件的用户的UID。 - **SGID(Set Group ID)**:当设置在文件权限位的group triplet第3个位置上的字符为“s”时,称为SGID。这意味着当某用户执行该文件时,系统将使用文件组拥有者的GID替代实际执行该文件的用户的GID。 - **粘性位(Sticky Bit)**:在某些目录(如/tmp)的other triplet的第3个字符设置为“t”。一般来说,在目录的other triplet上设置了w和x权限,则任何用户都可以在该目录下执行、删除文件,而设置“t”的作用就是保证非目录的owner用户不能删除目录下的文件。 **5. 使用chmod命令改变权限位** - **符号模式**:`chmod [who] <operator> <perm> file_name` - `who`:可以是ugoa,分别表示给文件的owner、group、other和all用户设置权限。省略时默认为a。 - `operator`:可以是+-=,分别表示增加、取消、指定权限。 - `perm`:可以是rwxs(suid和guid)t(粘性位)l(给文件加锁,使其他用户无法访问)。 - 示例:`chmod u+x w-,o-w myfile` // 给myfile的owner增加x权限,并去除w权限;同时去除other用户的w权限。 - **绝对模式**:`chmod mode file_name` - `mode`:4位8进制数,每一位分别用于SUID和SGID、属主权限、组权限、其他用户权限。当用户给出的mod值小于4位时,系统会在数字前面加0。例如,`chmod 755 myfile` // 设置myfile的属主权限为rwx,组和其他用户权限为rx。 通过上述知识点的学习,我们可以更好地理解Linux和Unix系统中的文件安全性与权限管理机制,这对于进行有效的系统管理和开发可靠的Shell脚本至关重要。
- 粉丝: 12
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2_2.迁安恒茂造纸工艺流程图(内) 2024.03.23N.dwg..bin
- HUF75329D3S-VB一种N-Channel沟道TO252封装MOS管
- HUF75329D3ST-VB一种N-Channel沟道TO252封装MOS管
- 查找目录下指定字符串脚本(资源已经附上)
- HUF75321D3S-VB一种N-Channel沟道TO252封装MOS管
- Testfhroqeghpbtjgr
- HM5P55R-VB一种P-Channel沟道SOT223封装MOS管
- 电气工程Matlab Simulink仿真模型复现,采用同步发电机(VSG)控制实现电网电压不平衡下的电流平衡控制或者有功恒定控
- 基于Java CS架构、Socket、多线程,用swing实现的超市收银管理系统
- 交错并联 boost PFC电路闭环控制仿真模型,采用电压电流双闭环PI控制 输入交流220,输出直流400 输出效果良好