在本教程中,通过实例向你展示如何使用chown命令。

如何使用chown

在使用chown命令之前,先回顾一下基本的语法。

chown命令表达式采用以下格式:chown [OPTIONS] USER[:GROUP] FILE(s)复制

USER是新所有者的用户名或用户ID ( UID ),GROUP是新组的名称或组ID ( GID),FILE是一个或多个文件,目录或链接的名称,数字ID应以+符号为前缀。USER-如果仅指定用户,则指定的用户将成为给定文件的所有者,组所有权不会更改。USER: - 当用户名后跟冒号:并且未给出组名时,用户将成为文件的所有者,并且文件组的所有权更改为用户的登录组。USER:GROUP-如果同时指定了用户和组(在它们之间没有空格),则文件的用户所有权更改为给定的用户,而组所有权更改为给定的组。:GROUP-如果省略了User,并且该组以冒号:开头,则仅文件的组所有权更改为给定的组。:如果仅给出一个冒号:而不指定用户和组,则不会进行更改。

默认情况下,成功时,chown不产生输出并返回零。

使用命令查明谁拥有文件或文件所属的组:ls -l filename.txt-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt

|[-][-][-]- [------] [---]

| |

| +-----------> Group

+-------------------> Owner

只有root或有权限的用户才能更改文件的组所有权。

如何更改文件的所有者

要更改文件的所有者,请使用chown命令,后跟新所有者的用户名和目标文件作为参数:chown USER FILE复制

例如,以下命令将名为file1的文件的所有权更改为名为linuxize的新所有者:chown linuxize file1

要更改多个文件或目录的所有权,请将它们指定为以空格分隔的列表,下面的命令将名为file1和目录dir1的文件的所有权更改为名为linuxize的新所有者:chown linuxize file1 dir1

可以使用数字用户ID ( UID )代替用户名,以下示例将名为file2的文件的所有权更改为UID为1000的新所有者:chown 1000 file2

如果数字所有者作为用户名存在,那么所有权被转移到用户名,要避免此前缀ID +:chown 1000 file2

如何更改文件的所有者和组

若要更改文件的所有者和组,请使用chown命令,后跟新的所有者和组,该组之间用冒号( : )分隔,没有目标文件插入空格和。chown USER:GROUP FILE复制

以下命令将名为file1的文件的所有权更改为名为linuxize和组users的新所有者:chown linuxize:users file1

如果省略冒号( : )后面的组名,文件的组将更改为指定的用户的登录组:chown linuxize: file1

如何更改文件的组

要只更改文件的组,请使用chown命令,后跟冒号( : )和新组名(他们之间没有空间)和目标文件作为参数:chown :GROUP FILE复制

以下命令将名为file1的文件的所属组更改为www-data:chown :www-data file1

另一个可用于更改文件组所有权的命令是。

如何更改符号链接所有权

当不使用recursive选项时,chown命令会更改符号链接指向的文件的组所有权,而不是符号链接本身。

例如,如果你尝试更改指向symlink1的符号链接的所有者和组/var/www/file1符号链接,chown将更改文件的所有权chown www-data: symlink1

就不能更改目标所有权,而是获得"cannot dereference'symlink1': Permission denied" 错误。

错误发生是因为大多数Linux发行版的符号链接都受到保护,不能直接对目标文件进行操作,此选项在/proc/sys/fs/protected_symlinks中指定,1表示已启用,0已禁用,我们建议不要禁用符号链接保护。

要更改符号链接本身的组所有权,请使用-h选项:chown -h www-data symlink1

如何递归更改文件所有权

要递归操作给定目录下的所有文件和目录,请使用-R ( --recursive )选项:chown -R USER:GROUP DIRECTORY复制

以下示例将/var/www目录下所有文件和子目录的所有权更改为名为www-data的新所有者和组:chown -R www-data: /var/www

如果目录包含符号链接,就传递-h选项:chown -hR www-data: /var/www

在递归更改目录所有权时可以使用的其他选项是-h和-L。

如果传递给chown命令的参数是指向目录的符号链接,就-h选项将导致命令遍历它,-L告诉chown遍历遇到的每个符号链接到一个目录,通常,不应该使用这些选项,因为你弄乱系统或创建安全风险。

使用引用文件

--reference=ref_file选项允许你将给定文件的用户和组所有权更改为与指定的引用文件( ref_file )的所有者相同,如果参考文件是符号链接chown使用目标文件的用户和组。chown --reference=REF_FILE FILE复制

例如,以下命令将file1的用户和组所有权分配给file2chown --reference=file1 file2

结论

chown是一种Linux/UNIX命令行程序,用于更改文件用户和组的所有权。

要了解有关chown命令的更多信息,请访问chown页面或在终端中键入man chown。

如果你有问题或反馈,请留下评论。

linux chown命令格式,在Linux上如何使用chown命令 (文件所有权)相关推荐

  1. linux.命令格式,【Linux基础知识】Linux命令格式介绍

    Linux系统中每一命令都提供特定的系统功能,尽管命令繁多,但是在命令的使用形式上存在一定的共性,概况起来,Linux命令具有下面的通用格式: 命令字 [选项] [参数] ("[ ]&quo ...

  2. 17-9--18:了解Linux的命令格式,今天复习的已知命令和新命令

    熟悉的命令: cp -r   需要复制的文件夹   复制文件夹到指定文件夹                                          复制文件夹到文件夹.复制文件到文件夹 ca ...

  3. ubuntu下linux:curl使用ftp获取服务器上指定目录的所有文件集合以及下载

    curl使用ftp获取服务器上指定目录的所有文件集合以及下载 直接编译可用,注意修改测试main函数内的字符串,注释我觉得写的挺详细了,跑不起来的评论区可问 头文件 #ifndef FTP_DOWNL ...

  4. xshell上传本地文件命令_linux学习 XShell上传、下载本地文件到linux服务器

    (一)通过命令行的方式 1.linux服务器端设置 在linux主机上,安装上传下载工具包rz及sz; 如果不知道你要安装包的具体名称,可以使用yum provides */name 进行查找系统自带 ...

  5. linux挂载ntfs格式分区,Linux上挂载NTFS分区(Mount)

    本文的目的是提供读者在Linux操作系统上如何mount NTFS分区的文件系统的step-by-step指南. 本文包括两个部分: ? 以只读方式mount NTFS文件系统: ?以读写方式moun ...

  6. ping指定包大小的命令格式(windows linux)

    linux下ping包的默认大小为64Byte,次数不限.但有时我们需要尝试ping大数据包,来测试网络的状况,这时,就要指定ping包的大小了. Linux下ping(vxworks 基本上和lin ...

  7. linux cf卡格式,CF卡上的Linux启动过程分析

    一个嵌入式linux操作系统可以简单的抽象为,引导程序bootloader.内核vmlinuz.文件系统filesystem. Bootloader是系统加电后运行的第一段代码,一般它只在启动系统时非 ...

  8. linux 移动目录至u 盘,Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘...

    我们经常会把手机或其他电子设备插入PC机来进行一些文件的互传,当把手机插入PC机时,会看到PC上出现了一个移动磁盘,但具体在Linux下如何实现,现把方法介绍如下,至于详细的原理这里就不介绍了,因为我 ...

  9. 解读Linux命令格式

    解读Linux命令格式 环境 Linux HA5-139JK 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_ ...

最新文章

  1. 【快速入门系列】简述 for...in 和 for...of 区别
  2. 解决方案:Error:Execution failed for task ‘:app:compileDebugAidl‘. > aidl is missing
  3. spring框架所有包解释
  4. [Python人工智能] 二十六.基于BiLSTM-CRF的医学命名实体识别研究(上)数据预处理
  5. jaxb int convert to integer
  6. python读取单元格部分内容_Python提取表格一定区域的内容
  7. iris数据_Python数据分析02-Iris-直方图与KDE
  8. 新疆计算机证相关信息技术,2019新疆中小学教师计算机考试资料:信息技术课程基本理念...
  9. python 生成器迭代器
  10. Oracle · 一些实用语法
  11. python抓取疫情数据_python 爬取疫情数据
  12. Android图片爬虫,看妹纸神器项目源码,ListView单张图片查看
  13. 超定方程组的经典Gram-Schmidt正交化解法
  14. 常问的数据结构与算法
  15. Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码
  16. Servlet的原理和基础使用
  17. y = mapminmax(‘apply‘,x,ps)与mapminmax(‘reverse‘,y,ps)
  18. 使用STVP解除STM32flash读出保护
  19. 学生信息管理系统代码
  20. CSS盒子模型、Boder基础

热门文章

  1. 启动vue项目报错:ENOSPC: System limit for number of file watchers reached, watch
  2. golang基本数据类型和string的相互转换
  3. 使用azkaban调度spark任务
  4. Webpack安装及打包js、css文件示例
  5. 【网址收藏】windows安装Docker Desktop常见问题整理
  6. JVM调优:使用G1垃圾回收器
  7. Python3 1-100之间数字求和运算代码示例
  8. Python Django 多对多表设计批量插入方法示例
  9. eureka源码:开启服务注册
  10. openresty获取nginx原始的请求头内容