В некоторых примерах я видел, что некоторые использовали chown
вместо chmod
. Я не знаю, где использовать chmod
и chown
. Объясните мне различие между ними, когда и почему я должен использовать также.
Давайте создадим файл
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.
При рассмотрении полномочий файла (или каталог, или безотносительно), существует два фактора:
chown
соглашения с , кто . chmod
соглашения с , что . Вы не можете использовать один вместо другого.
Простые полномочия Unix классифицируют пользователей, пытающихся получить доступ к файлу в три типа:
chown
, используется для изменения первых двух. chmod
используется для изменения прав, предоставленных этим типам.
Несколько точек/подсказок для добавления к предыдущим превосходным ответам:
chown -R www-data files/
chown user:group myfile
chmod -R 775 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
, если Вы хотите изменить полномочия рекурсивно.
chown
изменится , кто владеет файлом и какая группа он принадлежит, в то время как chmod
изменения , как владельцы и группы могут получить доступ к файлу (или если они могут получить доступ к нему вообще).
В простом термине 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
дает права на чтение, запишите и еще выполнитесь всем включая владельца, группу и everyones.
От turnoff.us: