В некоторых примерах я видел, что некоторые использовали 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 классифицируют пользователей, пытающихся получить доступ к файлу, по трем типам:
- владелец файла
- пользователи, являющиеся членами группы, владеющей файлом
- все остальные
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
если вы хотите изменить разрешения рекурсивно.