Linux поменять владельца папки рекурсивно

How to Change Ownership of Files and Folders Recursively

Learn how to use the chown command to recursively change the user and group ownership of files and directories in Linux command line.

chown owner_name file_or_folder

The problem arrives when you change the ownership of a directory, its content remains unchanged. The solution is not too complicated as well.

To change the ownership of all the contents of a directory, you can use the recursive option -R with chown command:

chown -R owner_name folder_name

If you want to change both owner and group recursively, you can use it in the following manner:

chown -R owner_name:group_name folder_name

Let’s see it in detail and also see how you can change user and group recursively. Things are a lot easier to understand if you are familiar with the concept of file ownership and permission.

chown recursively

To recursively change the ownership of a directory, use it like this:

chown -R new_owner_name directory_name

If you have to change the ownership of multiple directories with their contents, you can do it in the same line:

chown -R new_owner_name directory1 directory2 directory3

Let me show that with a sample example. I have a directory named new_dir with some content in it. This directory and its content are owned by the root user.

[email protected]:~# ls -l /home/abhi/ total 4 drwxr-xr-x 3 root root 4096 May 30 07:30 new_dir [email protected]:~# ls -l /home/abhi/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

When I change the ownership of the new_dir, its ownership is changed:

[email protected]:~# chown abhi /home/abhi/new_dir [email protected]:~# ls -l /home/abhi/ total 4 drwxr-xr-x 3 abhi root 4096 May 30 07:30 new_dir 

But the files and folders inside it are still owned by root.

[email protected]:~# ls -l /home/abhi/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 

Now, if I use the recursive option -R with chown command, it changes the ownership for everything inside the specified directory, not just the directory.

[email protected]:~# chown -R abhi /home/abhi/new_dir [email protected]:~# ls -l /home/abhi/new_dir/ total 20 -rw-r--r-- 1 abhi root 12813 May 30 07:30 new.txt drwxr-xr-x 2 abhi root 4096 May 30 07:30 one_more_dir

Example of using chwon recursively

Change both owner and group recursively

The chown command allows you to change the owner as well as the group of files.

To recursively change the owner and group of a directory and all its content, use the chown command like this:

chown -R user_name:group_name directory_name

You can use the same for changing the ownership of multiple folders:

chown -R user_name:group_name dir1 dir2

Conclusion

Recently, I moved a self-hosted Ghost instance to a new server launched with DigitalOcean’s 1-click deployment. I had to upload the entire images folder from the backup (downloaded on the local system) to the new server. The system required changing the ownership of this image folder from root to ghost.

Читайте также:  1234f при загрузке linux

This method saved me the trouble. I hope this quick little tutorial helps you as well.

I highly recommend brushing up the basics of file permissions and ownership.

It’s one of the essential Linux concepts you must know.

Источник

Команда 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 :

Читайте также:  Tracert linux red hat

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

chown linuxize file1 dir1

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

Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса 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 аналог the bat

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

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

Источник

Как сменить владельца папки Linux

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

В этой небольшой статье мы рассмотрим как сменить владельца папки Linux в графическом интерфейсе или с помощью терминала.

Как сменить владельца папки Linux

Вы можете изменить владельца папки с помощью файлового менеджера, например в Nautilus. Но для этого надо запустить файловый менеджер от имени суперпользователя. Откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

Затем найдите нужную папку, и кликните по ней правой кнопкой мыши. В открывшемся контекстном меню выберите пункт Свойства:

В появившемся окне перейдите на вкладку Права. Здесь можно изменить владельца папки и группу владельца с помощью выпадающего списка напротив соответствующего пункта:

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

Вот так всё просто. Если у вас не получается запустить файловый менеджер или вы хотите работать в терминале это тоже возможно. Для того чтобы сменить владельца папки следует использовать утилиту chown. Синтаксис у неё такой:

$ chown опции новый_владелец : новая_группа /путь/к/папке

Подробнее об этой утилите вы можете просмотреть в отдельной статье. Например, чтобы сменить владельца папки ~/Видео/losst/ на testuser следует выполнить такую команду:

sudo chown testuser ~/Видео/losst

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

sudo chown testuser:testuser ~/Видео/losst

Если нужно сменить владельца папки Linux рекурсивно используйте опцию -R:

sudo chown -R testuser:testuser ~/Видео/losst

Обратите внимание, что все файлы и папки, создаваемые в системе по умолчанию будут иметь владельцем пользователя, который их создаёт, а группой-владельцем — основную группу этого пользователя. Такое поведение изменить нельзя. Чтобы избежать проблем с неверно присвоенным папке владельцем в будущем запускайте программу, которая создаёт папку или файл от имени пользователя, которому папка должна принадлежать. Сделать это очень просто с помощью sudo. Например, для пользователя losst:

Как видите, поменять владельца папки в Linux можно очень просто. Для этого достаточно выполнить несколько команд в терминале или сделать пару щелчков мышкой.

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

Источник

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