linux 路径 冒号_Linux 命令 chown 简介

本文译自:Introduction to the Liux chown command

译者:EmuLab

校对:OpenView

原文及本文遵循:[CC BY-SA协议]

如何使用chown改变一个文件或者目录的所有权

d658aa713f3e111f0c0bef19a48a5f6d.png

CC BY-SA 4.0

Linux系统上的每个文件和目录都由某人所拥有,而所有者有完整的控制权来修改或删除文件。除了具有所有者外,一个文件也有所有组属性。

你可以使用ls -l命令来查看一个文件的所有权信息:

[pablo@workstation Downloads]$ ls -ltotal 2454732-rw-r--r--. 1 pablo pablo 1934753792 Jul 25 18:49 Fedora-Workstation-Live-x86_64-30-1.2.iso

输出的第三和第四列是所有者和所有组,它们一起被视作所有权信息。对于上面的ISO文件都是属于pablo。

所有权设置由chmod命令来完成,其可以控制谁而已对文件执行读取、写入或者执行动作。你可以使用chown命令来改变所有权。

有时候改变所有权属性是必须要做的。文件和目录可以在一个系统上长期存在,但是用户却可以有来有往。当文件和目录在系统上移动或者被转移到另一个系统时,文件的所有权也可能需要被改变。

我的主目录下的文件和目录的所有权是我的用户和主要组,以user:group的形式呈现。假设Susan在管理Delta组,其需要编辑一个叫做mynotes的文件。你可以使用chown命令来将该文件的所有者用户改为susan所有者用户组改为delta:

$ chown susan:delta mynotes$ ls -l-rw-rw-r--. 1 susan delta 0 Aug 1 12:04 mynotes

一旦Delta组完成了对文件的工作,文件可再次被返还给我:

$ chown alan mynotes$ ls -l mynotes-rw-rw-r--. 1 alan delta 0 Aug 1 12:04 mynotes

用户和用户组都可以通过添加一个":"到用户名后来返还给我,:

$ chown alan: mynotes$ ls -l mynotes-rw-rw-r--. 1 alan alan 0 Aug 1 12:04 mynotes

通过在组前面添加一个冒号,你可以只改变用户组。现在gamma组的成员可以对文件进行修改:

$ chown :gamma mynotes$ ls -l-rw-rw-r--. 1 alan gamma 0 Aug 1 12:04 mynotes

一些额外的参数可以使得chown在命令行中和脚本中都更有用。就像许多其它Linux命令一样,chown有递归参数(-R),它指示命令递归到下一层目录中对内部的文件也执行操作。没有-R参数,你只可以改变当前文件夹的权限而不会改变文件夹中的文件的权限。下面我添加了-v(verbose)参数来报告chown正在做什么:

$ ls -l . conf.:drwxrwxr-x 2 alan alan 4096 Aug 5 15:33 conf​conf:-rw-rw-r-- 1 alan alan 0 Aug 5 15:33 conf.xml​$ chown -vR susan:delta confchanged ownership of 'conf/conf.xml' from alan:alan to susan:deltachanged ownership of 'conf' from alan:alan to susan:delta

取决于你的用户,你也许需要使用sudo来改变一个文件的权限。

报告变化信息

大多数命令都有参数来控制它们的输出信息。最常见的就是用-v(--verbose)来启用冗杂输出。但是chown也有一个-c(--changes)参数来指示chown只在做出了修改时才给出报告。Chown仍然会报告其它内容,比如当某个操作不被允许时。

参数-f(--silent, --quiet)被用户抑制错误信息输出。下一节中,我将使用-f和-c参数来只显示实际的修改。

保护Root

Linux文件系统的root(/)应当被给予足够的尊重。如果在此层级上犯了错,结果可能是使得整个系统都无法正常工作。尤其当你在递归地运行一个可能会UI进行修改或者更糟的删除操作时。chown命令有一个参数可以被用于保护root。该参数就是--preserve-root。如果当你对root执行chown命令时带了该参数,什么也不会发生,而只会出现一个信息,如下。

$ chown -cfR --preserve-root alan /chown: it is dangerous to operate recursively on '/'chown: use --no-preserve-root to override this failsafe

这个选项在没有与--recursive一起使用时什么也不干。然而,如果该命令由root用户执行,/本身的权限会被修改,但是不会修改位于其中的文件的权限。

$ chown -c --preserve-root alan /chown: changing ownership of '/': Operation not permitted[root@localhost /]# chown -c --preserve-root alan /changed ownership of '/' from root to alan

所有权事关安全性

文件和目录的所有权是信息安全的一部分。因此时常检查一下文件的所有权来防止不被欢迎的访问是很重要的。chown命令是Linux上关于系统安全的最常用的命令之一。

推荐阅读(点击跳转):

如何方便地在Linux上查询硬件信息并生成报告

3个重启Linux系统的命令(以及4个安全实现的方式)

如何轻松地在命令行上同时移动多种类型的文件?

GameHub:将所有的游戏统一到一个屋檐(平台)下

您可能想知道的'top'命令行实用程序的一些替代方案

如何实现更改Linux终端字体的种类和大小

mktemp命令教程,包含初学者示例

Linux中那些我们赖以为生的Bash别名

喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值