chown — команда изменения владельца файлов и папок в linux
Как упоминалось и не раз, например, в → этой статье про права на файл, что в linux всё является файлом, а у файла есть владелец и группа. При работе с файлами и папками может потребоваться сменить владельца и/или группу. Например, при смене пользователя или его домашнего каталога. Или для того, чтобы заблокировать доступ пользователю к папке и файлам, лежащим в ней. Или наоборот, когда нужно дать права пользователю или группе пользователей в определённое место на диске.
Помощь по команде chown в linux
Для того, чтобы сменить пользователя и/или группу у файла и/или папки в linux применяется команда chown . Как обычно, первым делом заглянем в подсказку операционной системы по этой команде:
root@server:~# chown --help Usage: chown [OPTION]. [OWNER][:[GROUP]] FILE. or: chown [OPTION]. --reference=RFILE FILE. Change the owner and/or group of each FILE to OWNER and/or GROUP. With --reference, change the owner and group of each FILE to those of RFILE. -c, --changes like verbose but report only when a change is made -f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed --dereference affect the referent of each symbolic link (this is the default), rather than the symbolic link itself -h, --no-dereference affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink) --from=CURRENT_OWNER:CURRENT_GROUP change the owner and/or group of each file only if its current owner and/or group match those specified here. Either may be omitted, in which case a match is not required for the omitted attribute --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' --reference=RFILE use RFILE's owner and group rather than specifying OWNER:GROUP values -R, --recursive operate on files and directories recursively The following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one takes effect. -H if a command line argument is a symbolic link to a directory, traverse it -L traverse every symbolic link to a directory encountered -P do not traverse any symbolic links (default) --help display this help and exit --version output version information and exit Owner is unchanged if missing. Group is unchanged if missing, but changed to login group if implied by a ':' following a symbolic OWNER. OWNER and GROUP may be numeric as well as symbolic. Examples: chown root /u Change the owner of /u to "root". chown root:staff /u Likewise, but also change its group to "staff". chown -hR root /u Change the owner of /u and subfiles to "root". GNU coreutils online help: Full documentation at: or available locally via: info '(coreutils) chown invocation'
Как быстро поменять пользователя файла и/или папки в linux
Чтобы сократить время на ознакомление с той командой, сразу дам готовый рецепт того, как быстро поменять пользователя файла и/или папки в linux. Формат этой команды такой:
chown user:group /patch/filename chown -R user:group /patch/foldername
В первой строчке произойдёт смена пользователя на user , группы на group у файла /patch/filename .
Во второй строчке в примере выше использована дополнительная опция -R , которая означает рекурсивную обработку. То есть у папки /patch/foldername произойдёт смена владельца и группы, но этим дело не закончится, все папки и файлы, лежащие в этой директории также будут подвергнуты процессу смены владельца и группы. Рекурсия бывает очень удобна при глобальных изменениях в группой политики в системе.
Остальные опции команды chown не так часто востребованы и используются, поэтому пока не буду с ними разбираться.
Пример использования в видео-инструкции:
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉
unixforum.org
Подскажите пожалуйста возможно ли сменить группу и владельца сразу всех файлов и папок в нужной директории. Допустим, есть /var/test/kiss нужно сменить группу и владельца папки kiss и всех, всех файлов и папок которые находятся в этой директории и в других папках которые находятся в этой папки.
Спасибо сказали:
Current_Density Сообщения: 773 Статус: Участник
Re: Смена группы и владельца файлов и папок.
07.12.2007 15:04
Подскажите пожалуйста возможно ли сменить группу и владельца сразу всех файлов и папок в нужной директории. Допустим, есть /var/test/kiss нужно сменить группу и владельца папки kiss и всех, всех файлов и папок которые находятся в этой директории и в других папках которые находятся в этой папки.
Да, с помощью chown
man chown ИМЯ chown - изменить владельца и группу файлов ОБЗОР chown [опции] пользователь[:группа] файл. . ОПЦИИ POSIX -R Рекурсивное изменение владельца для каталогов и их содержимого. .
Изменить владельца и права доступа на файлы и папки в Linux/BSD

Представленная ниже информация будет полезная начинающим Linux и *BSD системным администраторам. По большому счету, в любой операционной системе, будь то Linux, Windows или FreeBSD, корректная работа приложений, сервисов и безопасность системы в целом напрямую зависит от прав доступа на файлы и папки. Используя ниже приведённые средства, можно решить практически 90% проблем, возникающих при настройке прав доступа.
Сменить владельца для всех папок и файлов. Для этих целей в Unix используется команда chown. Она обладает рядом параметров:
- Опции. Например, для того, чтобы изменения коснулись не только данной директории, но и всех поддиректорий, нужно применить команду рекурсивно, т.е. с параметром “-R”.
- Владелец или группа владельцев (“user:group” или “user”).
- Пути до папок / файлов, к которым нужно применить команду. Например, “/mnt/pool1/dts1/backup”.
Таким образом, команда для смены смены владельца (и группы владельцев) для директорий и всех вложенных папок и фалов будет выглядеть так:
sudo chown -R user:group /home/user/dir/
Изменить права доступа на файл или папку в Linux и *BDS системах можно командой chmod. Стоит отметить, что в Unix имеются свои особенности в работе данной команды и принципа разделения прав. Так, кроме владельца файла или папки, можно настроить, какие операции может выполнять этот самый владелец и группа, а также все остальные пользователи. В Unix идёт разделение возможностей следующим способом – владелец, группа владельцев и другие. Также присутствует следующее разделение прав:
- Право на запуск файла (для папок – проход по директории).
- Право на изменение файла (создание и удаление файлов и папок в директории)
- Право на чтение файла (для папок – это право на просмотр содержимого директории)
Читайте также: Создание загрузочной флешки Windows 7/8.1 и Server 2008R2/2012R2
Для удобства использования и запоминания, используется следующая кодировка:
- запуск – 1
- изменение – 2
- чтение – 4
Складывая данные цифровые обозначения мы получим набор прав, предоставляемый владельцу/группе/другим. Разберем данную информацию на примере:
Изменять файл имеет право только владелец, группа владельцев может читать, остальные – ничего не могут, соответственно команда будет такой:
chmod 640 /media/fileshare/file.txt
Создавать файлы в папке могут все, но видит их только владелец:
chmod 622 /media/fileshare/messages/
Чтобы все могли запускать какую-либо программу, но никто, кроме владельца, не мог её редактировать:
chmod 711 /media/share/exec
Для изменения прав на все вложенные файлы и папки (т.е. рекурсивно) используется опять же ключ “-R”.
Выполняя данные операции, стоит понимать – изменять права на файлы и директории могут только администраторы и владелец этих папок и файлов.
Изменение прав только на файлы или только на папки – команда find. При этом файлы обозначаются как file (f), а директории, соответственно – d. Например:
Занимаюсь IT с 2007 года. Всё началось с увлечения — разгона компьютерного оборудования. Много воды и азота утекло с тех пор. Сейчас уже более 3х лет со своей командой оказываю комплексную поддержку и продвижение бизнеса: SEO, Яндекс.Директ, рассылки и удалённое обслуживание серверов. Буду рад помочь, обращайтесь!
Как рекурсивно изменить владельца файлов и папок 1 мин для чтения


Добавить в избранное
Главное меню » Linux » Как рекурсивно изменить владельца файлов и папок

chown owner_name file_or_folder
Проблема возникает, когда вы меняете владельца каталога, его содержимое остается неизменным. Решение тоже не сложное.
Чтобы изменить владельца всего содержимого каталога, вы можете использовать рекурсивную опцию -R с командой chown:
chown -R owner_name folder_name
Если вы хотите рекурсивно изменить владельца и группу, вы можете использовать это следующим образом:
chown -R owner_name:group_name folder_name
Давайте рассмотрим это подробно, а также посмотрим, как вы можете рекурсивно изменить пользователя и группу. Вещи намного легче понять, если вы знакомы с концепцией владения файлом и правами доступа.
Вам нужно быть root или использовать sudo для смены владельца файлов.
chown рекурсивно
Чтобы рекурсивно изменить владельца каталога, используйте его следующим образом:
chown -R new_owner_name directory_name
Если вам нужно изменить владельца нескольких каталогов с их содержимым, вы можете сделать это в одной строке:
chown -R new_owner_name directory1 directory2 directory3
Позвольте нам показать это на примере примера. У меня есть каталог с именем new_dir с некоторым содержимым. Этот каталог и его содержимое принадлежат пользователю root.
root@learnubuntu:~# ls -l /home/andreyex/ total 4 drwxr-xr-x 3 root root 4096 May 30 07:30 new_dir root@learnubuntu:~# ls -l /home/andreyex/new_dir/ total 20 -rw-r--r-- 1 root root 12813 May 30 07:30 new.txt drwxr-xr-x 2 root root 4096 May 30 07:30 one_more_dir
Когда мы меняем владельца new_dir, его владелец меняется:
root@learnubuntu:~# chown andreyex /home/andreyex/new_dir root@learnubuntu:~# ls -l /home/andreyex/ total 4 drwxr-xr-x 3 andreyex root 4096 May 30 07:30 new_dir
Но файлы и папки внутри него по-прежнему принадлежат пользователю root.
root@learnubuntu:~# ls -l /home/andreyex/new_dir/ total 20 -rw-r--r-- 1 root root 12813 May 30 07:30 new.txt drwxr-xr-x 2 root root 4096 May 30 07:30 one_more_dir
Читать Как очистить журналы logs в Systemd
Теперь, если мы используем рекурсивную опцию -R с командой chown, она меняет владельца для всего внутри указанного каталога, а не только для каталога.
root@learnubuntu:~# chown -R andreyex /home/andreyex/new_dir root@learnubuntu:~# ls -l /home/andreyex/new_dir/ total 20 -rw-r--r-- 1 andreyex root 12813 May 30 07:30 new.txt drwxr-xr-x 2 andreyex root 4096 May 30 07:30 one_more_dir
Меняйте владельца и группу рекурсивно
Команда chown позволяет вам изменить владельца, а также группу файлов.
Чтобы рекурсивно изменить владельца и группу каталога и всего его содержимого, используйте команду chown следующим образом:
chown -R user_name:group_name directory_name
Вы можете использовать то же самое для изменения владельца нескольких папок:
chown -R user_name:group_name dir1 dir2
Не слишком сложно, а?
Вывод
Недавно мы переместили собственный экземпляр Ghost на новый сервер. Нам пришлось загрузить всю папку с изображениями из резервной копии (загруженной в локальной системе) на новый сервер. Системе требовалось изменить владельца этой папки с изображениями с корневой на призрачную.
Этот метод избавил нас от проблем. Мы надеемся, что это краткое небольшое руководство поможет и вам.
Мы настоятельно рекомендуем освежить в памяти основы прав доступа к файлам и владельцев.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.