Архив автора: admin

Chown linux: синтаксис и описание команды



























5/5 — (2 голоса)

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

Команда Chown linux

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

chown (от англ. change owner) — UNIX‐утилита, изменяющая владельца и/или группу для указанных файлов. В качестве имени владельца/группы берётся первый аргумент, не являющийся опцией. Если задано только имя пользователя (или числовой идентификатор пользователя), то данный пользователь становится владельцем каждого из указанных файлов, а группа этих файлов не изменяется. Если за именем пользователя через двоеточие следует имя группы (или числовой идентификатор группы), без пробелов между ними, то изменяется также и группа файла. При стандартной настройке сервера команда вызывает сброс накопленных кэшей (событие touch).

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

Chown linux синтаксис и опции

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

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

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

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

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

Использование Chown linux

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

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

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

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

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

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

Больше команд для Linux в разделе.

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

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

chown USER FILE


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

chown linuxize file1

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

chown linuxize file1 dir1

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

chown 1000 file2

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

chown 1000 file2

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

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

chown USER:GROUP FILE


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

chown linuxize:users file1

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

chown linuxize: file1

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

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

chown :GROUP FILE


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

chown :www-data file1

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

Chown как изменить владельца символических ссылок

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

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

chown www-data: symlink1

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

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

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

chown -h www-data symlink1

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

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

chown -R USER:GROUP DIRECTORY


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

chown -R www-data: /var/www

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

chown -hR www-data: /var/www

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

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

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

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

chown --reference=REF_FILE FILE


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

chown --reference=file1 file2

Chown – видео инструкция