В чем основное различие между chmod и chown?

В чем основное различие между chmod и chown?

В некоторых примерах я видел, что некоторые использовали chownвместо chmod. Я не знаю, где использовать chmodи chown. Пожалуйста, объясните мне разницу между ними, когда и почему я должен использовать то и другое.

решение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

Поскольку биты разрешений устанавливаются отдельно для владельца, группы и других, вы можете управлять разрешениями на доступ к файлам для разных пользователей, комбинируя chownи chmod. Смотритеэто краткое руководстводля ускоренного курса по правам доступа в Linux.

решение3

При рассмотрении прав доступа к файлу (или каталогу, или чему-то еще) следует учитывать два фактора:

  • ВОЗвладеет файлом - пользователь и группа, и
  • чтоони могут с ним что-то делать — читать, писать, выполнять или комбинировать все это.

chownимеет дело сВОЗ. chmodимеет дело счто. Вы не можете использовать одно вместо другого.

Простые разрешения 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если вы хотите изменить разрешения рекурсивно.

Связанный контент