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

Возможно, вам стоит сообщить об этом как об ошибке для пакета keepass2 Ubuntu

https://bugs.launchpad.net/ubuntu/+source/keepass2/+filebug

36
задан 24 May 2017 в 12:22

18 ответов

Давайте создадим файл

touch rainbow

Давайте посмотрим на метаданные файла

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

. Первая часть информации - это тип файла (- at начало означает, что это обычный файл) и бит разрешения

После этого мы видим владельца (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.

32
ответ дан 22 May 2018 в 22:17
  • 1
    +1 для изображения. Нет восьмеричного определения, хотя? Или chmod a+w пример? Я думаю: D – WinEunuuchs2Unix 24 May 2017 в 15:32
  • 2
    @ WinEunuuchs2Unix haha ​​thanks ... Я специально выбрал особенно бесполезную настройку разрешений. Если я действительно начну объяснять, когда и почему использовать всевозможные перестановки chmod и chown (что слишком широко задает вопрос), мой ответ будет продолжаться вечно. Попытка сохранить его просто – Zanna 24 May 2017 в 15:35

Давайте создадим файл

touch rainbow

Давайте посмотрим на метаданные файла

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

. Первая часть информации - это тип файла (- at начало означает, что это обычный файл) и бит разрешения

После этого мы видим владельца (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. См. [D4] для случая сбоя в разрешении в Linux.

34
ответ дан 18 July 2018 в 12:48

Давайте создадим файл

touch rainbow

Давайте посмотрим на метаданные файла

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

. Первая часть информации - это тип файла (- at начало означает, что это обычный файл) и бит разрешения

После этого мы видим владельца (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. См. [D4] для случая сбоя в разрешении в Linux.

34
ответ дан 24 July 2018 в 20:02

В простой перспективе chown используется для изменения права собственности на файл, а chmod - для изменения битов режима файла.

chown определяет, кто владеет файлом. chmod определяет, кто может что-либо сделать.

Когда вы делаете кого-то владельцем файла, он может делать почти везде, где захочет этот файл, например, он может использовать [ f7], чтобы изменить свои моды (например, разрешения), чтобы определить, кто может что делать.

$ 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

предоставляет права на чтение, запись и выполнение всем, включая владельца, группу и все остальные.

From turnoff.us:

86
ответ дан 22 May 2018 в 22:17
  • 1
    Владелец не может делать то, что хочет файл - для удаления или перемещения требуются права на запись в содержащую директорию. – muru 24 May 2017 в 17:05
  • 2
    @muru это правда;) Я имел в виду чтение / запись / exec, есть также chattr, который может повлиять на файл, который я предполагаю. – Ravexina 24 May 2017 в 17:13
  • 3
    @KamilMaciorowski Ты знаешь это, я знаю, что Равексина это знает, но большинство людей этого не делает. – muru 26 May 2017 в 03:59
  • 4
    @KamilMaciorowski Я не просил вас притворяться. Что вам не хватает, так это то, что большинство людей не думают об удалении или переименовании файла как операции в каталоге, а как операции над файлом. Вот почему у нас есть такие вопросы, как: superuser.com/q/373115/334516 , unix.stackexchange.com/q/48579/70524 , askubuntu.com / q / 240424/158442 Очевидно, вы знаете, что это операции в каталоге (поздравления!), но есть общее заблуждение об этом, поэтому я отметил, что переименование или удаление связаны с правами на каталог, а не с файлом. ... – muru 26 May 2017 в 07:43
  • 5
    @KamilMaciorowski ... Этот вопрос задает пользователь, который не знает разницы между chmod и chown, поэтому мне кажется разумным, что они не будут знать, что для переименования файла потребуются разрешения в каталоге. – muru 26 May 2017 в 07:44

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

, которому принадлежит файл - пользователь и группа, и что они могут с ним делать - читать, записи, выполнения или их комбинации.

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

Простые разрешения Unix классифицируют пользователей, пытающихся получить доступ к файлу, в три типа:

владелец файлов пользователей, которые являются членами группа, владеющая файлом, все остальные

chown используется для изменения первых двух. chmod используется для изменения прав, предоставляемых этим типам.

17
ответ дан 22 May 2018 в 22:17

Несколько замечаний / советов для добавления к предыдущим отличным ответам:

Для доступа к нему должно быть разрешение на выполнение в каталоге (и всех выше него). Используйте параметр -R для применения изменений рекурсивно ко всему, включая и ниже цели, например chown -R www-data files/ Вы можете изменить пользователя и группу одновременно с помощью синтаксиса chown user:group myfile. Часто проще или лучше использовать опции «+» и «-», а не устанавливать абсолютные разрешения, особенно при работе с комбинацией файлов и справочники. Например, если вы хотите предоставить права на запись группы в каталог и все под ним, chmod -R 775 files/ будет делать «файлы /» и все, что доступно и читаемо для всех, и под ним, что может быть не желательным результатом для каждого файла. Использование chmod -R g+w files/ просто добавит разрешение на запись группы, не касаясь чего-либо еще.
7
ответ дан 22 May 2018 в 22:17

Очень хорошие ответы уже, но я хотел бы внести вклад, когда разрешения очень легко понять

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

6
ответ дан 22 May 2018 в 22:17

chown Изменит, кто владеет файлом и какой группой он принадлежит, а chmod изменяет способ доступа владельцев и групп к файлу (или если они вообще могут получить к нему доступ).

1
ответ дан 22 May 2018 в 22:17

Очень хорошие ответы уже, но я хотел бы внести вклад, когда разрешения очень легко понять

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

6
ответ дан 18 July 2018 в 12:48

chown Изменит, кто владеет файлом и какой группой он принадлежит, а chmod изменяет способ доступа владельцев и групп к файлу (или если они вообще могут получить к нему доступ).

1
ответ дан 18 July 2018 в 12:48

Несколько замечаний / советов для добавления к предыдущим отличным ответам:

Для доступа к нему должно быть разрешение на выполнение в каталоге (и всех выше него). Используйте параметр -R для применения изменений рекурсивно ко всему, включая и ниже цели, например chown -R www-data files/ Вы можете изменить пользователя и группу одновременно с помощью синтаксиса chown user:group myfile. Часто проще или лучше использовать опции «+» и «-», а не устанавливать абсолютные разрешения, особенно при работе с комбинацией файлов и справочники. Например, если вы хотите предоставить права на запись группы в каталог и все под ним, chmod -R 775 files/ будет делать «файлы /» и все, что доступно и читаемо для всех, и под ним, что может быть не желательным результатом для каждого файла. Использование chmod -R g+w files/ просто добавит разрешение на запись группы, не касаясь чего-либо еще.
7
ответ дан 18 July 2018 в 12:48

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

, которому принадлежит файл - пользователь и группа, и что они могут с ним делать - читать, записи, выполнения или их комбинации.

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

Простые разрешения Unix классифицируют пользователей, пытающихся получить доступ к файлу, в три типа:

владелец файлов пользователей, которые являются членами группа, владеющая файлом, все остальные

chown используется для изменения первых двух. chmod используется для изменения прав, предоставляемых этим типам.

17
ответ дан 18 July 2018 в 12:48

В простой перспективе 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

предоставляет права на чтение, запись и выполнение всем, включая владельца, группу и все остальные.

From turnoff.us:

86
ответ дан 18 July 2018 в 12:48

Очень хорошие ответы уже, но я хотел бы внести вклад, когда разрешения очень легко понять

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

6
ответ дан 24 July 2018 в 20:02

chown Изменит, кто владеет файлом и какой группой он принадлежит, а chmod изменяет способ доступа владельцев и групп к файлу (или если они вообще могут получить к нему доступ).

1
ответ дан 24 July 2018 в 20:02

Несколько замечаний / советов для добавления к предыдущим отличным ответам:

Для доступа к нему должно быть разрешение на выполнение в каталоге (и всех выше него). Используйте параметр -R для применения изменений рекурсивно ко всему, включая и ниже цели, например chown -R www-data files/ Вы можете изменить пользователя и группу одновременно с помощью синтаксиса chown user:group myfile. Часто проще или лучше использовать опции «+» и «-», а не устанавливать абсолютные разрешения, особенно при работе с комбинацией файлов и справочники. Например, если вы хотите предоставить права на запись группы в каталог и все под ним, chmod -R 775 files/ будет делать «файлы /» и все, что доступно и читаемо для всех, и под ним, что может быть не желательным результатом для каждого файла. Использование chmod -R g+w files/ просто добавит разрешение на запись группы, не касаясь чего-либо еще.
7
ответ дан 24 July 2018 в 20:02

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

, которому принадлежит файл - пользователь и группа, и что они могут с ним делать - читать, записи, выполнения или их комбинации.

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

Простые разрешения Unix классифицируют пользователей, пытающихся получить доступ к файлу, в три типа:

владелец файлов пользователей, которые являются членами группа, владеющая файлом, все остальные

chown используется для изменения первых двух. chmod используется для изменения прав, предоставляемых этим типам.

17
ответ дан 24 July 2018 в 20:02

В простой перспективе 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

предоставляет права на чтение, запись и выполнение всем, включая владельца, группу и все остальные.

From turnoff.us:

86
ответ дан 24 July 2018 в 20:02
  • 1
    Владелец не может делать то, что хочет файл - для удаления или перемещения требуются права на запись в содержащую директорию. – muru 24 May 2017 в 17:05
  • 2
    @muru это правда;) Я имел в виду чтение / запись / exec, есть также chattr, который может повлиять на файл, который я предполагаю. – Ravexina 24 May 2017 в 17:13
  • 3
    @KamilMaciorowski Ты знаешь это, я знаю, что Равексина это знает, но большинство людей этого не делает. – muru 26 May 2017 в 03:59
  • 4
    @KamilMaciorowski Я не просил вас притворяться. Что вам не хватает, так это то, что большинство людей не думают об удалении или переименовании файла как операции в каталоге, а как операции над файлом. Вот почему у нас есть такие вопросы, как: superuser.com/q/373115/334516 , unix.stackexchange.com/q/48579/70524 , askubuntu.com / q / 240424/158442 Очевидно, вы знаете, что это операции в каталоге (поздравления!), но есть общее заблуждение об этом, поэтому я отметил, что переименование или удаление связаны с правами на каталог, а не с файлом. ... – muru 26 May 2017 в 07:43
  • 5
    @KamilMaciorowski ... Этот вопрос задает пользователь, который не знает разницы между chmod и chown, поэтому мне кажется разумным, что они не будут знать, что для переименования файла потребуются разрешения в каталоге. – muru 26 May 2017 в 07:44

Другие вопросы по тегам:

Похожие вопросы: