【busybox记录】【shell指令】chown

news/2024/8/22 18:24:41 标签: linux, 运维, 服务器

目录

内容来源:

【GUN】【chown】指令介绍

【busybox】【chown】指令介绍

linux%E3%80%91%E3%80%90chown%E3%80%91%E6%8C%87%E4%BB%A4%E4%BB%8B%E7%BB%8D-toc" style="margin-left:0px;">【linux】【chown】指令介绍

使用示例:

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

        GUN : Coreutils - GNU core utilities

        busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【chown】指令介绍

chown:更改文件所有者和组
chown 将每个给定文件的用户和/或组所有权更改为新所有者或现有引用文件的用户和组。
简介:
chown [option]... {new-owner | --reference=ref_file} file...
如果使用new-owner,则指定新的所有者 和 组,如下所示(没有嵌入空白):
[owner] [ : [group] ]
具体地说:
owner           如果只给出了一个所有者(用户名或数字用户ID),则该用户将成为每个给定文件的所有者,而文件的组不会改变。
owner‘:’group   如果所有者后面跟着一个冒号和一个组(组名或数字组ID),并且在它们之间没有空格,那么文件的组所有权也会改变(变为组)。
owner‘:’        如果owner后面有冒号但没有组名,则该用户成为文件的所有者,文件的组更改为所有者的登录组。
‘:’group        如果给出了冒号和后面的组,但省略了所有者,则只改变文件的组;在本例中,chown的功能与chgrp相同。
‘:’             如果只给出了冒号,或者new-owner为空,则不会改变所有者和组。
如果所有者或组打算表示数字用户或组ID,则可以用` + `开头指定。参见第2.4节[消除名称和id的歧义],第6页。
一些旧的脚本可能仍然使用‘.’代替‘:’分隔符。POSIX 1003.1-2001(参见第2.13节[标准一致性],第11页)不需要对此支持,但对于向后兼容性GNU chown支持。只要没有产生歧义,尽管它会发出警告,支持可能会在未来的版本中被删除。新的脚本应该避免使用‘.’因为它是不可移植的,而且如果整个所有者都持有它会产生不良的结果‘.’组碰巧标识了一个名称包含‘.’的用户。
用户是否可以将组更改为任意组,或者将可移植性更强的行为限制为设置用户是其中一员的组,这取决于系统。
chown命令有时会清除set-user-ID或set-group-ID权限位。
这种行为取决于底层chown系统调用的策略和功能,该系统调用可能会对依赖于系统的文件模式进行修改,而chown命令无法控制这些修改。例如,当具有适当权限的用户调用chown命令时,或者这些位表示除可执行权限之外的其他功能时(例如强制锁定),chown命令可能不会影响这些位。如果有疑问,请检查底层系统行为。
该程序接受以下选项。参见第2章[常见选项],第2页。
‘-c’
‘--changes’
	详细描述每个所有权实际改变的文件的操作。
‘-f’
‘--silent’
‘--quiet’ 
	不要打印关于无法更改其所有权的文件的错误消息。
‘--from=old-owner’
	仅当文件具有old-owner指定的当前属性时,才更改文件的所有权。旧所有者与新所有者具有上述相同的形式。这个选项主要从安全的角度来看是有用的,因为它大大缩小了潜在滥用的窗口。例如,要反映一个用户的文件的用户ID编号变化而没有类似的选项,可以运行root命令
		find / -owner OLDUSER -print0 | xargs -0 chown -h NEWUSER
	但这是危险的,因为find测试现有文件的所有者与chown实际运行之间的间隔可能非常大。缩小差距的一种方法是对找到的每个文件都调用chown:
		find / -owner OLDUSER -exec chown -h NEWUSER {} \;
	但是如果有很多受影响的文件,这将非常缓慢。使用这个选项,它更安全(差距更小),但仍然不完美:
		chown -h -R --from=OLDUSER NEWUSER /
‘--dereference’
	不要对符号链接本身进行操作,而是对它们指向的内容进行操作。这是不进行递归操作时的默认值。
	将解除引用选项与 --recursive选项结合起来可能会产生安全风险:在遍历目录树期间,攻击者可能会将符号链接引入到任意目标;当工具到达这个位置时,就会对该符号链接的目标执行操作,这可能会允许攻击者提升权限。
‘-h’
‘--no-dereference’
	操作符号链接本身,而不是它们指向的内容。该模式依赖于lchown系统调用。在不提供lchown系统调用的系统上,不会发出诊断,但请参阅— --erbose。
‘--preserve-root’
	以递归方式修改根目录/时失败。如果没有 --recursive,这个选项就没有效果。参见第2.9节[特殊处理],第9页。
‘--no-preserve-root’
	取消前面的 --preserve-root选项的效果。参见第2.9节[特殊处理],第9页。
‘--reference=ref_file’
	将每个文件的用户和组更改为与ref file的用户和组相同。如果ref file是一个符号链接,不要使用符号链接的用户和组,而要使用它所引用的文件的用户和组。
‘-v’
‘--verbose’
	为处理的每个文件输出一个诊断。如果在没有lchown系统调用的系统上进行递归遍历时遇到符号链接,并且 --no-dereference生效,则发出诊断,指出符号链接及其引用都没有被更改。
‘-R’
‘--recursive’
	递归地更改目录及其内容的所有权。
‘-H’ 
	如果指定了 --recursive (-R),并且命令行参数是指向目录的符号链接,则遍历该目录。参见第2.8节[遍历符号链接],第9页。
‘-L’ 
	在递归遍历中,遍历遇到的目录的每个符号链接。
	将解除引用选项与 --recursive选项结合起来可能会产生安全风险:在遍历目录树期间,攻击者可能会将符号链接引入到任意目标;当工具到达这个位置时,就会对该符号链接的目标执行操作,这可能会允许攻击者提升权限。参见第2.8节[遍历符号链接],第9页。
‘-P’ 
	不要遍历任何符号链接。如果不指定-H、-L或-P,则为默认值。参见第2.8节[遍历符号链接],第9页。

退出状态为零表示成功,非零值表示失败。例子:
#将 /u 的属主改为root
chown root /u
#类似,但将其分组更改为"staff"。
chown root:staff /u
#将 /u 及其子文件的属主改为root。
chown -hR root /u

【busybox】【chown】指令介绍

[root@localhost bin]# ./chown --help
BusyBox v1.36.1 (2024-04-16 11:16:28 EDT) multi-call binary.

Usage: chown [-RhLHPcvf]... USER[:[GRP]] FILE...

Change the owner and/or group of FILEs to USER and/or GRP

	-h	Affect symlinks instead of symlink targets
	-L	Traverse all symlinks to directories
	-H	Traverse symlinks on command line only
	-P	Don't traverse symlinks (default)
	-R	Recurse
	-c	List changed files
	-v	Verbose
	-f	Hide errors

linux%E3%80%91%E3%80%90chown%E3%80%91%E6%8C%87%E4%BB%A4%E4%BB%8B%E7%BB%8D" style="margin-left:.0001pt;">linux】【chown】指令介绍

[root@localhost bin]# chown --help
用法:chown [选项]... [所有者][:[组]] 文件...
 或:chown [选项]... --reference=参考文件 文件...
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With --reference, change the owner and group of each FILE to those of RFILE.

  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --dereference      affect the referent of each symbolic link (this is
                         the default), rather than the symbolic link itself
  -h, --no-dereference   affect symbolic links instead of any referenced file
                         (useful only on systems that can change the
                         ownership of a symlink)
      --from=当前所有者:当前所属组
                         	只当每个文件的所有者和组符合选项所指定时才更改所
				有者和组。其中一个可以省略,这时已省略的属性就不
				需要符合原有的属性。
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's owner and group rather than
                         specifying OWNER:GROUP values
  -R, --recursive        operate on files and directories recursively

The following options modify how a hierarchy is traversed when the -R
option is also specified.  If more than one is specified, only the final
one takes effect.

  -H                     if a command line argument is a symbolic link
                         to a directory, traverse it
  -L                     traverse every symbolic link to a directory
                         encountered
  -P                     do not traverse any symbolic links (default)

      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

Owner is unchanged if missing.  Group is unchanged if missing, but changed
to login group if implied by a ':' following a symbolic OWNER.
OWNER and GROUP may be numeric as well as symbolic.

示例:
  chown root /u		将 /u 的属主更改为"root"。
  chown root:staff /u	和上面类似,但同时也将其属组更改为"staff"。
  chown -hR root /u	将 /u 及其子目录下所有文件的属主更改为"root"。

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 chown 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/chown>
或者在本地使用:info '(coreutils) chown invocation'

使用示例:

后续补充

常用组合指令:

指令不常用/组合用法还需继续挖掘:


http://www.niftyadmin.cn/n/5556514.html

相关文章

【DRAM存储器三十四】LPDDR4介绍--MR和IO结构

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《镁光LPDDR4数据手册》 、《JESD209-4B》 目录 MR DDR3、DDR4、LPDDR4的IO结构变化 MR LPDDR4的MR包括保留未用的有64个,这个就不像以前一…

数据结构初阶(C语言)-顺序表

一&#xff0c;线性表 在进行顺序表的介绍之前&#xff0c;我们先来了解下什么是线性表&#xff1a; 线性表是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串...线性表在…

如何在 C# 中实现高效的内存管理,避免内存泄漏和提高性能?

在C#中实现高效的内存管理和提高性能可以采取以下几个方法&#xff1a; 使用对象池&#xff1a;对象池是一种重复使用对象的技术&#xff0c;可以减少内存分配和释放的开销。可以使用 ObjectPool 类或者自定义一个简单的对象池来管理对象的创建和回收。 及时释放资源&#xff…

实验二:图像灰度修正

目录 一、实验目的 二、实验原理 三、实验内容 四、源程序和结果 源程序(python): 结果: 五、结果分析 一、实验目的 掌握常用的图像灰度级修正方法,包括图象的线性和非线性灰度点运算和直方图均衡化法,加深对灰度直方图的理解。掌握对比度增强、直方图增强的原理,…

JVM和类加载机制-01[JVM底层架构和JVM调优]

JVM底层 Java虚拟机内存模型JVM组成部分五大内存区域各自的作用虚拟机栈(线程栈)栈帧内存区域 本地方法栈程序计数器为什么jvm要设计程序计数器&#xff1f; 堆方法区 JVM优化-堆详解JVM底层垃圾回收机制jvm调优工具jvisualvm.exeArthas工具使用 Java虚拟机内存模型 JVM跨平台原…

QQ频道导航退出

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140413538 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

Netty ChannelPipeline/ChannelHandler

在Netty中&#xff0c;ChannelPipeline和ChannelHandler是处理网络事件的核心组件。ChannelPipeline是一个处理器链&#xff0c;它负责处理和拦截入站和出站事件&#xff0c;而ChannelHandler则是这个链中的处理器。 ChannelPipeline ChannelPipeline是一个Netty特有的概念&a…

Mysql:解决CPU飙升至100%问题的系统诊断与优化策略

在服务器运维过程中&#xff0c;CPU使用率飙升到100%是一个常见且棘手的问题。这不仅会严重影响服务器的性能&#xff0c;还可能导致服务中断。当遇到这类情况时&#xff0c;首要任务是快速定位问题源头并采取相应措施。以下是一个基于操作系统命令和MySQL数据库优化的详细解决…