在本教程中,通过实例向你展示如何使用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. linux 查看 内存 占用,Linux终端:用smem查看内存占用情况
  2. USBSpirit(USB精灵)更新到1.2.300.105
  3. Tomcat connector 实现原理
  4. C++检查给定数字是否为4的幂的算法实现(附完整源码)
  5. Random方法:生成指定长度的随机数字
  6. 如何进行MaxCompute 用户认证?
  7. shell+ftp+中文乱码_Ftp 命令出现中文乱码问题如何解决,求指教,非常感谢
  8. java栈顶元素_栈在Java类库中的实现
  9. 【转】Docker学习_本地/容器文件互传(5)
  10. 可视化电脑处理变量赋值、循环、程序运行的过程
  11. python中用于生成数字序列的函数_Python中的生成器?
  12. android preference-headers 属性,Android开发之PreferenceActivity的使用
  13. windows 运行命令大全
  14. Base64 编码的特征
  15. Python爬虫之实习僧招聘信息及数据分析
  16. 【立创开源】ESP8266制作的1.44寸TFT显示屏太空人天气时钟(st7735)(增加农历显示)(抄作业)
  17. 数据预处理 - 归一化与Z-Score标准化
  18. 创建一个Customer类,类中的属性有姓名(name)、年龄(age)、性别(gender),每一个属性分别有get/set方法。然后创建两个customer对象:张立、18、女和王猛、22、男。把
  19. 获取win10锁屏壁纸
  20. 如何通过浏览器访问本地电脑文件

热门文章

  1. 674 Longest Continuous Increasing Subsequence(每日一题)
  2. linux fedora安装、运行mybase7.3.5报错:error while loading shared libraries: libpng12.so.0
  3. 【收藏】spring boot+websocket+echarts 后台推送数据用echarts展示
  4. postgresql常用数据类型:数值、日期、字符串类型
  5. nginx https配置
  6. 计算机位运算:左移乘以2,右移除以2
  7. Scala流程控制语句值顺序控制
  8. Java源码解读--CopyOnWriteList写时复制集合容器
  9. MySQL索引覆盖扫描(覆盖索引)
  10. 1.2.2 OSI参考模型(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)