Команда chown



Команда chown позволяет использовать соответствующую утилиту для изменения владельца файла или директории.



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



Изменение владельца файла может привести к получению возможности изменения его прав доступа, а также ограничению доступа к нему другого пользователя. По этой причине обычным пользователям запрещено изменять владельцев файлов, не принадлежащих им, и только суперпользователь (root) может изменять владельцев любых файлов.



Базовый синтаксис команды выглядит следующим образом:



$ chown [параметры] <имя владельца:имя группы владельцев> <имя файла или директории>



Примеры использования

Смена владельца файла

Например, если вы хотите предоставить пользователю с именем john возможность распоряжаться файлом picture.jpg по своему усмотрению, вы можете воспользоваться следующей командой:



$ chown john picture.jpg



Помимо изменения владельца файла, может изменяться группа его владельцев или его владелец и группа его владельцев одновременно. Следует использовать символ двоеточия для разделения имени пользователя и имени группы пользователей (без символа пробела):



$ chown john:family picture.jpg



В результате владельцем файла picture.jpg станет пользователь с именем john, а группой его владельцев — family.



Рекурсивная смена владельцев файлов

Если вы хотите изменить владельцев файлов из любого фрагмента дерева директорий, вы можете воспользоваться параметром -R. Например, если вам нужно изменить владельцев файлов дерева поддиректорий текущей директории на root, вы можете использовать следующую команду:



# chown -R root:root .



Вам наверняка захотелось использовать шаблон «*» для ссылки на все файлы. Однако, в этом случае не будет изменен владелец скрытых файлов (имена которых начинаются с символа точки). Также вы можете предположить, что следовало бы использовать шаблон «.*», однако, он будет соответствовать также директории с именем «..», в результате чего будет изменен владелец всех файлов также и в родительской директории! Следует помнить о том, что при использовании параметра -R утилите должно передаваться имя директории, а не имена отдельных файлов.



Подробнее



@linuxkalii