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

Команда Linux Chown

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

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

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

Команда chgrp имеет следующий вид:

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

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

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

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

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

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

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

 chgrp www-data filename

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

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

 chgrp www-data file1 file2 dir1

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

 chgrp www-data file1 file2
 changed group of 'file1' from nginx to www-data group of 'file2' retained as www-data

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

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

 chgrp +1000 filename

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

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

 chgrp www-data symlink1

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

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

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

 chgrp -h www-data symlink1

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

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

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

 chgrp -R www-data /var/www

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

 chgrp -hR www-data /var/www

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

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

Заключение

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

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

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

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

терминал chgrp

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *