chown -R 改不了软链接指向的文件权限?

2023-11-12

关于chown命令的奇怪问题

  都知道在linux系统中,chown 命令用来修改文件或目录的属组,而 chown 后加 -R 参数,则会修改指定目录即该目录下的所有文件的属组。
  那么 chown 命令修改一个软连接文件的权限呢? 比如: chown hack:hack link,结果如下
  在这里插入图片描述
当然是改软连接指向的目标文件的属组,如果target是目录也一样。
ok, 继续执行 chown -R 操作软连接文件看看,chown -R hack:hack dirlink,此时软连接dirlink指向一 个目录,结果如下
  在这里插入图片描述
  纳尼!居然仅仅改了链接文件本身的属组,不科学呀,其他OS上面能把目标路径及路径下的文件属组改了,难道OS不一样实现的机制不同,亦或是高版本的linux内核已做了相关的防御措施?这个问题留着再验证下…
  我的问题在于,chown -R 在操作目标目录时,如果该目录下存在软链接文件,能否把链接指向的目标文件属组篡改?执行 chown -R hack:hack targetDir,结果如下
  在这里插入图片描述
结果显示,chown -R 会将目标目录及该目录下的所有文件、目录、链接文件的属组修改,但是并没有改变软链接指向的 /etc/passwd 文件的属组,即得到的答案是:chown -R 不能修改链接指向的目标文件或目录属组
  奇怪的是,在内核为 3.x 版本的Linux OS 中是可以把链接指向的目录属组改了,目前是在内核4.4版本的系统中试验,可能高版本的内核加了一些防护,之后做下查证。
  但这里也证明 chown -R 不同于 chown,chown -R 不能修改软链接指向的目标文件的属组,但低版本的内核是可以改链接的目录的属组的。

chown -R 误区

  之前一直认为,chown -R 同 chown 一样,会把软链接指向的目标文件属组修改,只是一个操作多个目录文件,chown 操作一个目录文件。因此做了一些试验,也验证了chown -R 不能修改链接指向的目标文件或目录属组,本篇博客就记录到这,之后分析相关源码看看其区别吧,知道其具体缘由的大佬,欢迎评论区留言~~ ^_ ^

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chown -R 改不了软链接指向的文件权限? 的相关文章

  • 在 shell 脚本中连接命令字符串

    我正在维护一个现有的 shell 脚本 它将命令分配给 shell 脚本中的变量 例如 MY COMMAND bin command dosomething 然后接下来 它通过执行以下操作将 参数 传递给 MY COMMAND MY ARG
  • 如何剪切(1) 个驼峰字?

    Bash 中有没有一种简单的方法可以将驼峰式单词拆分为其组成词 例如 我想将 aCertainCamelCasedWord 拆分为 a certain Camel Cased Word 并能够选择我感兴趣的那些字段 当单词分隔符是下划线时
  • 此 bash 命令在 Makefile 中未正确运行

    在 Makefile 里面我有这样的 release version poetry version cut f2 d echo release version 如果我运行 我的终端中的语句将毫无问题地运行 gt version poetry
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 将“npm run start”的输出写入文件

    我想捕获的输出npm run start在一个文件中 我遇到了大量错误 我想更好地控制如何筛选输出 当我尝试时 npm run start gt log txt 我得到一个非常简短的文件 8 行 其结尾为 34m 39m 90m wdm 3
  • 如何在lua中获取shell脚本的返回码?

    我正在lua中执行一个脚本 os execute sh manager scripts update system sh f 我想获得脚本的输出 如果退出状态为 7 则返回 7 I tried local output os execute
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 如何使用我在 github 中发布的 bash 脚本执行 chsh?

    我有一个要点 我总是用它来在新服务器上安装我需要的软件包 http gist github com 4372049 http gist github com 4372049 我需要做的就是通过 ssh 在新服务器中输入以下内容 bash c
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何从 Artifactory 存储库下载最新的工件?

    我需要来自存储库的最新工件 例如快照 人工工厂 http en wikipedia org wiki Software repository Repository managers 该工件需要通过脚本复制到服务器 Linux 我有什么选择
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • 如何从我自己的脚本向 Fish shell 提供制表符补全?

    我运行的是 Ubuntu 13 10 和 Fish 2 1 0 我想自己编写一个 Python 脚本来从命令行执行一些任务 该脚本将需要命令行参数 我怎样才能编写我的脚本 以便 Fish 可以请求并获取给定参数的可能值 潜在值列表是动态的
  • 在退出脚本之前等待后台进程完成

    在退出脚本 TCL Bash 之前 如何确保所有后台进程已完成执行 我正在考虑将所有后台进程 pid 写入 pid 文件 然后最后 pgrep pidfile 以查看在退出之前是否有任何进程仍在运行 有一些更简单的方法可以做到这一点吗 TC
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y
  • 如何使用 sed 将空格替换为 \(space)?

    当我使用 sed 将所有空格替换为 X 时 该命令有效 命令为 sed s X g filelist tmp 但是 当我尝试用 space 替换所有出现的空格时 代码是 sed s g filelist tmp 这不起作用 我究竟做错了什么
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b
  • 如何让 STDOUT 和 STDERR 都转到终端和日志文件?

    我有一个脚本 将由非技术用户交互式运行 该脚本将状态更新写入 STDOUT 以便用户可以确定脚本运行正常 我希望将Stdout和STDERR重定向到终端 以便用户可以看到脚本正在工作 并查看是否存在问题 我还希望将两个流都重定向到日志文件

随机推荐

  • QT笔记-QTableWidget点击表格头,显示菜单项

    1 添加控件 2 示例源码 h private slots void OnClickHeader int head void OnClickMenu QAction action cpp void Textdemo OnInitTableW
  • [css3] 动画案例---会呼吸的圆

  • Python 源代码缩进格式化工具

    前言 昨天在跟小伙伴聊天 当他谈起自己正在做的项目时 一脸愁容 他吐槽道 该项目的 Python 代码库由多个人共同维护 由于每个人使用的编辑器不同 每个人的编码风格也不同 最终导致了 代码的缩进千奇百怪 有缩进 2 个空格的 有缩进 4
  • 《Linux0.11源码解读》理解(四) head之重新设置IDT/GDT

    上节提到 现在cs ip指向0地址 此处存储着作为操作系统核心代码的system模块 是由head s和 main c以及后面所有源代码文件编译链接而成 head s 以下简称head 紧挨着main c 我们先执行head 重新设置内核栈
  • 带外数据

    定义带 外 数据 想 像一下在银行人们排起队等待处理他们的帐单 在这个队伍中每个人最后都会移到前面由出纳员进行服务 现在想像一下一个走入银行 越过整个队伍 然后用枪抵 住出纳员 这个就可以看作为带 外 数据 这个强盗越过整个队伍 是因为这把
  • 第六天哈希表

    哈希表 哈希表是根据关键码的值而直接进行访问的数据结构 其实呢 数组就是一张哈希表 其中 关键码就是索引下标 然后通过下标访问数组中的元素 什么时候想到用哈希法 当我们遇到了要快速判断一个元素是否出现集合里的时候 就要考虑哈希法 这 要枚举
  • 平衡球迷宫教程(一)

    平衡球迷宫教程 一 今天分享一个简单的小游戏 平衡球迷宫 这个游戏简单易上手 非常适合刚刚接触unity人员作为基础练习 一 建立一个道路 可以让小球在上面滚动 这里我建立的道路是用3D物体中cube建立的起初用的地板plane 但是后期更
  • ChatGPT专业应用:生成奖项方案

    正文共 925 字 阅读大约需要 4 分钟 人力资源等必备技巧 您将在4分钟后获得以下超能力 生成奖项方案 Beezy评级 A级 经过寻找和一段时间的学习 一部分人能掌握 主要提升效率并增强自身技能 推荐人 Kim 编辑者 Yolanda
  • C#文件读写

    C 的IO类库提供了丰富的IO操作 下面我来总结一下其IO类库提供的一些操作文件系统的方法 一 操作驱动器 C 用DriveInfo来操作驱动器 1 创建对象 a 我们可以通过静态方法DriveInfo GetDrives 来获取所有的Dr
  • 掌握VS2010调试 -- 入门指南

    1 导言 在软件开发周期中 测试和修正缺陷 defect defect与bug的区别 Bug是缺陷的一种表现形式 而一个缺陷是可以引起多种Bug的 的时间远多于写代码的时间 通常 debug是指发现缺陷并改正的过程 修正缺陷紧随debug之
  • vue 拖拽功能样式优化

    拖拽需求完成之后 发现拖拽的过程中很丑 放下的时候光标处也是禁止 虽然说功能不影响 但是用户体验还是不太好 不够专业 所以请做以下优化 1 把需要拖拽的图标加上可拖拽属性 div 需要拖拽的元素 div draggable true 2 在
  • 数据库表关系设计

    数据库表设计 设计原则 考虑问题时 一定要站在一头考虑 常用的关联关系 主外键关联 主外键设计原则 我自己的主键可以充当别人的外键 核心知识 主键不能重复的 外键可以重复 一对一 业务场景 用户 user 表与用户详情表 user info
  • sql如何查看数据库表的关联关系?

    SHOW CREATE TABLE 表名 不管是Navicat还是MySQL Workbench 要查询表的创建sql语句的话 在新建查询中执行以下sql SHOW CREATE Table BinLots 执行之后 Create Tabl
  • 在Jenkins管道中添加Webhook

    你有没有尝试过在Jenkins中添加GitHub webhook 在这篇博客中 我将演示在您的管道中添加webhook的最简单方法 首先 什么是webhook webhook的概念很简单 webhook是一个HTTP回调 当通过HTTP P
  • 【简单题】(2018)第九届蓝桥杯省赛 C/C++ A组(第一题、第二题)

    第一题 题目 标题 分数1 1 1 2 1 4 1 8 1 16 每项是前一项的一半 如果一共有20项 求这个和是多少 结果用分数表示出来 类似 3 2当然 这只是加了前2项而已 分子分母要求互质 注意 需要提交的是已经约分过的分数 中间任
  • Linux最全解压命令(*.tar *tar.gz *.gz *.tar.bz2 *.bz2 *tar.xz *.xz *tar.Z *.Z *.rar *.zip *.7z *.7za)

    压缩解压命令 这里重点介绍tar命令 它是一个打包程序 它可 以调用其它的命令 如 gzip bzip2 除此之外还有 rar zip命令 注 无特殊说明 代表文件夹 代表次一级文件夹 代表文件 一 tar 用法 tar 选项 FILE c
  • JavaScript 实现 -- 快速排序

    文章目录 快速排序 快排原理 代码实现 快排过程 时间复杂度 算法稳定性 快速排序 快速排序算法是在分治算法基础上设计出来的一种排序算法 和其它排序算法相比 快速排序算法具有效率高 耗费资源少 容易实现等优点 快排原理 选择一个基准数 通过
  • http://wp.qq.com/index.html,登录页

    1Tj HOKWyW28 TMmb Xf OJiNeTZg9K yE gt f oxqaOEW9 jFA LtDl6 zX wJXf lC nHKnU2Txt1ISzG1B3mhYAL90 e 9DBh8eGt gt u7b3F r Yl1
  • 如何做一个合格的微软技术工程师

    我是荔园微风 作为一名在IT界整整25年的老兵 今天我们来重新审视一下如何做一个合格的微软技术工程师 我认为要做一个合格的微软技术工程师 首先是要有兴趣从事这个职业 现在很多人是因为软件行业的薪资高才进入的 但我的看法是 工程师是没有办法一
  • chown -R 改不了软链接指向的文件权限?

    关于chown命令的奇怪问题 都知道在linux系统中 chown 命令用来修改文件或目录的属组 而 chown 后加 R 参数 则会修改指定目录即该目录下的所有文件的属组 那么 chown 命令修改一个软连接文件的权限呢 比如 chown