Chgrp linux что это

Команда Chgrp в Linux (Изменить группу)

Chgrp Command in Linux (Change Group)

Это руководство объясняет, как использовать chgrp

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

Команда chgrp меняет групповое владение данными файлами.

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

Команда chgrp принимает следующую форму:

  • GROUP , название новой группы или идентификатор группы (GID). Числовой GID должен начинаться с + символа.
  • FILE.. , имя одного или нескольких файлов.

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

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

Только пользователь root или пользователь с правами sudo может изменить групповое владение файлом.

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

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

Например, чтобы изменить группу файла filename для www-data вас, запустите:

Если вы запустите команду с непривилегированным пользователем, вы получите ошибку «Операция не разрешена». Чтобы подавить ошибки, запустите команду с -f параметром. По умолчанию в случае успеха chgrp не выводит никаких данных и возвращает ноль.

Вы также можете передать несколько файлов в качестве аргументов chgrp команды:

Используйте -v опцию, чтобы получить информацию о файлах, которые обрабатываются:

Для печати информации только о тех файлах, которые фактически изменяет группа, используйте -c вместо -v .

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

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

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

Скорее всего, вместо того, чтобы изменить целевую группу, вы получите сообщение об ошибке «cannot dereference ‘symlink1’: Permission denied».

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

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

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

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

Читайте также:  Картридж 513 для canon аналог

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

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

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

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

Вывод

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

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

Для получения дополнительной информации о chgrp команде посетите страницу руководства chgrp или введите man chgrp свой терминал.

Источник

Команда Chgrp в Linux (Изменить группу)

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

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

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

Команда chgrp принимает следующую форму:

  • GROUP , имя новой группы или идентификатор группы (GID). Числовой GID должен начинаться с символа + .
  • FILE.. , имя одного или нескольких файлов.

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

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

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

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

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

Например, чтобы изменить группу имени файла filename на www-data вы должны запустить:

Если вы запустите команду с непривилегированным пользователем, вы получите ошибку «Операция запрещена». Чтобы подавить сообщение об ошибке, вызовите команду с параметром -f . По умолчанию в случае успеха chgrp не производит никакого вывода и возвращает ноль.

Вы также можете передать несколько файлов в качестве аргументов команде chgrp :

Используйте опцию -v чтобы получить информацию об обрабатываемых файлах:

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

Вместо имени пользователя можно использовать числовой идентификатор группы (GID). В следующем примере группа, принадлежащая файлу, изменяется на новую группу с GID 1000:

Как изменить принадлежность группы символических ссылок

Если команда chgrp не работает рекурсивно, поведение по умолчанию заключается в изменении группового владения целевыми символами , а не самих символических ссылок .

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

Читайте также:  Postgresql реляционная или нет

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

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

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

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

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

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

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

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

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

Выводы

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

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

Для получения дополнительной информации о команде chgrp посетите страницу руководства chgrp или введите man chgrp в своем терминале.

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

Источник

Команда chgrp в Linux

При домашнем использовании операционной системы Linux мы редко задумываемся о том, кто является владельцем файла. Если же говорить о запуске сервера, то расклад меняетя. Для того, чтобы повысить безопасность, сервер получает собственного пользователя и группу. Нередко серверы используют одну и ту же группу, вроде www-data.

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

Команда chgrp Linux

Стандарт прав файлов пришёл в Linux из Unix. У каждого файла есть владелец (user) и группа (group), помимо этого описываются права остальных пользователей (other). Права состоят из трёх пунктов: чтение (read), запись (write), выполнение (execute). Для изменения прав используется команда umask, но для изменения непосредственно владельца и группы используются команды chown и chgrp. Для просмотра текущих прав можно использовать команду ls.

Синтаксис и опции chgrp

Общий вид команды chgrp:

$ chgrp [параметры] новая_группа имя_файла

Список распространённых параметров команды chgrp:

  • -h – работать непосредственно с самими символьными ссылками, а не с файлами, на которые они ссылаются;
  • —dereference – работать с файлами, а не самими символьными ссылками. Используется по умолчанию;
  • -R – рекурсивная обработка каталога со всем его содержимым;
  • -H – перейти по символической ссылке и изменить атрибуты файла/каталога. Сама ссылка остаётся без изменений. Используется вместе с параметром -R;
  • -L — перейти по символической ссылке и продолжить рекурсивную обработку. Сама ссылка остаётся без изменений. Используется вместе с параметром -R;
  • -P – при встрече с символьной ссылкой обрабатывать только её. Используется вместе с параметром -R, является значением по умолчанию;
  • —reference=имя_образца – использовать группу образца. Используется вместо новая_группа;
  • -c – при обработке выводить только изменения;
  • -v – выводить информацию о каждом обработанном файле.
Читайте также:  Как настроить сканирование по сети от принтера

Использование команды chgrp

Рассмотрим сразу несколько случаев использования, с реальным файлом и каталогом, а затем с символическими ссылками на них. Простейший пример использования команды chgrp без параметров. Следующая команда меняет группу на www-data для файла file в текущей папке:

sudo chgrp www-data file.txt

А эта меняет группу на www-data для папки folder:

sudo chgrp www-data folder

С реальными файлами и каталогами команда работает весьма предсказуемо, меняя их группу. Файлы в папке остаются неизменными. Если же обрабатывать символические ссылки, то их атрибуты останутся неизменными, а файлы получат новую группу. Такое поведение аналогично работе с параметром —dereference. Например, эти команды, применённые к символическим ссылкам, отработают как показано на снимке:

sudo chgrp www-data sym_file.txt

sudo chgrp www-data sym_folder

Теперь посмотрим на то, как будет работать параметр -h, меняющий атрибуты символической ссылки:

sudo chgrp -h www-data sym_file

С параметром -h изменились только атрибуты ссылок, а не сами файлы. Теперь рассмотрим работу c параметром -R, предназначенным для рекурсивной обработки каталогов:

sudo chgrp -R www-data folder

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

Чтобы увидеть разницу между параметрами -H и -L, рассмотрим ещё пару примеров. Напомним, что их надо использовать совместно с параметром -R:

sudo chgrp -RH www-data folder

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

sudo chgrp -RL www-data folder

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

Выводы

Команда chgrp Linux выполняет одну функцию – меняет группу у файлов и каталогов. При обработке символических ссылок надо быть предельно осторожным, чтобы не навредить системе, поэтому параметр -R не рекомендуется дополнять другими. Также вы можете менять пользователя и группу одновременно с помощью команды chown.

Как вы могли заметить, программа chgrp задаёт только одну группу, на деле же списки управления доступом (ACL) позволяют назначать несколько групп. Для работы с ними можно использовать утилиты setfacl и getfacl, также имеется утилита с графическим интерфейсом eiciel (в репозиториях Debian 10 и Ubuntu 20.04 лежит устаревшая версия, последняя (0.9.13) умеет задавать права рекурсивно).

Источник

КомпСовет