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

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

在一些例子中,我看到 somechown代替了chmod。我不知道在哪里使用chmodchown。请向我解释它们之间的区别,以及何时以及为什么我应该使用其中之一。

答案1

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

  • chown定义谁拥有该文件。
  • chmod定义谁可以做什么。

当你让某人成为某个文件的所有者时,他/她几乎可以对该文件进行任何他想做的事情,比如,他/她可以chmod更改它的模式(即权限)来定义谁可以做什么。

$ 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在此处输入图片描述

答案2

让我们创建一个文件

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 权限的速成课程。

答案3

在考虑文件(或目录等)的权限时,有两个因素:

  • WHO拥有该文件的用户和组,以及
  • 什么他们可以用它进行以下操作 – 读取、写入、执行或上述操作的组合。

chown处理WHOchmod处理什么。您不能用其中一个来代替另一个。

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

  1. 文件的所有者
  2. 属于该文件所属组的用户
  3. 其他人

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

答案4

已经有很好的答案了,但我想做出贡献,让权限非常容易理解

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如果您想递归地更改权限。

相关内容