Linux рекурсивно все файлы сменить владельца

Команда chown Linux

Основа философии Linux — все объекты операционной системы — это файлы, для предоставления доступа к тем или иным возможностям системы мы просто даем доступ пользователю к нужным файлам или убираем. Я более подробно рассказывал обо всех правах в статье права доступа к файлам в Linux, здесь же скажу только что у каждого файла есть три группы прав: для владельца, группы и всех остальных.

При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.

Команда chown Linux

1. Синтаксис и опции

Синтаксис chown, как и других подобных команд linux очень прост:

$ chown пользователь опции /путь/к/файлу

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

  • -c, —changes — подробный вывод всех выполняемых изменений;
  • -f, —silent, —quiet — минимум информации, скрыть сообщения об ошибках;
  • —dereference — изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
  • -h, —no-dereference — изменять права символических ссылок и не трогать файлы, к которым они ведут;
  • —from — изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
  • -R, —recursive — рекурсивная обработка всех подкаталогов;
  • -H — если передана символическая ссылка на директорию — перейти по ней;
  • -L — переходить по всем символическим ссылкам на директории;
  • -P — не переходить по символическим ссылкам на директории (по умолчанию).

Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.

2. Использование chown

Например, у нас есть несколько папок dir и их владелец пользователь sergiy:

Давайте изменим владельца папки dir1 на root:

Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:

Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R:

Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:

Читайте также:  Hp all in one scanner linux

chown —from=root:root www-data:www-data -cR ./

Для обращения к текущему каталогу используйте путь ./. Мы его использовали и выше. Далее указываем нужную группу с помощью опции —from и просим утилиту выводить изменения, которые она делает в файловой системе с помощью опции -c.

Выводы

Команда chown очень простая и позволяет только менять владельца и группу. Если вы хотите более подробно настроить права для владельца, группы и всех остальных, вам понадобится команда chmod. Права — довольно частая проблема при настройке работы различных программ, знание двух этих команд плюс ls и namei может помочь исправить много ошибок.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Команда Chown в Linux (владение файлом)

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

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

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

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

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

Выражения команды chown имеют следующую форму:

chown [OPTIONS] USER[:GROUP] FILE(s) 

USER — это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP — это имя новой группы или идентификатор группы (GID). FILE(s) — это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны начинаться с символа + .

  • USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, принадлежность группы не изменится.
  • USER: — Если после имени пользователя ставится двоеточие : и имя группы не указано, пользователь становится владельцем файлов, а права собственности группы файлов изменяются на группу входа пользователя.
  • USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности на группу изменяется на данную группу.
  • :GROUP — Если пользователь не указан, а группа имеет префикс двоеточия : то для данной группы изменяется только групповое владение файлами.
  • : Если указано только двоеточие : без указания пользователя и группы, никаких изменений не производится.

По умолчанию в случае успеха chown не производит никакого вывода и возвращает ноль.

Используйте команду ls -l чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |[-][-][-]- [------] [---] | | | +-----------> Group +-------------------> Owner 

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

Как изменить владельца файла

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

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

Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1 и каталога dir1 на нового владельца с именем linuxize :

chown linuxize file1 dir1

Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2 новому владельцу с UID 1000 :

Читайте также:  Linux on macbook pro 2013

Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с + :

Как изменить владельца и группу файла

Для того, чтобы изменить владельца и группу с использованием файловом chown команды следуют новым владельцем и группой , разделенных двоеточием ( : ) без пробелов и целевого файла.

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и сгруппирует users :

chown linuxize:users file1

Если опустить имя группы после двоеточия ( : ) группа файла изменяется на указанного пользователя группы входа в систему :

Как изменить группу файла

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

Следующая команда изменит группу владельцев файла с именем file1 на www-data :

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

Как изменить право собственности на символические ссылки

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

Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1 которая указывает на /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:

Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».

Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.

Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h :

Как рекурсивно изменить право собственности на файл

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):

chown -R USER:GROUP DIRECTORY 

В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www новому владельцу и группе с именем www-data :

Если каталог содержит символические ссылки, передайте параметр -h :

Другие параметры, которые можно использовать при рекурсивном изменении владельца каталога, — это -H и -L .

Если аргумент, переданный команде chown является символической ссылкой, указывающей на каталог, опция -H заставит команду пройти по нему. -L указывает chown по каждой символической ссылке на обнаруженный каталог. Обычно вы не должны использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.

Использование справочного файла

Параметр —reference=ref_file позволяет вам изменить права собственности пользователя и группы на данные файлы, чтобы они были такими же, как у указанного справочного файла ( ref_file ). Если справочный файл является символической ссылкой, chown будет использовать пользователя и группу целевого файла.

chown --reference=REF_FILE FILE 

Например, следующая команда назначит пользователю и группе владение file1 для file2

chown --reference=file1 file2

Выводы

chown — это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.

Читайте также:  Linux change sudo password

Чтобы узнать больше о команде chown посетите страницу руководства chown или введите man chown в своем терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Описание команды Chown в Linux

Описание команды Chown в Linux

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

В этом руководстве мы расскажем как использовать команду CHOWN на нескольких простых примерах.

Синтаксис команды Chown

Перед тем как рассказать основные правила работы с Chown, изучим основной синтаксис команды.

Выражения, описывающие задачу для Chown имеют форму:

chown [OPTIONS] USER[:GROUP] FILE(s)

В данном выражении основными составляющими являются:

  • USER — это имя пользователя или идентификатор ID (UID) нового владельца.
  • GROUP — это имя новой группы или идентификатор ID (GID).
  • FILE — имя одного или нескольких файлов, папок или ярлыков.

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

Как сменить владельца файла

Чтобы сменить владельца файла, используйте команду Chown, указав имя нового владельца и путь к файлу:

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

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

chown abuzov auto1 garage1 Идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000:

Как изменить владельца и группу файла

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

Следующая команда изменит владельца файла dom1 на нового владельца с именем abuzov и группу goroda:

chown abuzov:goroda dom1 Если оставить пустым имя группы после двоеточия (:), группа файла изменится на группу, которой принадлежит указанный пользователь.

Как изменить группу доступа к файлу

Команда chown может выполнять ту же функцию, что и команда chgrp, то есть менять группу доступа к файлам. Чтобы изменить только группу, используйте команду chown, за которой следует двоеточие (:) и новое имя группы и имя файла.

chown :GROUP FILE Следующая команда изменит группу-владельца файла с именем file1 на www-data:

Как рекурсивно изменить владельца файлов

Чтобы рекурсивно обработать все файлы и каталоги, используйте параметр -R (—recursive):

chown -R USER:GROUP DIRECTORY

Например, следующая команда изменит владельца всех файлов и подпапок в папке: /var/www на нового владельца и группу с именем www-data:

Надеемся, у вас получилось понять, как использовать команду Linux chown. Если вы хотите узнать больше о команде chown, посетите страницу полного руководства chown.

Источник

Оцените статью
Adblock
detector