1min解决一个Linux问题
概览第 1 篇:《Linux权限通关指南从sudo提权到属主属组的“安全法则”》前言一、 属主与属组文件到底归谁管1. 修改文件“主人”chown2. 修改所属群组chgrp二、 sudo 提权不要总用 root 登录1.避坑铁律三. 核心踩坑点与细节分析重点1.场景2.正确解法四、总结第 2 篇:《一文搞懂 Linux 文件“双胞胎”软链接与硬链接的底层区别》一文搞懂 Linux 文件“双胞胎”软链接与硬链接的底层区别 核心前置知识什么是 inode一. 硬链接Hard Link文件的“克隆体”1. 创建命令2.2. 底层特性独立性限制二. 软链接Symbolic Link纯粹的“快捷方式”比喻1.创建命令注意必须带 -s为 target.txt 创建一个名为 soft.txt 的软链接2.底层特性①依赖性②优势三、 核心踩坑点与实验分析实验 1修改硬链接原文件会变吗操作现象底层分析实验 2打包压缩时的“体积惨剧”场景硬链接的表现四.对比记忆第 1 篇:《Linux权限通关指南从sudo提权到属主属组的“安全法则”》前言在 Linux 的世界里几乎每天都会遇到Permission denied权限不足。很多新手图省事直接一把梭哈chmod 777或者全程用root账户登录。这在生产环境中等于直接把自家大门敞开。今天带大家用最优雅、最安全的方式搞定 Linux 的权限控制。一、 属主与属组文件到底归谁管Linux 是一个多用户系统每个文件和目录都有它的拥有者属主User和所属群组属组Group。1. 修改文件“主人”chown当需要把一个文件移交给其他用户或者配置 Web 服务目录时经常需要修改属主。# 将 file.txt 的属主修改为 tomchowntom file.txt# 同时修改属主和属组用冒号隔开chowntom:webgroup file.txt# 递归修改整个目录及其下所有文件的属主-R 极其常用chown-Rtom /var/www/html/2. 修改所属群组chgrp如果你只想改变文件的群组让某个团队的成员都能协同操作# 将 file.txt 的属组修改为 webgroupchgrpwebgroup file.txt二、 sudo 提权不要总用 root 登录日常运维中我们应该使用普通用户登录。当需要执行系统级任务如重启服务、安装软件时再通过 sudo 临时获取 root 权限。核心配置如何给普通用户赋能普通用户默认是用不了 sudo 的必须由管理员在 /etc/sudoers 文件中配置。1.避坑铁律绝对不要直接用 *vim /etc/sudoers*因为一旦语法写错整个系统的 sudo 功能可能会瘫痪。请务必使用安全命令visudo。它会在你保存时自动检查语法。配置步骤1.输入 sudo visudo或以 root 身份执行 visudo。2.找到下面这行:# visudo编辑器rootALL(ALL:ALL)ALL3.在它下面添加你想提权的用户比如 jon# visudo编辑器jonALL(ALL:ALL)ALL4.保存退出。现在用户 jon 就可以通过在命令前加 sudo 来执行系统命令了。三. 核心踩坑点与细节分析重点1.场景创建了一个新用户并把它拉进了一个拥有某目录写权限的群组webgroup本以为该用户可以高高兴兴地去创建和删除文件了。结果一顿操作依然报错 Permission denied.原因分析:Linux 的群组权限缓存是在用户登录时加载的。如果你在用户已经登录的情况下在另一个终端里把它加入新组当前登录的会话是感知不到这个权限变化的。2.正确解法1.刷新重连SSH2.临时生效。在当前终端执行 newgrp webgroup这会切换用户的当前有效群组不需要重新登录就能立刻获取新组的权限。四、总结1.能用 sudo 就不用 root安全第一。2.改权限记得用 -R但要看清路径别在根目录 / 乱来。3.加完群组记得刷新会话别跟缓存死磕。第 2 篇:《一文搞懂 Linux 文件“双胞胎”软链接与硬链接的底层区别》“软链接”和“硬链接”是 Linux 里面特别容易让人头大的概念很多人面试时遇到也是靠死记硬背。为了让这篇博客通俗易懂、一针见血我们今天引入一个绝妙的比喻——“房产证与影印件”并直接切入 Linux 底层的 inode索引节点一文搞懂 Linux 文件“双胞胎”软链接与硬链接的底层区别在 Linux 系统中我们经常会遇到需要为文件创建“快捷方式”的场景。Linux 提供了两种链接方式软链接Symbolic Link和硬链接Hard Link。它们看起来都能指向同一个文件但底层的实现逻辑却有着天壤之别。今天这篇博客带大家彻底从底层搞懂这对“双胞胎”。首先从一切的根源inode说起. 核心前置知识什么是 inode要理解链接必须先知道 Linux 是怎么存文件的。在 Linux 文件系统中一个文件被分成两个部分Metadata元数据包含文件的权限、大小、创建时间等以及最核心的身份标识——inode 号索引节点号。Data Block数据块实际存放文件内容的格子。核心底线操作系统找文件不是认文件名而是认inode 号。文件名只是人类为了方便记忆给 inode 贴上的“小纸条”。一. 硬链接Hard Link文件的“克隆体”硬链接实际上就是给同一个 inode 号又贴了一张“新纸条文件名”。比喻就像一栋房子正门贴了张“Chaoyang 的家”的门牌后门又贴了张“Chaoyang 的秘密基地”的门牌。两个门牌指向的是同一栋房子。1. 创建命令# 为 target.txt 创建一个名为 hard.txt 的硬链接(注意我这里没有写路径,默认为当前路径.)lntarget.txt hard.txt2.2. 底层特性如果你用 ls -i 查看它们的 inode 号你会发现它们完全一样$ls-i123456target.txt123456hard.txt独立性删除原文件 target.txt硬链接 hard.txt 完全不受影响你依然能正常读取文件内容。因为这栋房子只要还有一个门牌在它就存在。限制硬链接不能跨文件系统分区且不能作用于目录防止引发死循环。二. 软链接Symbolic Link纯粹的“快捷方式”软链接是一个独立的新文件这个文件里面只存了一串路径——它指向原文件的名字。比喻就像 Windows 的桌面快捷方式。或者说它是一张纸上面写着“真正的房产证在二楼保险箱”。1.创建命令注意必须带 -s为 target.txt 创建一个名为 soft.txt 的软链接# 为 target.txt 创建一个名为 soft.txt 的软链接ln-starget.txt soft.txt2.底层特性用 ls -i 查看它们拥有完全不同的 inode 号$ls-i123456target.txt9394234soft.txt①依赖性如果删除了原文件 target.txt软链接 soft.txt 就会立刻失效变成死链接闪烁红字报错。因为快捷方式指向的源头没了。②优势软链接非常自由可以跨文件系统也可以针对目录创建。三、 核心踩坑点与实验分析很多新手朋友在用命令测试链接时经常会被一些表象迷惑。我们来做两个极其经典的实验实验 1修改硬链接原文件会变吗操作修改 hard.txt 的内容。现象查看 target.txt内容同步变了底层分析因为它们共享同一个 inode指向同一个 Data Block。你改的是同一栋房子的内部装修从哪个门进去看都变了。实验 2打包压缩时的“体积惨剧”场景你的目录下有一个 1GB 的大文件你为了方便方便访问给它创建了 3 个硬链接和 3 个软链接。总共看起来有 7 个文件。硬链接的表现整个目录在磁盘上实际只占用 1GB。因为不管有多少硬链接数据块只有那一份。踩坑点 如果你用 tar -h或 --dereference去打包这个目录tar 会把软链接指向的源文件内容也抓过来打包。原本只有 1GB 的目录打包出来可能会变成好几个 GB⚠️ 避坑提示 在对包含大量链接的系统如备份 /var/log 或特定数据盘进行压缩解压时务必搞清楚你是想备份“链接关系”本身还是想备份“真实数据”合理使用 tar 的参数。四.对比记忆如果觉得这篇底层的拆解帮到你了记得点赞、收藏下一篇我们刚好顺着刚才提到的压缩避坑点聊聊 Linux 里那些让人头晕的 tar、gzip 压缩命令