diff --git a/readme.md b/readme.md deleted file mode 100644 index ca26671cbe94778d918c2cc673d931a63f61705e..0000000000000000000000000000000000000000 --- a/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -## 22级实施运维4班 Linux基础笔记 - -上课录屏地址:https://www.alipan.com/s/WN7Foe2SAwB \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.16pm2\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.16pm2\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..6aea43a347492a3d7cea4040426ba498d7836671 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.16pm2\347\254\224\350\256\260.md" @@ -0,0 +1,44 @@ +pm2 是一个流行的 Node.js 进程管理器,它允许用户在后台运行 Node.js 应用程序,并提供了以下主要功能: + +进程管理:pm2 可以管理和监控多个 Node.js 进程,包括启动、重启、停止、重启失败的服务等。 +高可用:pm2 支持集群模式,可以自动重启失败的服务,保证应用的高可用性。 +日志管理:pm2 自带日志管理功能,可以实时查看和管理应用的输出日志,方便调试和监控。 +自动重启:当 Node.js 应用程序因错误崩溃时,pm2 可以自动重启,根据配置设置重启策略。 +进程生命周期钩子:pm2 支持自定义钩子,允许在应用程序启动、停止、重启等关键阶段执行额外操作。 +命令行工具:pm2 提供了简洁的命令行界面,使得管理和操作 Node.js 应用变得简单。 + + +1.启动应用程序: +pm2 start app.js +启动一个 Node.js 应用程序。 + +2.停止应用程序: +pm2 stop +停止指定名称或 ID 的应用程序。 + +3.重启应用程序: +pm2 restart +重启指定名称或 ID 的应用程序。 + +4.查看所有应用程序: +pm2 list +显示所有正在运行的应用程序列表。 + +5.查看应用程序日志: +pm2 logs +查看指定应用程序的日志输出。 + +6.监控资源使用情况: +pm2 monit +监控所有应用程序的 CPU 和内存使用情况。 + +7.查看应用程序状态: +pm2 show +显示指定应用程序的详细信息,包括状态、日志路径等。 + +8.删除应用程序: +pm2 delete +停止并删除指定名称或 ID 的应用程序。 + +9.保存当前应用程序列表: +pm2 save \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.20debian\345\256\211\350\243\205\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.20debian\345\256\211\350\243\205\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..f0d911834d74404f0e6970de646523b154caaa16 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.20debian\345\256\211\350\243\205\347\254\224\350\256\260.md" @@ -0,0 +1,30 @@ +在VMware Workstation上安装Debian操作系统是一个相对简单的过程,涉及到创建一个新的虚拟机并配置其硬件和软件设置。以下是详细的步骤: + +安装准备 +下载Debian镜像:前往Debian官方网站下载最新的Debian镜像文件,通常有DVD镜像或者网络安装镜像。 +安装VMware Workstation:如果你还没有安装VMware Workstation,你需要先下载并安装它。 + +创建虚拟机 +启动VMware Workstation,点击“新建虚拟机”。 +选择虚拟机类型,这里选择“自定义(高级)”。 +选择操作系统,选择“Linux”,然后选择“Debian”。 +输入虚拟机名称,选择安装位置。 +分配资源:为虚拟机分配CPU和内存。 +选择虚拟硬盘文件,设置虚拟硬盘的大小。 +创建虚拟硬件:添加网络适配器、硬盘、光驱等。 +安装操作系统: +插入下载的Debian DVD镜像或者ISO文件。 +启动虚拟机,并选择“安装Debian”。 +按照屏幕上的指示进行操作,选择语言、地区等信息。 +在安装过程中,选择手动分区,并根据自己的需求进行分区设置。 +设置root用户和普通用户密码。 +完成安装后,重启虚拟机。 +配置网络 +编辑虚拟机设置:在VMware Workstation中,右键点击Debian虚拟机,选择“编辑虚拟机设置”。 +网络适配器:确保网络适配器设置为NAT模式,以便虚拟机可以访问外部网络。 +安装后配置 +更新软件包:登录到Debian系统后,使用以下命令更新软件包: +sudo apt update +sudo apt upgrade + +安装必要的软件:根据需要安装额外的软件包,例如文本编辑器、开发工具等。 diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.22linux\344\273\213\347\273\215\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.22linux\344\273\213\347\273\215\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..09158d12ac89ec2255858ff5da363063b0596a19 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.22linux\344\273\213\347\273\215\347\254\224\350\256\260.md" @@ -0,0 +1,16 @@ +Linux 是一个开源的类 Unix 操作系统,它是由林纳斯·托瓦兹(Linus Torvalds)在1991年首次发布的。Linux 操作系统基于 Linux 内核,这个内核是由全球的开发者社区共同维护和发展的。Linux 操作系统因其稳定性、安全性、灵活性和免费开源的特性而被广泛应用于服务器、个人电脑、嵌入式系统等多个领域。 + +Linux 的特点包括: +开源免费:Linux 遵循 GNU 通用公共许可证(GPL),用户可以自由地使用、修改和分发。 +多用户和多任务:Linux 支持多用户同时使用,每个用户可以同时运行多个程序。 +稳定性:Linux 系统非常稳定,可以长时间运行而不需要重启。 +安全性:Linux 提供了强大的安全特性,包括用户权限管理、防火墙等。 +广泛的硬件支持:Linux 支持大量的硬件设备,包括各种处理器架构。 +丰富的软件支持:有大量的开源软件可以在 Linux 上运行,如 Apache、MySQL、PHP 等。 +可定制性:用户可以根据自己的需要定制 Linux 系统,包括桌面环境、启动脚本等。 +Linux 的发行版众多,如 Ubuntu、Fedora、Debian、CentOS、Red Hat Enterprise Linux 等,每个发行版都有其特定的目标用户和用途。例如,Ubuntu 适合桌面用户,而 CentOS 则常用于服务器环境。 + +Linux 的学习和使用对于计算机科学和信息技术领域的专业人士来说是非常重要的,它不仅提供了深入理解操作系统的机会,也是许多服务器和网络应用的基础。 + + + diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.23\347\233\256\345\275\225\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.23\347\233\256\345\275\225\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..9e6f3b741513040351c05f7bd3ad4ff1f820210f --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.23\347\233\256\345\275\225\347\254\224\350\256\260.md" @@ -0,0 +1,19 @@ +Linux系统中的目录结构是文件系统的组织方式,它为用户和程序提供了一个层次化的文件存储位置。在Linux中,所有的文件和目录都组织在一个树状的结构中,以根目录/开始。下面是Linux系统中常见的目录及其简要说明: + +/ - 根目录,整个文件系统的起始点。 +/bin - 用于存放最常用的命令行工具,如ls、cp、mv等。 +/sbin - 存放系统管理的命令行工具,如fsck、init、ip等。 +/etc - 存放系统配置文件。 +/dev - 存放设备文件,用于与硬件设备通信。 +/proc - 虚拟文件系统,用于提供内核信息和系统状态。 +/var - 用于存放易变的文件,如日志、缓存和临时文件。 +/tmp - 用于存放临时文件。 +/usr - 用于存放用户程序和文件,以及大多数应用程序和文件都安装在这里。 +/home - 用户的主目录,每个用户都有自己的子目录。 +/root - root 用户的的主目录。 +/boot - 存放启动Linux系统时使用的文件,如vmlinuz(内核映像)。 +/lib - 存放系统核心库和模块。 +/opt - 第三方应用程序包通常安装在这里。 +/mnt - 用于临时挂载文件系统。 +/media - 用于挂载可移动媒体,如CD-ROM、USB驱动器等。 +/srv - 存放服务相关的数据。 \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.24\346\226\207\344\273\266\345\221\275\344\273\244\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.24\346\226\207\344\273\266\345\221\275\344\273\244\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..8c172a4212dcdcbe9c4d0c5147e0c0f8688dbf27 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.24\346\226\207\344\273\266\345\221\275\344\273\244\347\254\224\350\256\260.md" @@ -0,0 +1,41 @@ +Debian文件和目录管理的命令: + +1.ls:列出目录内容。 +ls:默认列出当前目录的内容。 +ls -l:详细列出文件和目录,包括权限、所有者、大小、日期等信息。 +ls -a:显示隐藏文件。 +ls -h:以人类可读的大小(如K、M、G)显示文件大小。 +cd:改变当前目录。 + +2.cd:切换到上一级目录。 +cd /path/to/directory:切换到指定的目录。 +cd ..:切换到上一级目录。 + +3.mkdir:创建目录。 +mkdir directory_name:创建一个名为 directory_name 的新目录。 + +4.rm:删除文件或目录。 +rm file_name:删除单个文件。 +rm -r directory_name 或 rmdir directory_name:删除目录(注意:rmdir 只能删除空目录,rm -r 可以删除非空目录)。 +rm -i:交互模式,删除前提示确认。 + +5.cp:复制文件或目录。 +cp source destination:复制文件或目录。 +cp -r source destination:递归复制目录。 + +6.mv:移动或重命名文件或目录。 +mv old_file new_file:移动或重命名文件。 +mv old_directory new_directory:移动或重命名目录。 + +7.touch:创建新文件或更新文件时间戳。 +touch file_name:创建新文件。 +touch -a file_name:只更新访问和修改时间戳。 + +8.find:搜索文件或目录。 +find /path -name "pattern":在指定路径下查找匹配特定模式的文件。 + +9.grep:在文件中查找文本。 +grep "pattern" file_name:在指定文件中查找包含特定模式的行。 + +10.less:查看文件内容分页。 +less file_name:预览文件内容,按 q 退出。 \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.27\346\226\207\344\273\266\346\237\245\347\234\213\346\237\245\346\211\276\345\221\275\344\273\244.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.27\346\226\207\344\273\266\346\237\245\347\234\213\346\237\245\346\211\276\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..9a554169ff9fb3ee52a237fc4b3b66dee9f32468 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.27\346\226\207\344\273\266\346\237\245\347\234\213\346\237\245\346\211\276\345\221\275\344\273\244.md" @@ -0,0 +1,55 @@ +# Linux文件查看 + +1.cat 命令 +用途:查看文件内容或者创建空文件。 +基本用法:cat [选项] 文件 +示例:cat /etc/passwd 将显示/etc/passwd文件的内容。 + +2.more 和 less 命令 +用途:分屏显示文件内容,more按页显示,less可以自由浏览。 +基本用法:more 文件 或 less 文件 +示例:more /etc/motd 将分屏显示/etc/motd文件的内容。 + +3.head 和 tail 命令 +用途:查看文件的开头部分(head)或尾部(tail)。 +基本用法:head [选项] 文件 或 tail [选项] 文件 +示例:head -n 10 /etc/passwd 将显示/etc/passwd文件的前10行内容。 + +4.grep 命令 +用途:在文件中搜索指定的文本字符串,并显示匹配行的内容。 +基本用法:grep [选项] 搜索内容 文件 +示例:grep "root" /etc/passwd 将搜索/etc/passwd文件中包含"root"的行。 + +5.vim 或 vi 命令 +用途:强大的文本编辑器,也可以用来查看文件内容。 +基本用法:打开vim或vi编辑器,通过键盘操作查看和编辑文件。 +示例:vim /etc/motd 将打开/etc/motd文件进行查看或编辑。 + + + +# Linux查找: + +1.find 命令 +用途:在目录层次结构中搜索文件和目录。 +基本用法:find 起始目录 查找条件 操作 +示例:find /home -name "*.txt" 将在/home目录及其子目录中查找所有扩展名为.txt的文件。 + +2.locate 命令 +用途:快速查找文件,依赖于一个定期更新的数据库。 +基本用法:locate 文件名 +示例:locate passwd 将查找系统中所有包含passwd字符串的文件。 + +3.which 命令 +用途:查找并显示可执行文件的完整路径。 +基本用法:which 命令名 +示例:which ls 将显示ls命令的完整路径。 + +4.whereis 命令 +用途:查找二进制文件、源代码和帮助文档。 +基本用法:whereis 文件名 +示例:whereis ls 将显示ls命令的二进制文件、源代码和帮助文档的路径。 + +5.type 命令 +用途:显示命令的类型,如是否为内置命令、别名或外部命令。 +基本用法:type 命令名 +示例:type ls 将显示ls命令的类型。 \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.29vim\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.29vim\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..d1b2f6508a7e25945a0d9c7585a1aca802d0a9c8 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.29vim\347\254\224\350\256\260.md" @@ -0,0 +1,39 @@ +vim 是一个非常强大的文本编辑器,它拥有多种模式和操作,下面是一些常用的操作: + +打开文件:vim 文件名 +进入插入模式: +按下 i 可以在当前光标位置开始插入文本。 +按下 a 可以在当前光标位置后面开始插入文本。 +按下 o 可以在当前光标所在行的下一行开始插入文本。 +按下 I 可以在当前行的开头插入文本。 +按下 A 可以在当前行的结尾插入文本。 +按下 O 可以在当前行的上一行开始插入文本。 +退出插入模式:按下 Esc 键。 + +保存文件: +在命令模式下输入 :w 可以保存当前文件。 +在命令模式下输入 :w 文件名 可以将当前文件另存为新文件。 + +退出编辑器: +在命令模式下输入 :q 可以退出编辑器。 +在命令模式下输入 :q! 可以强制退出编辑器,不保存当前文件的修改。 +在命令模式下输入 :wq 可以保存当前文件的修改并退出编辑器。 +在命令模式下输入 :wq! 可以强制保存当前文件的修改并退出编辑器。 +查找和替换文本: +在命令模式下输入 / 然后输入要查找的文本,按下 Enter 可以查找文本。 +在命令模式下输入 :%s/原文本/新文本/g 可以将所有原文本替换为新文本。 + +移动光标: +按下 h 可以向左移动光标。 +按下 l 可以向右移动光标。 +按下 j 可以向下移动光标。 +按下 k 可以向上移动光标。 +按下 G 可以移动到文件的最后一行。 +按下 gg 可以移动到文件的第一行。 +按下 nG 可以移动到第 n 行。 + +复制和粘贴文本: +在命令模式下输入 yy 可以复制当前行。 +在命令模式下输入 p 可以在当前光标位置粘贴复制的文本。 +在命令模式下输入 dd 可以删除当前行。 +在命令模式下输入 u 可以撤销上一次操作。 \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.30vim\345\205\211\346\240\207\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.30vim\345\205\211\346\240\207\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..86f303500609110ad11084a6f70f4b2ec2ccef89 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.30vim\345\205\211\346\240\207\347\254\224\350\256\260.md" @@ -0,0 +1,17 @@ +Vim 是一种常用的文本编辑器,它有许多快捷键来移动光标 + +h: 向左移动一个字符; +l: 向右移动一个字符; +j: 向下移动一行; +k: 向上移动一行; +0: 移动到当前行的开头; +$: 移动到当前行的结尾; +G: 移动到文件的最后一行; +gg: 移动到文件的第一行; +w: 移动到下一个单词的开头; +b: 移动到当前单词的开头; +e: 移动到当前单词的结尾; +Ctrl + f: 向下滚动一页; +Ctrl + b: 向上滚动一页; +Ctrl + d: 向下滚动半页; +Ctrl + u: 向上滚动半页; \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.5.31vim\347\274\226\350\276\221.md" "b/\345\274\240\346\236\227\346\235\260/2024.5.31vim\347\274\226\350\276\221.md" new file mode 100644 index 0000000000000000000000000000000000000000..2b3c28a2a036dab2c753e55abe8c70a95371bc5f --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.5.31vim\347\274\226\350\276\221.md" @@ -0,0 +1,40 @@ +在 Vim 中编辑文本: + +插入模式下的快捷键 +i:在光标所在位置进入插入模式,并开始输入文本。 +a:在光标所在位置的下一个字符处进入插入模式。 +o:在当前行的下方新建一行并进入插入模式。 +O:在当前行的上方新建一行并进入插入模式。 +A:在光标所在行的末尾进入插入模式。 + +普通模式下的编辑快捷键 +d:删除文本。后面通常需要跟上一些参数来指定删除的范围和数量。 +dd:删除当前行。 +D:从光标所在位置到行尾的所有内容。 +u:撤销上一步操作。 +U:撤销所有操作。 + +文本替换 +s:替换。后面跟上要替换的字符或模式以及替换成的字符。 +:%s/old/new/g:全局替换文件中所有的“old”为“new”。 + +移动光标 +h:向左移动光标。 +j:向下移动光标。 +k:向上移动光标。 +l:向右移动光标。 +w:移动到下一个单词的开头。 +b:移动到上一个单词的开头。 +e:移动到当前单词的结尾。 +ge:移动到当前单词的结尾。 +0:移动到行首。 +$:移动到行尾。 +gg:移动到文件开头。 +G:移动到文件末尾。 +ctrl + f:向前翻页。 +ctrl + b:向后翻页。 + +退出 Vim +:q:退出 Vim。如果文件有修改,需要使用 :wq 来保存并退出。 +:x:保存文件并退出,等同于 :wq。 +ZZ:保存文件并退出,等同于 :wq,这是在插入模式下的快捷键。 \ No newline at end of file diff --git "a/\345\274\240\346\236\227\346\235\260/2024.6.03\345\242\236\345\212\240\347\224\250\346\210\267\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.6.03\345\242\236\345\212\240\347\224\250\346\210\267\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..e0c5faae20625861f97be6df6c5c9e115d14c16d --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.6.03\345\242\236\345\212\240\347\224\250\346\210\267\347\254\224\350\256\260.md" @@ -0,0 +1,22 @@ +在Linux系统中,用户管理是指对用户和用户组的管理,包括创建、修改、删除用户和用户组,以及设置用户和用户组的权限等。 + +创建用户: +useradd [选项] 用户名 +useradd 命令用于创建新用户,常用选项包括: +-u UID:指定用户ID,默认情况下系统会自动分配一个未使用的UID。 +-g 用户组:指定用户的主要组,如果该组不存在,则会自动创建。 +-G 用户组:指定用户的附加组,用户可以同时属于多个组。 +-m:创建用户的同时,自动创建一个用户主目录。 + +修改用户信息: +usermod [选项] 用户名 +usermod 命令用于修改用户信息,常用选项包括: +-u UID:修改用户ID。 +-g 用户组:修改用户的主要组。 +-G 用户组:修改用户的附加组。 +-l 新用户名:修改用户名。 + +删除用户: +userdel [选项] 用户名 +userdel 命令用于删除用户,常用选项包括: +-r:删除用户的同时,自动删除用户的主目录。 diff --git "a/\345\274\240\346\236\227\346\235\260/2024.6.05\346\235\203\351\231\220\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.6.05\346\235\203\351\231\220\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..54016863675a850b4e162ad4edf94a550221182b --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.6.05\346\235\203\351\231\220\347\254\224\350\256\260.md" @@ -0,0 +1,57 @@ +在Linux系统中,su和su -是切换用户账户的命令,它们的主要区别在于环境切换和是否需要输入密码。 + +su命令: +su命令可以让你切换到其他用户账户,包括root用户和其他普通用户。 +当你从普通用户账户切换到root用户时,通常需要输入root用户的密码。 +当你从root用户切换到其他普通用户时,不需要输入目标用户的密码。 +使用su命令时,默认不会切换用户的环境变量,比如PATH环境变量,这意味着你切换用户后,可能无法直接使用某些命令,除非这些命令已经被添加到当前用户的环境中。 + +su -命令: +su -命令也用于用户切换,但它与su命令的区别在于它会在切换用户的同时,切换环境变量配置,使得新用户的环境与root用户的环境一样。 +使用su -命令切换到root用户时,同样需要输入root用户的密码。 +从root用户切换到其他普通用户时,不需要输入目标用户的密码。 +su -命令中的-代表"login shell",意味着它会执行一个完整的登录shell环境切换,包括环境变量的更新。 +总结: + +su主要用于快速切换用户,不关心环境变量配置。 +su -用于需要完整环境变量配置的切换,特别是在执行需要特定环境变量才能运行的命令时。 + + +在Linux系统中,权限管理是操作系统安全的核心部分,它控制着用户对文件和目录的访问。 + +1. 用户和用户组 +用户(User):每个文件和目录都有一个所有者,即创建它的用户。 +用户组(Group):除了所有者,文件和目录还属于一个用户组。用户组是一组用户的集合,可以简化权限管理。 +其他用户(Others):既不是文件所有者,也不属于文件所属用户组的用户。 + +2. 权限类型 +Linux系统中的权限分为三种类型: +读(Read):用字母r表示,允许用户查看文件内容或目录列表。 +写(Write):用字母w表示,允许用户修改文件内容或目录中的文件。 +执行(Execute):用字母x表示,允许用户运行文件(如果是程序或脚本)或进入目录。 + +3. 权限表示 +每个文件或目录的权限由10个字符表示,例如-rwxr-xr-x。这10个字符的含义如下: +第一个字符表示文件类型(-表示普通文件,d表示目录,l表示链接等)。 +接下来的三个字符rwx表示文件所有者的权限。 +再接下来的三个字符r-x表示文件所属用户组的权限。 +最后三个字符r-x表示其他用户的权限。 + +4. 修改权限 +可以使用chmod命令来修改文件或目录的权限。例如: +chmod u+x file:给文件所有者添加执行权限。 +chmod g-w file:从文件所属用户组中移除写权限。 +chmod o=r file:设置其他用户只有读权限。 + +5. 修改所有者和用户组 +可以使用chown和chgrp命令来修改文件或目录的所有者和用户组。例如: +chown user file:将文件的所有者更改为user。 +chgrp group file:将文件的用户组更改为group。 + +6. 特殊权限 +除了基本的读、写、执行权限外,Linux还支持一些特殊权限: +Setuid:当设置在可执行文件上时,允许用户以文件所有者的权限运行该程序。 +Setgid:当设置在目录上时,新创建的文件会继承该目录的用户组。 +Sticky Bit:当设置在目录上时,只有文件所有者、目录所有者或超级用户可以删除或重命名该目录中的文件。 +这些特殊权限分别用s(Setuid或Setgid)和t(Sticky Bit)表示,出现在执行权限的位置。 + diff --git "a/\345\274\240\346\236\227\346\235\260/2024.6.06\346\200\235\347\273\264\345\257\274\345\233\276\345\222\214\346\235\203\351\231\220\347\254\224\350\256\260/2024.6.06\347\273\204\346\235\203\351\231\220\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.6.06\346\200\235\347\273\264\345\257\274\345\233\276\345\222\214\346\235\203\351\231\220\347\254\224\350\256\260/2024.6.06\347\273\204\346\235\203\351\231\220\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..9bce2b7f278526fc40edb066ddde4cccd04d59f9 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.6.06\346\200\235\347\273\264\345\257\274\345\233\276\345\222\214\346\235\203\351\231\220\347\254\224\350\256\260/2024.6.06\347\273\204\346\235\203\351\231\220\347\254\224\350\256\260.md" @@ -0,0 +1,57 @@ +Linux权限管理是操作系统安全的重要组成部分,它决定了不同用户和组对文件系统的访问能力。 +# 基本概念 +文件类型与权限位 +普通文件(-) +目录(d) +权限位:读(r)、写(w)、执行(x) +权限对象 + +所有者(User) +所属组(Group) +其他用户(Other) +权限表示法 + +符号表示法:rwx +数字表示法:r=4, w=2, x=1 (如:7=4+2+1, 表示读、写、执行权限) + +# 权限管理命令 +修改权限 + +1. chmod (Change Mode) +用于改变文件或目录的权限。 + +语法:chmod [options] mode file_or_directory +例子: +chmod 755 file.txt:设置文件所有者有读写执行权限,所属组和其他用户有读执行权限。 +chmod u+x file.txt:给文件所有者添加执行权限。 +chmod g-w file.txt:移除所属组的写权限。 +2. chown (Change Ownership) +用于改变文件或目录的所有者。 + +语法:chown [options] user[:group] file_or_directory +例子: +chown user1 file.txt:改变文件所有者为user1。 +chown user1:group1 file.txt:改变文件所有者为user1,所属组为group1。 + +3. chgrp (Change Group) +用于改变文件或目录的所属组。 + +语法:chgrp [options] group file_or_directory +例子: +chgrp group1 file.txt:改变文件所属组为group1。 + + +特殊权限 +SUID (Set User ID) + +允许用户以文件所有者的权限运行程序 +chmod 4755 suid_file +SGID (Set Group ID) + +允许用户以文件所属组的权限运行程序 +chmod 2755 sgid_file +Sticky Bit + +防止用户删除或重命名目录中的文件,除非他们是文件的所有者或超级用户 +chmod 1777 sticky_directory/ + diff --git "a/\345\274\240\346\236\227\346\235\260/2024.6.06\346\200\235\347\273\264\345\257\274\345\233\276\345\222\214\346\235\203\351\231\220\347\254\224\350\256\260/Linux\346\235\203\351\231\220\347\256\241\347\220\206.xmind" "b/\345\274\240\346\236\227\346\235\260/2024.6.06\346\200\235\347\273\264\345\257\274\345\233\276\345\222\214\346\235\203\351\231\220\347\254\224\350\256\260/Linux\346\235\203\351\231\220\347\256\241\347\220\206.xmind" new file mode 100644 index 0000000000000000000000000000000000000000..9df297b244726cc3d1a7ac42217728417f8a9826 Binary files /dev/null and "b/\345\274\240\346\236\227\346\235\260/2024.6.06\346\200\235\347\273\264\345\257\274\345\233\276\345\222\214\346\235\203\351\231\220\347\254\224\350\256\260/Linux\346\235\203\351\231\220\347\256\241\347\220\206.xmind" differ diff --git "a/\345\274\240\346\236\227\346\235\260/2024.6.07\351\232\220\350\227\217\346\235\203\351\231\220\347\254\224\350\256\260.md" "b/\345\274\240\346\236\227\346\235\260/2024.6.07\351\232\220\350\227\217\346\235\203\351\231\220\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..3d8b5fc056567d862e826fa09883bd792abe45e5 --- /dev/null +++ "b/\345\274\240\346\236\227\346\235\260/2024.6.07\351\232\220\350\227\217\346\235\203\351\231\220\347\254\224\350\256\260.md" @@ -0,0 +1,29 @@ +除了常规的文件权限(读、写、执行),还存在一种称为“隐藏权限”的特殊权限,这通常指的是使用chattr命令设置的属性,这些属性可以防止文件被删除或修改,即使是对root用户也是如此。 + +# 设置隐藏权限(chattr) +chattr命令用于设置文件的特殊属性。以下是一些常用的属性设置: +i:不可变属性,使得文件不能被修改、删除或重命名。 +a:只追加属性,使得只能向文件追加数据,不能删除或修改已有数据。 +s:压缩属性,文件内容在磁盘上以压缩形式存储。 +u:不可删除属性,即使文件被删除,其数据仍然保存在磁盘上,可以通过undelete命令恢复。 +示例: +chattr +i important_file.txt +上面的命令将important_file.txt文件设置为不可变。 + +# 查看隐藏权限(lsattr) +lsattr命令用于查看文件的隐藏权限。它会显示文件的所有特殊属性。 +示例: +lsattr important_file.txt +显示important_file.txt文件的属性。如果文件设置了不可变属性,i属性被列出。 + +移除隐藏权限 +移除之前设置的隐藏权限,可以使用chattr命令,并使用减号-来去除特定的属性。 + +示例: +chattr -i important_file.txt +上面的命令会移除important_file.txt文件的不可变属性。 + +注意事项 +只有root用户或具有适当权限的用户才能设置和移除这些特殊属性。 +这些隐藏权限并不影响文件的标准权限位(读、写、执行),它们是独立的。 +在某些Linux发行版中,chattr和lsattr可能不是默认安装的,可能需要从包管理器安装。 \ No newline at end of file