当前位置: 首页>>技术教程>>正文


chmod和chown之间的主要区别是什么?

, , , ,

问题描述

在某些示例中,我看到一些人使用chown而不是chmod。我不知道在哪里使用chmodchown。请向我解释它们之间的区别,何时以及为什么要使用两者之一。

最佳回答

让我们创建一个文件

touch rainbow

让我们看一下文件的元数据

$ ls -l rainbow
-rw-rw-r-- 1 zanna zanna 0 May 24 10:09 rainbow

信息的第一部分是文件类型(开头为-表示它是常规文件)和权限位

之后,我们看到所有者(zanna)和组(zanna)。我们可以使用chown命令来更改它们:

$ sudo chown pixie rainbow
$ ls -l rainbow
-rw-rw-r-- 1 pixie zanna 0 May 24 10:09 rainbow

然后我们使用chmod更改权限位

$ sudo chmod 333 rainbow
$ ls -l rainbow
--wx-wx-wx 1 pixie zanna 0 May 24 10:09 rainbow

由于分别为所有者,组和其他人设置了权限位,因此可以通过组合chownchmod来控制不同用户的文件权限。有关Linux中权限的速成课程,请参阅this short guide

次佳回答

简单来说,chown用于更改文件的所有权,而chmod用于更改文件模式的位。

  • chown定义谁拥有文件。

  • chmod定义谁可以做什么。


当您使某人成为文件的所有者时,他几乎可以在该文件的任何位置进行操作,例如,他可以使用chmod更改其mod(例如权限)以定义谁可以执行操作。

$ ls -l file
-rwxrwxr-x  2  ravexina admins   26 May  9 12:49 file

在上面的行中,我们可以看到ravexina是文件的所有者,而admins是文件组。我可以使用:sudo chown dave:sudo file将文件的所有者更改为dave,并将组更改为sudo;现在该文件属于”dave”和”sudo”组中的每个人。

但是,使用chmod,我们定义了谁可以做什么?谁有权读取文件,写入文件或执行文件。例如:

chmod 777 file

向所有人(包括所有者,小组和其他所有人)授予读取,写入和执行的权利。

turnoff.us

第三种回答

考虑文件(或目录,或其他内容)的权限时,有两个因素:

  • 谁拥有文件-用户和组,以及

  • 他们可以做什么-读,写,执行或其组合。

chown处理谁。 chmod处理什么。您不能使用一个代替另一个。

简单的Unix权限将尝试访问文件的用户分为三种类型:

  1. 文件的所有者

  2. 拥有该文件的组成员的用户

  3. 其他人

chown用于更改前两个。 chmod用于更改授予这些类型的权限。

第四种回答

一些要点/技巧可以添加到以前的出色答案中:

  • 您必须具有目录(及其上所有目录)的执行权限才能访问它

  • 使用-R选项可将更改以递归方式应用于包括目标和目标以下的所有内容,例如chown -R www-data files/

  • 您可以使用语法chown user:group myfile同时更改用户和组

  • 使用’+’和’-‘选项通常比设置绝对权限更容易/更好,特别是在处理文件和目录的组合时。例如,如果您要授予组对目录及其下所有内容的写入权限,chmod -R 775 files/将使’files/’及其下及其下的所有内容都可执行并可读,所有人可能都不希望这样做。使用chmod -R g+w files/只会添加组写入权限,而无需其他任何操作。

第五种回答

已经有很好的答案,但是我想在权限很容易理解的地方做一个贡献

chmod u=r+w,o=r-w,g=-r-w test.php

u = user
o = other
g = group

这样,您可以轻松地将权限附加到文件。在上面的例子中

user = read + write
other = read but not write
group = not read not write

而且,如果您要递归更改权限,请不要忘记-R

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8311.html,未经允许,请勿转载。