ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как использовать Chown в ubuntu

Как сделать Chown рекурсивным

В этой статье объясняется, как использовать команду chown в Linux для изменения владельца файла или каталога или группы.

Перед тем как начать, давайте посмотрим на вывод команды ls -l, которая предоставит нам информацию о правах доступа к файлам и каталогам.

ls -l

Как вы можете видеть, в домашнем каталоге пользователя с именем Linux есть файл с именем andreyexfile и каталог с именем andreyexdir. Как вы можете видеть во втором и третьем столбцах, владельцем и группой файла и каталога является linux.

Допустим, мы хотим изменить право собственности пользователя на пользователя linux и сделать пользователя с именем andreyex владельцем файла andreyexfile, оставив группу как linux.

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

chown <User> <File>

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

chown <User><:><Group> <File>

 

Если мы хотим изменить права собственности пользователя и группы на andreyexfile на пользователя root и группу root, поэтому мы вводим следующее:

chown root: root andreyexfile

Как вы теперь можете видеть, права собственности пользователя и группы были изменены на root.

Важно отметить, что вам действительно не нужно указывать группу, если вы хотите изменить владение и пользователя, и группы одному и тому же пользователю. В таком случае вам нужно только ввести пользователя с двоеточием без группы, и группа автоматически изменится на такую ​​же, что и новый владелец. Это означает, что если вы наберете <User:> с последующим двоеточием и не укажете группу после этого, группа файла изменится на группу пользователя.

В приведенном ниже примере и пользователь, и группа должны измениться с root: root на andreyex: andreyex, даже если мы не ввели группу только потому, что мы добавили двоеточие после имени пользователя.

chown andreyex: andreyexfile

Как видите, права собственности и пользователя, и группы были изменены на andreyex.

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

Давайте посмотрим на каталоги, подкаталоги и их текущее владение.

ls -Rl

Как видите, у нас есть каталог с именем andreyexdir, владельцем которого является пользователь linux, а группа – это группа linux. Внутри есть подкаталог andreyexsubdir, владельцем и группой которого является корень.

Прежде чем переходить к рекурсивным разрешениям, давайте посмотрим, что произойдет, если мы изменим владельца andreyexdir без флагов. В приведенном ниже примере мы изменим пользователя и группу, владеющую andreyexdir, с linux на andreyex.

chown andreyex: andreyexdir /

Как видите, владелец andreyexdir был успешно изменен на andreyex. Но пользователь и группа подкаталога andreyexsubdir остаются root.

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

Для этого вам нужно только добавить флаг -R (Рекурсивный).

В следующем примере показано, как рекурсивно изменить владельца для каталога andreyexdir, его файлов и подкаталогов. Как показано ранее, пользователь и группа основного каталога принадлежат andreyex, а пользователь и группа подкаталога принадлежат пользователю root.

Приведенная ниже команда рекурсивно меняет право владения пользователем на пользователя с именем linux и группу linuxlat.

chown -R linux:linuxlat andreyexdir/

Как вы теперь можете видеть, были изменены права собственности на каталог и его содержимое; это то, что делает флаг -R.

В следующем сценарии объясняется, как рекурсивно изменить владельца всех файлов и каталогов, принадлежащих определенному пользователю.

В этом новом сценарии, как вы можете видеть на следующем рисунке, у нас есть главный каталог andreyexdir, который принадлежит пользователю с именем linux, и группе linuxlat. Подкаталоги и файлы внутри принадлежат пользователям с именами linux, root и linuxlat, группам с именами linuxlat, linux и andreyex.

ls -Rl

Теперь предположим, что мы хотим изменить владельца и группу, владеющую только файлами/каталогами, принадлежащими определенному пользователю. В этом случае мы передадим основной каталог, а также все файлы и подкаталоги, принадлежащие пользователю с именем linux, пользователю с именем andreyex.

Для этого нам нужно реализовать описанный ранее флаг -R, потому что мы хотим изменять разрешения рекурсивно. Кроме того, нам необходимо реализовать параметр –from=, за которым следует имя пользователя текущего владельца (и/или группа, если необходимо), новый пользователь, которому будут принадлежать файлы и каталоги.

chown -R --from=linux andreyex: andreyexdir/

Как видите, все файлы, принадлежащие пользователю с именем linux, теперь принадлежат пользователю с именем andreyex. Таким образом, мы изменяем право собственности на множество файлов, принадлежащих конкретному пользователю, с помощью одной команды.

Заключение

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

Вы можете получить больше информации о chown на https://linux.die.net/man/1/chown. Кроме того, вам может быть интересно прочитать объяснения по Setuid, setgid и sticky bit.

Мы надеемся, что эта статья, объясняющее, как использовать команду chown в Linux, было полезно.

Exit mobile version